NPAPI plugin registered for video/x-flv mime-types is not invoked by firefox when we play flash video in youtube, even if many responses contain video/x-flv
I have written NPAPI plugin using firebreath. It works fine for all the registered mime-types. The plugin is registered for video/x-flv also. Now, whenever i type a url in address bar whose response contains video/x-flv content type, my plugin is invoked and it handles the response. But i observed, that when we play any flash video in browser, suppose in youtube, firefox sends many requests whose response headers contain video/x-flv as content type, but my plugin is not invoked. Why those requests remain transparent to my plugin? Same thing can be observed for vlc web plugin, which is also registered for video/x-flv content type.
Additional System Details
- Shockwave Flash 11.2 r202
- This plugin provides integration with Gnome Shell for live extension enabling and disabling. It can be used only by extensions.gnome.org
- Google Talk Plugin Video Accelerator version:0.1.44.23
- Google Talk Plugin Video Accelerator version:0.1.44.16
- Version: 220.127.116.11
- Version: 18.104.22.168
- This plug-in detects the presence of iTunes when opening iTunes Store URLs in a web page with Firefox.
- The Totem 3.4.3 plugin handles video and audio streams.
- DivX Web Player version 22.214.171.124
- Version 2.0.3 Twoflower, copyright 1996-2011 VideoLAN and Authorshttp://www.videolan.org/vlc/
- User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0
If the request is being sent by the Flash plugin (through Firefox), it is up to the Flash plugin whether to use an external handler for the response.
Thanks for your reply! Yes, it seems to be the correct explanation. But when i analysed the http request and responses through Live HTTP headers addon, there was no way to distinguish between the requests. Anyways response header will always be the same no matter who invokes the request. How does firefox know, it should not interfere with the responses meant for flash plugin as plugin recieves its data through browser only! And is it possible anyhow to catch those requests and responses too using plugins.
Modified by adnan
I tried to play video through HTML5 in firefox, this time also plugin wasn't invoked!
In the first case, there might be a way to intercept the resources requested by plugins, but I'm not personally aware of how you would do that.
In the second case, I don't think YouTube serves FLV to the native HTML5 player, but instead media with a compatible format such as OGV or WebM.
I registered plugin for above mime types but still no success even in case of html5. If my plugin somehow intercepts those responses it will stop the video from playing. Is it possible for plugin to transfer the stream back to browser without triggering recursion.
This is not the best forum for asking about plugin development. Perhaps you could get answers here (not sure if they are all equivalent):