r=av
bug=52963
Tested on win32. Tested to build on win32 and solaris.
This patch fixes bug 52963, bug 52965, and bug 52973.
This patch contributed by Stanley Ho <stanley.ho@eng.sun.com>
52963: nsIPluginStreamListener::OnStartBinding isn't always called:
Added new ivar, mStartBinding:
* Set to PR_TRUE after nsIPluginInstancePeer::OnStartBinding() has
* been called. Checked in ::OnStopRequest so we can call the
* plugin's OnStartBinding if, for some reason, it has not already
* been called.
52965: Length isn't always set:
rv = channel->GetContentLength(&length);
// it's possible for the server to not send a Content-Length. We should
// still work in this case.
if (NS_FAILED(rv)) {
mPluginStreamInfo->SetLength(-1);
}
else {
mPluginStreamInfo->SetLength(length);
}
52973: nsIHTTPHeaderListener called before nsIPluginStreamListener::NewStream
This fix required rolling back Andrei Volkov's change to the signature
of nsPluginStreamListenerPeer::SetUpStreamListener(). In order to call
the plugin with the headers before the NewStream is sent, we need the
nsIChannel.
files in this fix:
M modules/plugin/nglsrc/nsPluginHostImpl.cpp
git-svn-id: svn://10.0.0.236/trunk@79618 18797224-902f-48f8-a5cc-f745e15eee43