[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

andersca at apple.com andersca at apple.com
Wed Dec 22 11:11:16 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 86970042c7421c1ee2a62356e5be5f97423716a5
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jul 14 19:38:16 2010 +0000

    Send JavaScript url request results back to the plug-in
    https://bugs.webkit.org/show_bug.cgi?id=42277
    
    Reviewed by Sam Weinig.
    
    * WebProcess/Plugins/DummyPlugin.cpp:
    (WebKit::DummyPlugin::didEvaluateJavaScript):
    * WebProcess/Plugins/DummyPlugin.h:
    Add empty stub.
    
    * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
    (WebKit::NetscapePlugin::didEvaluateJavaScript):
    * WebProcess/Plugins/Netscape/NetscapePlugin.h:
    Add Empty stub.
    
    * WebProcess/Plugins/Plugin.h:
    Add didEvaluateJavaScript pure virtual member function.
    
    * WebProcess/Plugins/PluginView.cpp:
    (WebKit::PluginView::performJavaScriptURLRequest):
    If target is not null, Call Plugin::frameDidFail or Plugin::frameDidFinishLoading.
    If target is null, call didEvaluateJavaScript with the result string.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63345 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 4119181..7458101 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,28 @@
+2010-07-14  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Send JavaScript url request results back to the plug-in
+        https://bugs.webkit.org/show_bug.cgi?id=42277
+
+        * WebProcess/Plugins/DummyPlugin.cpp:
+        (WebKit::DummyPlugin::didEvaluateJavaScript):
+        * WebProcess/Plugins/DummyPlugin.h:
+        Add empty stub.
+
+        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+        (WebKit::NetscapePlugin::didEvaluateJavaScript):
+        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
+        Add Empty stub.
+
+        * WebProcess/Plugins/Plugin.h:
+        Add didEvaluateJavaScript pure virtual member function.
+
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::performJavaScriptURLRequest):
+        If target is not null, Call Plugin::frameDidFail or Plugin::frameDidFinishLoading.
+        If target is null, call didEvaluateJavaScript with the result string.
+
 2010-07-14  Sam Weinig  <sam at webkit.org>
 
         Reviewed by Darin Adler.
diff --git a/WebKit2/WebProcess/Plugins/DummyPlugin.cpp b/WebKit2/WebProcess/Plugins/DummyPlugin.cpp
index 2450f91..e80dba2 100644
--- a/WebKit2/WebProcess/Plugins/DummyPlugin.cpp
+++ b/WebKit2/WebProcess/Plugins/DummyPlugin.cpp
@@ -74,4 +74,8 @@ PluginController* DummyPlugin::controller()
     return 0;
 }
 
+void DummyPlugin::didEvaluateJavaScript(uint64_t requestID, const WebCore::String& requestURLString, const WebCore::String& result)
+{
+}
+
 } // namespace WebKit
diff --git a/WebKit2/WebProcess/Plugins/DummyPlugin.h b/WebKit2/WebProcess/Plugins/DummyPlugin.h
index 280ff7f..2cea9d9 100644
--- a/WebKit2/WebProcess/Plugins/DummyPlugin.h
+++ b/WebKit2/WebProcess/Plugins/DummyPlugin.h
@@ -48,8 +48,8 @@ private:
     virtual void geometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect);
     virtual void frameDidFinishLoading(uint64_t requestID);
     virtual void frameDidFail(uint64_t requestID, bool wasCancelled);
+    virtual void didEvaluateJavaScript(uint64_t requestID, const WebCore::String& requestURLString, const WebCore::String& result);
     virtual PluginController* controller();
-
 };
 
 } // namespace WebKit
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
index 84c490e..350c05c 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
@@ -213,6 +213,11 @@ void NetscapePlugin::frameDidFail(uint64_t requestID, bool wasCancelled)
     // FIXME: Implement.
 }
 
+void NetscapePlugin::didEvaluateJavaScript(uint64_t requestID, const String& requestURLString, const String& result)
+{
+    // FIXME: Implement.
+}
+
 PluginController* NetscapePlugin::controller()
 {
     return m_pluginController;
diff --git a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
index 7a6d65b..445dea2 100644
--- a/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
+++ b/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
@@ -66,6 +66,8 @@ private:
     virtual void geometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect);
     virtual void frameDidFinishLoading(uint64_t requestID);
     virtual void frameDidFail(uint64_t requestID, bool wasCancelled);
+    virtual void didEvaluateJavaScript(uint64_t requestID, const WebCore::String& requestURLString, const WebCore::String& result);
+
     virtual PluginController* controller();
 
     PluginController* m_pluginController;
diff --git a/WebKit2/WebProcess/Plugins/Plugin.h b/WebKit2/WebProcess/Plugins/Plugin.h
index 9692909..1eaa37c 100644
--- a/WebKit2/WebProcess/Plugins/Plugin.h
+++ b/WebKit2/WebProcess/Plugins/Plugin.h
@@ -69,6 +69,10 @@ public:
     // Tells the plug-in that a frame load request that the plug-in made by calling PluginController::loadURL has failed.
     virtual void frameDidFail(uint64_t requestID, bool wasCancelled) = 0;
 
+    // Tells the plug-in that a request to evaluate JavaScript (using PluginController::loadURL) has been fulfilled and passes
+    // back the result. If evaluating the script failed, result will be null.
+    virtual void didEvaluateJavaScript(uint64_t requestID, const WebCore::String& requestURLString, const WebCore::String& result) = 0;
+
     // Returns the plug-in controller for this plug-in.
     // FIXME: We could just have the controller be a member variable of Plugin.
     virtual PluginController* controller() = 0;
diff --git a/WebKit2/WebProcess/Plugins/PluginView.cpp b/WebKit2/WebProcess/Plugins/PluginView.cpp
index d15be83..aea7f37 100644
--- a/WebKit2/WebProcess/Plugins/PluginView.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginView.cpp
@@ -277,7 +277,7 @@ void PluginView::performJavaScriptURLRequest(URLRequest* request)
             return;
         }
     }
-    
+
     // Evaluate the JavaScript code. Note that running JavaScript here could cause the plug-in to be destroyed, so we
     // grab references to the plug-in here. (We already have a reference to the frame).
     RefPtr<Plugin> plugin = m_plugin;
@@ -291,8 +291,18 @@ void PluginView::performJavaScriptURLRequest(URLRequest* request)
     ScriptState* scriptState = m_pluginElement->document()->frame()->script()->globalObject(pluginWorld())->globalExec();
     String resultString;
     result.getString(scriptState, resultString);
-    
-    // FIXME: Send the result string back to the plug-in.
+  
+    if (!request->target().isNull()) {
+        // Just send back whether the frame load succeeded or not.
+        if (resultString.isNull())
+            m_plugin->frameDidFail(request->requestID(), false);
+        else
+            m_plugin->frameDidFinishLoading(request->requestID());
+        return;
+    }
+
+    // Send the result back to the plug-in.
+    plugin->didEvaluateJavaScript(request->requestID(), decodeURLEscapeSequences(request->request().url()), resultString);
 }
 
 void PluginView::invalidateRect(const IntRect& dirtyRect)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list