[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da
andersca at apple.com
andersca at apple.com
Wed Dec 22 18:41:29 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 97c0520cb5c5f550bd4a39739071624e3f980c5c
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Dec 15 23:03:10 2010 +0000
2010-12-15 Anders Carlsson <andersca at apple.com>
Reviewed by Sam Weinig.
Fix assertion in plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html test
https://bugs.webkit.org/show_bug.cgi?id=51136
Ensure that a plug-in that has explicitly cancelled the manual stream won't get any more callbacks.
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::PluginControllerProxy):
(WebKit::PluginControllerProxy::cancelManualStreamLoad):
(WebKit::PluginControllerProxy::manualStreamDidReceiveResponse):
(WebKit::PluginControllerProxy::manualStreamDidReceiveData):
(WebKit::PluginControllerProxy::manualStreamDidFinishLoading):
(WebKit::PluginControllerProxy::manualStreamDidFail):
* PluginProcess/PluginControllerProxy.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74144 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 92ef2f1..0224782 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,21 @@
+2010-12-15 Anders Carlsson <andersca at apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Fix assertion in plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html test
+ https://bugs.webkit.org/show_bug.cgi?id=51136
+
+ Ensure that a plug-in that has explicitly cancelled the manual stream won't get any more callbacks.
+
+ * PluginProcess/PluginControllerProxy.cpp:
+ (WebKit::PluginControllerProxy::PluginControllerProxy):
+ (WebKit::PluginControllerProxy::cancelManualStreamLoad):
+ (WebKit::PluginControllerProxy::manualStreamDidReceiveResponse):
+ (WebKit::PluginControllerProxy::manualStreamDidReceiveData):
+ (WebKit::PluginControllerProxy::manualStreamDidFinishLoading):
+ (WebKit::PluginControllerProxy::manualStreamDidFail):
+ * PluginProcess/PluginControllerProxy.h:
+
2010-12-15 Brian Weinstein <bweinstein at apple.com>
Windows Build Fix. A .h file was added to the vcproj twice, but not its corresponding cpp file.
diff --git a/WebKit2/PluginProcess/PluginControllerProxy.cpp b/WebKit2/PluginProcess/PluginControllerProxy.cpp
index af77391..75a2d88 100644
--- a/WebKit2/PluginProcess/PluginControllerProxy.cpp
+++ b/WebKit2/PluginProcess/PluginControllerProxy.cpp
@@ -57,6 +57,7 @@ PluginControllerProxy::PluginControllerProxy(WebProcessConnection* connection, u
, m_isPrivateBrowsingEnabled(isPrivateBrowsingEnabled)
, m_paintTimer(RunLoop::main(), this, &PluginControllerProxy::paint)
, m_waitingForDidUpdate(false)
+ , m_pluginCanceledManualStreamLoad(false)
#if PLATFORM(MAC)
, m_isComplexTextInputEnabled(false)
#endif
@@ -169,6 +170,8 @@ void PluginControllerProxy::cancelStreamLoad(uint64_t streamID)
void PluginControllerProxy::cancelManualStreamLoad()
{
+ m_pluginCanceledManualStreamLoad = true;
+
m_connection->connection()->send(Messages::PluginProxy::CancelManualStreamLoad(), m_pluginInstanceID);
}
@@ -329,21 +332,33 @@ void PluginControllerProxy::streamDidFail(uint64_t streamID, bool wasCancelled)
void PluginControllerProxy::manualStreamDidReceiveResponse(const String& responseURLString, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers)
{
+ if (m_pluginCanceledManualStreamLoad)
+ return;
+
m_plugin->manualStreamDidReceiveResponse(KURL(ParsedURLString, responseURLString), streamLength, lastModifiedTime, mimeType, headers);
}
void PluginControllerProxy::manualStreamDidReceiveData(const CoreIPC::DataReference& data)
{
+ if (m_pluginCanceledManualStreamLoad)
+ return;
+
m_plugin->manualStreamDidReceiveData(reinterpret_cast<const char*>(data.data()), data.size());
}
void PluginControllerProxy::manualStreamDidFinishLoading()
{
+ if (m_pluginCanceledManualStreamLoad)
+ return;
+
m_plugin->manualStreamDidFinishLoading();
}
void PluginControllerProxy::manualStreamDidFail(bool wasCancelled)
{
+ if (m_pluginCanceledManualStreamLoad)
+ return;
+
m_plugin->manualStreamDidFail(wasCancelled);
}
diff --git a/WebKit2/PluginProcess/PluginControllerProxy.h b/WebKit2/PluginProcess/PluginControllerProxy.h
index 1ab2ca6..1e157b5 100644
--- a/WebKit2/PluginProcess/PluginControllerProxy.h
+++ b/WebKit2/PluginProcess/PluginControllerProxy.h
@@ -155,6 +155,9 @@ private:
// backing store into the web process backing store.
bool m_waitingForDidUpdate;
+ // Whether the plug-in has canceled the manual stream load.
+ bool m_pluginCanceledManualStreamLoad;
+
#if PLATFORM(MAC)
// Whether complex text input is enabled for this plug-in.
bool m_isComplexTextInputEnabled;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list