The Youtube iframe implementation seems to block certain link URLs from displaying licensed content.
Problem
These link schemes do not seem to work with the specific video you are testing.
chrome-extension:
It seems that the content licensor, UMG, has decided to prevent any games from extensions or local files. An alternative is to avoid using videos containing licensed content, but this is boring.
This is inconvenient, but there is a workaround that will allow you to implement an iframe player in the extension. All Youtube takes care that the player is embedded on a page somewhere on the Internet.
Proxy page
Try replacing the iframe src in popup.htm with the jsfiddle result frame from your example and reloading the plugin.
<iframe width="200" height="200" src="http://fiddle.jshell.net/E7B9C/17/show/"></iframe>
You should now see the previous โinaccessibleโ video. Your extension now links to a page that you control on jshell.net. All that Youtube knows is that you call your player with jshell.net.
Control
Now that we have the player, you may notice that you do not have Youtube controls available, as you are now referencing your own iframe, referencing the Youtube iframe and its API. As if it wasnโt fun enough, now you can make your own iframe API to communicate with the chrome extension to your iframe to Youtube iframe!
Under normal conditions, the parent can set the window.location.hash child frame, and this frame looks and analyzes any changes that occur. The child then calls the callback in the parent directly with some new information.
Edit: Instead of using window.location.hash, you can use HTML5 window.postMessage () instead and avoid the need to constantly check and analyze the hash.
This should make you work and work.