[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