Diff
Modified: branches/safari-536.29-branch/Source/WebCore/ChangeLog (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebCore/ChangeLog 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebCore/ChangeLog 2013-03-01 22:02:38 UTC (rev 144501)
@@ -1,3 +1,19 @@
+2013-03-01 Brady Eidson <[email protected]>
+
+ Merge 143815
+
+ 2013-02-22 Anders Carlsson <[email protected]>
+
+ pluginLoadStrategy should take a WKDictionaryRef for extensibility
+ https://bugs.webkit.org/show_bug.cgi?id=110656
+ <rdar://problem/13265303>
+
+ Reviewed by Jessie Berlin.
+
+ Export a symbol needed by WebKit2.
+
+ * WebCore.exp.in:
+
2013-01-30 Lucas Forschler <[email protected]>
Merge r138606
Modified: branches/safari-536.29-branch/Source/WebCore/WebCore.exp.in (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebCore/WebCore.exp.in 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebCore/WebCore.exp.in 2013-03-01 22:02:38 UTC (rev 144501)
@@ -1278,6 +1278,7 @@
__ZNK7WebCore13ResourceErrorcvP7NSErrorEv
__ZNK7WebCore14DocumentLoader10requestURLEv
__ZNK7WebCore14DocumentLoader11frameLoaderEv
+__ZNK7WebCore14DocumentLoader11responseURLEv
__ZNK7WebCore14DocumentLoader11subresourceERKNS_4KURLE
__ZNK7WebCore14DocumentLoader12mainResourceEv
__ZNK7WebCore14DocumentLoader13urlForHistoryEv
Modified: branches/safari-536.29-branch/Source/WebKit2/ChangeLog (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebKit2/ChangeLog 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebKit2/ChangeLog 2013-03-01 22:02:38 UTC (rev 144501)
@@ -1,5 +1,49 @@
2013-03-01 Brady Eidson <[email protected]>
+ Merge 143815
+
+ 2013-02-22 Anders Carlsson <[email protected]>
+
+ pluginLoadStrategy should take a WKDictionaryRef for extensibility
+ https://bugs.webkit.org/show_bug.cgi?id=110656
+ <rdar://problem/13265303>
+
+ Reviewed by Jessie Berlin.
+
+ Change pluginLoadStrategy to take a WKDictionaryRef instead of a number of parameters;
+ this lets us add more plug-in information if needed. Also add the page URL and rename documentURL to frameURL.
+
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageGetPluginInformationBundleIdentifierKey):
+ (WKPageGetPluginInformationBundleVersionKey):
+ (WKPageGetPluginInformationDisplayNameKey):
+ (WKPageGetPluginInformationFrameURLKey):
+ (WKPageGetPluginInformationMIMETypeKey):
+ (WKPageGetPluginInformationPageURLKey):
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/WebLoaderClient.cpp:
+ (WebKit):
+ (WebKit::WebLoaderClient::pluginLoadPolicy):
+ * UIProcess/WebLoaderClient.h:
+ (WebLoaderClient):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::getPluginPath):
+ (WebKit::WebPageProxy::pluginInformationBundleIdentifierKey):
+ (WebKit):
+ (WebKit::WebPageProxy::pluginInformationBundleVersionKey):
+ (WebKit::WebPageProxy::pluginInformationDisplayNameKey):
+ (WebKit::WebPageProxy::pluginInformationFrameURLKey):
+ (WebKit::WebPageProxy::pluginInformationMIMETypeKey):
+ (WebKit::WebPageProxy::pluginInformationPageURLKey):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::createPlugin):
+ (WebKit::WebPage::canPluginHandleResponse):
+
+2013-03-01 Brady Eidson <[email protected]>
+
Merge r143790
2013-02-22 Anders Carlsson <[email protected]>
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp 2013-03-01 22:02:38 UTC (rev 144501)
@@ -693,3 +693,39 @@
{
WebProcessProxy::setInvalidMessageCallback(function);
}
+
+WKStringRef WKPageGetPluginInformationBundleIdentifierKey()
+{
+ static WebString* key = WebString::create(WebPageProxy::pluginInformationBundleIdentifierKey()).leakRef();
+ return toAPI(key);
+}
+
+WKStringRef WKPageGetPluginInformationBundleVersionKey()
+{
+ static WebString* key = WebString::create(WebPageProxy::pluginInformationBundleVersionKey()).leakRef();
+ return toAPI(key);
+}
+
+WKStringRef WKPageGetPluginInformationDisplayNameKey()
+{
+ static WebString* key = WebString::create(WebPageProxy::pluginInformationDisplayNameKey()).leakRef();
+ return toAPI(key);
+}
+
+WKStringRef WKPageGetPluginInformationFrameURLKey()
+{
+ static WebString* key = WebString::create(WebPageProxy::pluginInformationFrameURLKey()).leakRef();
+ return toAPI(key);
+}
+
+WKStringRef WKPageGetPluginInformationMIMETypeKey()
+{
+ static WebString* key = WebString::create(WebPageProxy::pluginInformationMIMETypeKey()).leakRef();
+ return toAPI(key);
+}
+
+WKStringRef WKPageGetPluginInformationPageURLKey()
+{
+ static WebString* key = WebString::create(WebPageProxy::pluginInformationPageURLKey()).leakRef();
+ return toAPI(key);
+}
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKPage.h (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKPage.h 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKPage.h 2013-03-01 22:02:38 UTC (rev 144501)
@@ -81,7 +81,7 @@
typedef void (*WKPageWillGoToBackForwardListItemCallback)(WKPageRef page, WKBackForwardListItemRef item, WKTypeRef userData, const void *clientInfo);
typedef void (*WKPagePluginDidFailCallback)(WKPageRef page, WKErrorCode errorCode, WKStringRef mimeType, WKStringRef pluginIdentifier, WKStringRef pluginVersion, const void* clientInfo);
-typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback)(WKPageRef page, WKStringRef identifier, WKStringRef displayName, WKURLRef documentURL, WKPluginLoadPolicy currentPluginLoadPolicy, const void* clientInfo);
+typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, const void* clientInfo);
// Deprecated
typedef void (*WKPageDidFailToInitializePluginCallback_deprecatedForUseWithV0)(WKPageRef page, WKStringRef mimeType, const void* clientInfo);
@@ -489,6 +489,25 @@
WK_EXPORT void WKPageValidateCommand(WKPageRef page, WKStringRef command, void* context, WKPageValidateCommandCallback callback);
WK_EXPORT void WKPageExecuteCommand(WKPageRef page, WKStringRef command);
+/* Value type: WKStringRef */
+WK_EXPORT WKStringRef WKPageGetPluginInformationBundleIdentifierKey();
+
+/* Value type: WKStringRef */
+WK_EXPORT WKStringRef WKPageGetPluginInformationBundleVersionKey();
+
+/* Value type: WKStringRef */
+WK_EXPORT WKStringRef WKPageGetPluginInformationDisplayNameKey();
+
+/* Value type: WKURLRef */
+WK_EXPORT WKStringRef WKPageGetPluginInformationFrameURLKey();
+
+/* Value type: WKStringRef */
+WK_EXPORT WKStringRef WKPageGetPluginInformationMIMETypeKey();
+
+/* Value type: WKURLRef */
+WK_EXPORT WKStringRef WKPageGetPluginInformationPageURLKey();
+
+
#ifdef __cplusplus
}
#endif
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.cpp (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.cpp 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.cpp 2013-03-01 22:02:38 UTC (rev 144501)
@@ -27,8 +27,10 @@
#include "WebLoaderClient.h"
#include "ImmutableArray.h"
+#include "ImmutableDictionary.h"
#include "WebBackForwardListItem.h"
#include "WKAPICast.h"
+#include "WebPageProxy.h"
#include <string.h>
using namespace WebCore;
@@ -313,12 +315,19 @@
return PluginModuleBlocked;
}
-PluginModuleLoadPolicy WebLoaderClient::pluginLoadPolicy(WebPageProxy* page, const String& identifier, const String& displayName, const String& documentURLString, PluginModuleLoadPolicy currentPluginLoadPolicy)
+
+PluginModuleLoadPolicy WebLoaderClient::pluginLoadPolicy(WebPageProxy* page, const String& identifier, const String& displayName, const String& frameURLString, const String& pageURLString, PluginModuleLoadPolicy currentPluginLoadPolicy)
{
if (!m_client.pluginLoadPolicy)
return currentPluginLoadPolicy;
- return toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toAPI(identifier.impl()), toAPI(displayName.impl()), toURLRef(documentURLString.impl()), toWKPluginLoadPolicy(currentPluginLoadPolicy), m_client.clientInfo));
+ HashMap<String, RefPtr<APIObject> > pluginInfoMap;
+ pluginInfoMap.set(WebPageProxy::pluginInformationBundleIdentifierKey(), WebString::create(identifier));
+ pluginInfoMap.set(WebPageProxy::pluginInformationDisplayNameKey(), WebString::create(displayName));
+ pluginInfoMap.set(WebPageProxy::pluginInformationFrameURLKey(), WebURL::create(frameURLString));
+ pluginInfoMap.set(WebPageProxy::pluginInformationPageURLKey(), WebURL::create(pageURLString));
+
+ return toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(ImmutableDictionary::adopt(pluginInfoMap).get()), m_client.clientInfo));
}
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.h (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.h 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.h 2013-03-01 22:02:38 UTC (rev 144501)
@@ -87,7 +87,7 @@
bool shouldGoToBackForwardListItem(WebPageProxy*, WebBackForwardListItem*);
void willGoToBackForwardListItem(WebPageProxy*, WebBackForwardListItem*, APIObject*);
- PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy*, const String& identifier, const String& displayName, const String& documentURLString, PluginModuleLoadPolicy currentPluginLoadPolicy);
+ PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy*, const String& bundleIdentifier, const String& displayName, const String& frameURLString, const String& pageURLString, PluginModuleLoadPolicy currentPluginLoadPolicy);
void didFailToInitializePlugin(WebPageProxy*, const String& mimeType);
void didBlockInsecurePluginVersion(WebPageProxy*, const String& mimeType, const String& pluginIdentifier, const String& pluginVersion);
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp 2013-03-01 22:02:38 UTC (rev 144501)
@@ -1122,7 +1122,7 @@
}
#if ENABLE(NETSCAPE_PLUGIN_API)
-void WebPageProxy::getPluginPath(const String& mimeType, const String& urlString, const String& documentURLString, String& pluginPath, uint32_t& pluginLoadPolicy)
+void WebPageProxy::getPluginPath(const String& mimeType, const String& urlString, const String& frameURLString, const String& pageURLString, String& pluginPath, uint32_t& pluginLoadPolicy)
{
MESSAGE_CHECK_URL(urlString);
@@ -1137,7 +1137,10 @@
#if PLATFORM(MAC)
PluginModuleLoadPolicy currentPluginLoadPolicy = static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy);
- pluginLoadPolicy = m_loaderClient.pluginLoadPolicy(this, plugin.bundleIdentifier, plugin.info.name, documentURLString, currentPluginLoadPolicy);
+ pluginLoadPolicy = m_loaderClient.pluginLoadPolicy(this, plugin.bundleIdentifier, plugin.info.name, frameURLString, pageURLString, currentPluginLoadPolicy);
+#else
+ UNUSED_PARAM(frameURLString);
+ UNUSED_PARAM(pageURLString);
#endif
if (pluginLoadPolicy != PluginModuleLoadNormally)
@@ -2431,6 +2434,36 @@
m_uiClient.mouseDidMoveOverElement(this, hitTestResultData, modifiers, userData.get());
}
+String WebPageProxy::pluginInformationBundleIdentifierKey()
+{
+ return "PluginInformationBundleIdentifier";
+}
+
+String WebPageProxy::pluginInformationBundleVersionKey()
+{
+ return "PluginInformationBundleVersion";
+}
+
+String WebPageProxy::pluginInformationDisplayNameKey()
+{
+ return "PluginInformationDisplayName";
+}
+
+String WebPageProxy::pluginInformationFrameURLKey()
+{
+ return "PluginInformationFrameURL";
+}
+
+String WebPageProxy::pluginInformationMIMETypeKey()
+{
+ return "PluginInformationMIMEType";
+}
+
+String WebPageProxy::pluginInformationPageURLKey()
+{
+ return "PluginInformationPageURL";
+}
+
void WebPageProxy::unavailablePluginButtonClicked(uint32_t opaquePluginUnavailabilityReason, const String& mimeType, const String& url, const String& pluginsPageURL)
{
MESSAGE_CHECK_URL(url);
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.h (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.h 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.h 2013-03-01 22:02:38 UTC (rev 144501)
@@ -657,6 +657,13 @@
void setSuppressVisibilityUpdates(bool flag) { m_suppressVisibilityUpdates = flag; }
bool suppressVisibilityUpdates() { return m_suppressVisibilityUpdates; }
+ static String pluginInformationBundleIdentifierKey();
+ static String pluginInformationBundleVersionKey();
+ static String pluginInformationDisplayNameKey();
+ static String pluginInformationFrameURLKey();
+ static String pluginInformationMIMETypeKey();
+ static String pluginInformationPageURLKey();
+
private:
WebPageProxy(PageClient*, PassRefPtr<WebProcessProxy>, WebPageGroup*, uint64_t pageID);
@@ -921,7 +928,7 @@
void sendWheelEvent(const WebWheelEvent&);
#if ENABLE(NETSCAPE_PLUGIN_API)
- void getPluginPath(const String& mimeType, const String& urlString, const String& documentURLString, String& pluginPath, uint32_t& pluginLoadPolicy);
+ void getPluginPath(const String& mimeType, const String& urlString, const String& frameURLString, const String& pageURLString, String& pluginPath, uint32_t& pluginLoadPolicy);
#endif
PageClient* m_pageClient;
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in 2013-03-01 22:02:38 UTC (rev 144501)
@@ -306,6 +306,6 @@
}
#if ENABLE(NETSCAPE_PLUGIN_API)
-GetPluginPath(WTF::String mimeType, WTF::String urlString, WTF::String documentURLString) -> (WTF::String pluginPath, uint32_t pluginLoadPolicy)
+ GetPluginPath(WTF::String mimeType, WTF::String urlString, WTF::String frameURLString, WTF::String pageURLString) -> (WTF::String pluginPath, uint32_t pluginLoadPolicy)
#endif
Modified: branches/safari-536.29-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (144500 => 144501)
--- branches/safari-536.29-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2013-03-01 22:02:03 UTC (rev 144500)
+++ branches/safari-536.29-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2013-03-01 22:02:38 UTC (rev 144501)
@@ -392,8 +392,10 @@
String pluginPath;
uint32_t pluginLoadPolicy;
- String documentURLString = pluginElement->document()->url().string();
- if (!sendSync(Messages::WebPageProxy::GetPluginPath(parameters.mimeType, parameters.url.string(), documentURLString), Messages::WebPageProxy::GetPluginPath::Reply(pluginPath, pluginLoadPolicy))) {
+ String frameURLString = frame->coreFrame()->loader()->documentLoader()->responseURL().string();
+ String pageURLString = m_page->mainFrame()->loader()->documentLoader()->responseURL().string();
+
+ if (!sendSync(Messages::WebPageProxy::GetPluginPath(parameters.mimeType, parameters.url.string(), frameURLString, pageURLString), Messages::WebPageProxy::GetPluginPath::Reply(pluginPath, pluginLoadPolicy))) {
return 0;
}