[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