r=edburns
sr=waterson
This checkin idlifies some files in the plugin hierarchy.
The following files are in this checkin.
build/mac/build_scripts/MozillaBuildList.pm
modules/oji/public/MANIFEST
modules/oji/public/MANIFEST_IDL
modules/oji/macbuild/ojiIDL.mcp
modules/plugin/public/MANIFEST
modules/plugin/public/MANIFEST_IDL
modules/plugin/macbuild/pluginIDL.mcp
modules/oji/public/Makefile.in
modules/oji/public/makefile.win
modules/oji/public/nsIJVMPluginInstance.idl
modules/plugin/public/Makefile.in
modules/plugin/public/makefile.win
modules/plugin/public/nsIPluginManager.idl
r=av
bug=50811
This bug fix was suggested by Stanley Ho <stanley.ho@eng.sun.com>.
Stanley proposed we overload the meaning of the nsIPluginStreamListener
argument to nsIPluginManager::{GetURL,PostURL}() so that it also may
implement an interface for reading headers. Thus, the browser could QI
the plugin's nsIPluginStreamListener instance to this headers reading
interface and send the plugin the headers from the response.
I have implemented Stanley's above proposal. I have defined a new
interface, nsIHTTPHeaderListener.idl with one method:
/**
* Called for each HTTP Response header.
* NOTE: You must copy the values of the params.
*/
void newResponseHeader(in string headerName, in string headerValue);
To affect this fix, I have added a new private method
nsPluginStreamListenerPeer::
ReadHeadersFromChannelAndPostToListener(nsIHTTPChannel *httpChannel,
nsIHTTPHeaderListener *listener)
Then, modified nsPluginStreamListenerPeer::OnDataAvailable() to call
this method BEFORE reading the content data. However, this fix makes
two important assumptions I would like to check out:
* Assumption
* By the time nsPluginStreamListenerPeer::OnDataAvailable() gets
* called, all the headers have been read.
* Assumption:
* The return value from nsIHTTPHeader->{GetFieldName,GetValue}()
* must be freed.
The following files are included in this fix:
A modules/plugin/public/nsIHTTPHeaderListener.idl
A modules/plugin/public/makefile.win
A modules/plugin/public/Makefile.in
M modules/plugin/nglsrc/nsPluginHostImpl.cpp