Diff
Modified: branches/safari-536.29-branch/Source/WebKit2/ChangeLog (144504 => 144505)
--- branches/safari-536.29-branch/Source/WebKit2/ChangeLog 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Source/WebKit2/ChangeLog 2013-03-01 22:26:29 UTC (rev 144505)
@@ -1,5 +1,39 @@
2013-03-01 Brady Eidson <[email protected]>
+ Merge 143976
+
+ 2013-02-25 Anders Carlsson <[email protected]>
+
+ Add a new pluginDidFail callback that takes a WKDictionary of plug-in information
+ https://bugs.webkit.org/show_bug.cgi?id=110793
+ <rdar://problem/13265303>
+
+ Reviewed by Sam Weinig.
+
+ Add a new pluginDidFail callback that takes a WKDictionaryRef and also pass in the
+ frame and page URLs.
+
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/WebLoaderClient.cpp:
+ (WebKit::pluginInformationDictionary):
+ (WebKit::WebLoaderClient::didFailToInitializePlugin):
+ (WebKit::WebLoaderClient::didBlockInsecurePluginVersion):
+ (WebKit::WebLoaderClient::pluginLoadPolicy):
+ * UIProcess/WebLoaderClient.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::didFailToInitializePlugin):
+ (WebKit::WebPageProxy::didBlockInsecurePluginVersion):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::didFailToInitializePlugin):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::createJavaAppletWidget):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::createPlugin):
+
+2013-03-01 Brady Eidson <[email protected]>
+
Merge 143815
2013-02-22 Anders Carlsson <[email protected]>
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKPage.h (144504 => 144505)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKPage.h 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKPage.h 2013-03-01 22:26:29 UTC (rev 144505)
@@ -79,12 +79,13 @@
typedef bool (*WKPageShouldGoToBackForwardListItemCallback)(WKPageRef page, WKBackForwardListItemRef item, const void *clientInfo);
typedef void (*WKPageDidNewFirstVisuallyNonEmptyLayoutCallback)(WKPageRef page, WKTypeRef userData, const void *clientInfo);
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 void (*WKPagePluginDidFailCallback)(WKPageRef page, WKErrorCode errorCode, WKDictionaryRef pluginInfoDictionary, 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);
+typedef void (*WKPagePluginDidFailCallback_deprecatedForUseWithV1)(WKPageRef page, WKErrorCode errorCode, WKStringRef mimeType, WKStringRef pluginIdentifier, WKStringRef pluginVersion, const void* clientInfo);
struct WKPageLoaderClient {
int version;
@@ -128,9 +129,10 @@
WKPageWillGoToBackForwardListItemCallback willGoToBackForwardListItem;
WKPageCallback interactionOccurredWhileProcessUnresponsive;
- WKPagePluginDidFailCallback pluginDidFail;
+ WKPagePluginDidFailCallback_deprecatedForUseWithV1 pluginDidFail_deprecatedForUseWithV1;
WKPagePluginLoadPolicyCallback pluginLoadPolicy;
+ WKPagePluginDidFailCallback pluginDidFail;
};
typedef struct WKPageLoaderClient WKPageLoaderClient;
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.cpp (144504 => 144505)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.cpp 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.cpp 2013-03-01 22:26:29 UTC (rev 144505)
@@ -266,23 +266,43 @@
m_client.willGoToBackForwardListItem(toAPI(page), toAPI(item), toAPI(userData), m_client.clientInfo);
}
-void WebLoaderClient::didFailToInitializePlugin(WebPageProxy* page, const String& mimeType)
+static PassRefPtr<ImmutableDictionary> pluginInformationDictionary(const String& mimeType, const String& bundleIdentifier, const String& bundleVersion, const String& displayName, const String& frameURLString, const String& pageURLString)
{
- if (m_client.didFailToInitializePlugin_deprecatedForUseWithV0)
- m_client.didFailToInitializePlugin_deprecatedForUseWithV0(toAPI(page), toAPI(mimeType.impl()), m_client.clientInfo);
+ HashMap<String, RefPtr<APIObject> > pluginInfoMap;
+ if (!mimeType.isEmpty())
+ pluginInfoMap.set(WebPageProxy::pluginInformationMIMETypeKey(), WebString::create(mimeType));
+ if (!bundleIdentifier.isEmpty())
+ pluginInfoMap.set(WebPageProxy::pluginInformationBundleIdentifierKey(), WebString::create(bundleIdentifier));
+ if (!displayName.isEmpty())
+ pluginInfoMap.set(WebPageProxy::pluginInformationDisplayNameKey(), WebString::create(displayName));
+ if (!frameURLString.isEmpty())
+ pluginInfoMap.set(WebPageProxy::pluginInformationFrameURLKey(), WebURL::create(frameURLString));
+ if (!pageURLString.isEmpty())
+ pluginInfoMap.set(WebPageProxy::pluginInformationPageURLKey(), WebURL::create(pageURLString));
- if (!m_client.pluginDidFail)
- return;
+ return ImmutableDictionary::adopt(pluginInfoMap);
+}
- m_client.pluginDidFail(toAPI(page), kWKErrorCodeCannotLoadPlugIn, toAPI(mimeType.impl()), 0, 0, m_client.clientInfo);
+void WebLoaderClient::didFailToInitializePlugin(WebPageProxy* page, const String& mimeType, const String& frameURLString, const String& pageURLString)
+{
+ if (m_client.pluginDidFail_deprecatedForUseWithV1)
+ m_client.pluginDidFail_deprecatedForUseWithV1(toAPI(page), kWKErrorCodeCannotLoadPlugIn, toAPI(mimeType.impl()), 0, 0, m_client.clientInfo);
+
+ if (m_client.pluginDidFail) {
+ RefPtr<ImmutableDictionary> pluginInformation = pluginInformationDictionary(mimeType, String(), String(), String(), frameURLString, pageURLString);
+ m_client.pluginDidFail(toAPI(page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation.get()), m_client.clientInfo);
+ }
}
-void WebLoaderClient::didBlockInsecurePluginVersion(WebPageProxy* page, const String& mimeType, const String& pluginIdentifier, const String& pluginVersion)
+void WebLoaderClient::didBlockInsecurePluginVersion(WebPageProxy* page, const String& mimeType, const String& bundleIdentifier, const String& bundleVersion, const String& frameURLString, const String& pageURLString)
{
- if (!m_client.pluginDidFail)
- return;
+ if (m_client.pluginDidFail_deprecatedForUseWithV1)
+ m_client.pluginDidFail_deprecatedForUseWithV1(toAPI(page), kWKErrorCodeInsecurePlugInVersion, toAPI(mimeType.impl()), toAPI(bundleIdentifier.impl()), toAPI(bundleVersion.impl()), m_client.clientInfo);
- m_client.pluginDidFail(toAPI(page), kWKErrorCodeInsecurePlugInVersion, toAPI(mimeType.impl()), toAPI(pluginIdentifier.impl()), toAPI(pluginVersion.impl()), m_client.clientInfo);
+ if (m_client.pluginDidFail) {
+ RefPtr<ImmutableDictionary> pluginInformation = pluginInformationDictionary(mimeType, bundleIdentifier, bundleVersion, String(), frameURLString, pageURLString);
+ m_client.pluginDidFail(toAPI(page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation.get()), m_client.clientInfo);
+ }
}
static inline WKPluginLoadPolicy toWKPluginLoadPolicy(PluginModuleLoadPolicy pluginModuleLoadPolicy)
@@ -315,20 +335,13 @@
return PluginModuleBlocked;
}
-
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;
- 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));
+ RefPtr<ImmutableDictionary> pluginInformation = pluginInformationDictionary(String(), identifier, String(), displayName, frameURLString, pageURLString);
+ return toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation.get()), m_client.clientInfo));
}
-
} // namespace WebKit
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.h (144504 => 144505)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.h 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebLoaderClient.h 2013-03-01 22:26:29 UTC (rev 144505)
@@ -88,8 +88,8 @@
void willGoToBackForwardListItem(WebPageProxy*, WebBackForwardListItem*, APIObject*);
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);
+ void didFailToInitializePlugin(WebPageProxy*, const String& mimeType, const String& frameURLString, const String& pageURLString);
+ void didBlockInsecurePluginVersion(WebPageProxy*, const String& mimeType, const String& bundleIdentifier, const String& bundleVersion, const String& frameURLString, const String& pageURLString);
};
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp (144504 => 144505)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp 2013-03-01 22:26:29 UTC (rev 144505)
@@ -3716,25 +3716,25 @@
m_pageCount = pageCount;
}
-void WebPageProxy::didFailToInitializePlugin(const String& mimeType)
+void WebPageProxy::didFailToInitializePlugin(const String& mimeType, const String& frameURLString, const String& pageURLString)
{
- m_loaderClient.didFailToInitializePlugin(this, mimeType);
+ m_loaderClient.didFailToInitializePlugin(this, mimeType, frameURLString, pageURLString);
}
-void WebPageProxy::didBlockInsecurePluginVersion(const String& mimeType, const String& urlString)
+void WebPageProxy::didBlockInsecurePluginVersion(const String& mimeType, const String& pluginURLString, const String& frameURLString, const String& pageURLString)
{
- String pluginIdentifier;
- String pluginVersion;
+ String pluginBundleIdentifier;
+ String pluginBundleVersion;
String newMimeType = mimeType;
#if PLATFORM(MAC)
- PluginModuleInfo plugin = m_process->context()->pluginInfoStore().findPlugin(newMimeType, KURL(KURL(), urlString));
+ PluginModuleInfo plugin = m_process->context()->pluginInfoStore().findPlugin(newMimeType, KURL(KURL(), pluginURLString));
- pluginIdentifier = plugin.bundleIdentifier;
- pluginVersion = plugin.versionString;
+ pluginBundleIdentifier = plugin.bundleIdentifier;
+ pluginBundleVersion = plugin.versionString;
#endif
- m_loaderClient.didBlockInsecurePluginVersion(this, newMimeType, pluginIdentifier, pluginVersion);
+ m_loaderClient.didBlockInsecurePluginVersion(this, newMimeType, pluginBundleIdentifier, pluginBundleVersion, frameURLString, pageURLString);
}
bool WebPageProxy::willHandleHorizontalScrollEvents() const
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.h (144504 => 144505)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.h 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.h 2013-03-01 22:26:29 UTC (rev 144505)
@@ -757,8 +757,8 @@
void didChangeScrollbarsForMainFrame(bool hasHorizontalScrollbar, bool hasVerticalScrollbar);
void didChangeScrollOffsetPinningForMainFrame(bool pinnedToLeftSide, bool pinnedToRightSide);
void didChangePageCount(unsigned);
- void didFailToInitializePlugin(const String& mimeType);
- void didBlockInsecurePluginVersion(const String& mimeType, const String& urlString);
+ void didFailToInitializePlugin(const String& mimeType, const String& frameURLString, const String& pageURLString);
+ void didBlockInsecurePluginVersion(const String& mimeType, const String& pluginURLString, const String& frameURLString, const String& pageURLString);
void setCanShortCircuitHorizontalWheelEvents(bool canShortCircuitHorizontalWheelEvents) { m_canShortCircuitHorizontalWheelEvents = canShortCircuitHorizontalWheelEvents; }
void reattachToWebProcess();
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in (144504 => 144505)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebPageProxy.messages.in 2013-03-01 22:26:29 UTC (rev 144505)
@@ -65,8 +65,8 @@
DidChangeScrollbarsForMainFrame(bool hasHorizontalScrollbar, bool hasVerticalScrollbar)
DidChangeScrollOffsetPinningForMainFrame(bool hasHorizontalScrollbar, bool hasVerticalScrollbar)
DidChangePageCount(unsigned pageCount);
- DidFailToInitializePlugin(WTF::String mimeType)
- DidBlockInsecurePluginVersion(WTF::String mimeType, WTF::String urlString)
+ DidFailToInitializePlugin(WTF::String mimeType, WTF::String frameURLString, WTF::String pageURLString)
+ DidBlockInsecurePluginVersion(WTF::String mimeType, WTF::String pluginURLString, WTF::String frameURLString, WTF::String pageURLString)
SetCanShortCircuitHorizontalWheelEvents(bool canShortCircuitHorizontalWheelEvents)
#if USE(TILED_BACKING_STORE)
Modified: branches/safari-536.29-branch/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (144504 => 144505)
--- branches/safari-536.29-branch/Source/WebKit2/WebProcess/Plugins/PluginView.cpp 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Source/WebKit2/WebProcess/Plugins/PluginView.cpp 2013-03-01 22:26:29 UTC (rev 144505)
@@ -487,7 +487,10 @@
// We failed to initialize the plug-in.
m_plugin = 0;
- m_webPage->send(Messages::WebPageProxy::DidFailToInitializePlugin(m_parameters.mimeType));
+ String frameURLString = frame()->loader()->documentLoader()->responseURL().string();
+ String pageURLString = m_webPage->corePage()->mainFrame()->loader()->documentLoader()->responseURL().string();
+ m_webPage->send(Messages::WebPageProxy::DidFailToInitializePlugin(m_parameters.mimeType, frameURLString, pageURLString));
+
return;
}
Modified: branches/safari-536.29-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (144504 => 144505)
--- branches/safari-536.29-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2013-03-01 22:26:29 UTC (rev 144505)
@@ -1336,8 +1336,11 @@
{
RefPtr<Widget> plugin = createPlugin(pluginSize, appletElement, KURL(), paramNames, paramValues, appletElement->serviceType(), false);
if (!plugin) {
- if (WebPage* webPage = m_frame->page())
- webPage->send(Messages::WebPageProxy::DidFailToInitializePlugin(appletElement->serviceType()));
+ if (WebPage* webPage = m_frame->page()) {
+ String frameURLString = m_frame->coreFrame()->loader()->documentLoader()->responseURL().string();
+ String pageURLString = webPage->corePage()->mainFrame()->loader()->documentLoader()->responseURL().string();
+ webPage->send(Messages::WebPageProxy::DidFailToInitializePlugin(appletElement->serviceType(), frameURLString, pageURLString));
+ }
}
return plugin.release();
}
Modified: branches/safari-536.29-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (144504 => 144505)
--- branches/safari-536.29-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2013-03-01 22:26:29 UTC (rev 144505)
@@ -407,7 +407,7 @@
if (pluginElement->renderer()->isEmbeddedObject())
toRenderEmbeddedObject(pluginElement->renderer())->setPluginUnavailabilityReason(RenderEmbeddedObject::InsecurePluginVersion);
- send(Messages::WebPageProxy::DidBlockInsecurePluginVersion(parameters.mimeType, parameters.url.string()));
+ send(Messages::WebPageProxy::DidBlockInsecurePluginVersion(parameters.mimeType, parameters.url.string(), frameURLString, pageURLString));
return 0;
case PluginModuleInactive:
Modified: branches/safari-536.29-branch/Tools/ChangeLog (144504 => 144505)
--- branches/safari-536.29-branch/Tools/ChangeLog 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Tools/ChangeLog 2013-03-01 22:26:29 UTC (rev 144505)
@@ -1,5 +1,24 @@
2013-03-01 Brady Eidson <[email protected]>
+ Merge 143976
+
+ 2013-02-25 Anders Carlsson <[email protected]>
+
+ Add a new pluginDidFail callback that takes a WKDictionary of plug-in information
+ https://bugs.webkit.org/show_bug.cgi?id=110793
+ <rdar://problem/13265303>
+
+ Reviewed by Sam Weinig.
+
+ Update for WebKit2 API changes.
+
+ * MiniBrowser/mac/WK2BrowserWindowController.m:
+ (-[WK2BrowserWindowController awakeFromNib]):
+ * WebKitTestRunner/TestController.cpp:
+ (WTR::TestController::createWebViewWithOptions):
+
+2013-03-01 Brady Eidson <[email protected]>
+
Merge r143790
2013-02-22 Anders Carlsson <[email protected]>
Modified: branches/safari-536.29-branch/Tools/MiniBrowser/mac/BrowserWindowController.m (144504 => 144505)
--- branches/safari-536.29-branch/Tools/MiniBrowser/mac/BrowserWindowController.m 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Tools/MiniBrowser/mac/BrowserWindowController.m 2013-03-01 22:26:29 UTC (rev 144505)
@@ -611,8 +611,9 @@
0, // didNewFirstVisuallyNonEmptyLayout
0, // willGoToBackForwardListItem
0, // interactionOccurredWhileProcessUnresponsive
+ 0, // pluginDidFail_deprecatedForUseWithV1
+ 0, // pluginLoadPolicy
0, // pluginDidFail
- 0, // pluginLoadPolicy
};
WKPageSetPageLoaderClient(_webView.pageRef, &loadClient);
Modified: branches/safari-536.29-branch/Tools/WebKitTestRunner/TestController.cpp (144504 => 144505)
--- branches/safari-536.29-branch/Tools/WebKitTestRunner/TestController.cpp 2013-03-01 22:22:03 UTC (rev 144504)
+++ branches/safari-536.29-branch/Tools/WebKitTestRunner/TestController.cpp 2013-03-01 22:26:29 UTC (rev 144505)
@@ -408,8 +408,9 @@
0, // didNewFirstVisuallyNonEmptyLayout
0, // willGoToBackForwardListItem
0, // interactionOccurredWhileProcessUnresponsive
+ 0, // pluginDidFail_deprecatedForUseWithV1
+ 0, // pluginLoadPolicy
0, // pluginDidFail
- 0, // pluginLoadPolicy
};
WKPageSetPageLoaderClient(m_mainWebView->page(), &pageLoaderClient);
}