Diff
Modified: trunk/Source/WebKit/ChangeLog (222801 => 222802)
--- trunk/Source/WebKit/ChangeLog 2017-10-03 19:21:54 UTC (rev 222801)
+++ trunk/Source/WebKit/ChangeLog 2017-10-03 19:23:27 UTC (rev 222802)
@@ -1,3 +1,27 @@
+2017-10-03 Alex Christensen <[email protected]>
+
+ Add ObjC equivalent of WKPageLoaderClient.pluginDidFail
+ https://bugs.webkit.org/show_bug.cgi?id=177787
+ <rdar://problem/22387633>
+
+ Reviewed by Tim Horton.
+
+ * UIProcess/API/APILoaderClient.h:
+ (API::LoaderClient::didFailToInitializePlugin):
+ * UIProcess/API/APINavigationClient.h:
+ (API::NavigationClient::canHandleDidFailToInitializePlugIn const):
+ (API::NavigationClient::didFailToInitializePlugIn):
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageSetPageLoaderClient):
+ * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
+ * UIProcess/Cocoa/NavigationState.h:
+ * UIProcess/Cocoa/NavigationState.mm:
+ (WebKit::NavigationState::setNavigationDelegate):
+ (WebKit::NavigationState::NavigationClient::canHandleDidFailToInitializePlugIn const):
+ (WebKit::NavigationState::NavigationClient::didFailToInitializePlugIn):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::didFailToInitializePlugin):
+
2017-10-03 Adrian Perez de Castro <[email protected]>
[GTK] Prefer -webkit-system-font
Modified: trunk/Source/WebKit/UIProcess/API/APILoaderClient.h (222801 => 222802)
--- trunk/Source/WebKit/UIProcess/API/APILoaderClient.h 2017-10-03 19:21:54 UTC (rev 222801)
+++ trunk/Source/WebKit/UIProcess/API/APILoaderClient.h 2017-10-03 19:23:27 UTC (rev 222802)
@@ -104,7 +104,7 @@
#if ENABLE(NETSCAPE_PLUGIN_API)
virtual WebKit::PluginModuleLoadPolicy pluginLoadPolicy(WebKit::WebPageProxy&, WebKit::PluginModuleLoadPolicy currentPluginLoadPolicy, API::Dictionary*, WTF::String& /* unavailabilityDescription */) { return currentPluginLoadPolicy; }
- virtual void didFailToInitializePlugin(WebKit::WebPageProxy&, API::Dictionary*) { }
+ virtual void didFailToInitializePlugin(WebKit::WebPageProxy&, API::Dictionary&) { }
virtual void didBlockInsecurePluginVersion(WebKit::WebPageProxy&, API::Dictionary*) { }
#endif // ENABLE(NETSCAPE_PLUGIN_API)
Modified: trunk/Source/WebKit/UIProcess/API/APINavigationClient.h (222801 => 222802)
--- trunk/Source/WebKit/UIProcess/API/APINavigationClient.h 2017-10-03 19:21:54 UTC (rev 222801)
+++ trunk/Source/WebKit/UIProcess/API/APINavigationClient.h 2017-10-03 19:23:27 UTC (rev 222802)
@@ -109,6 +109,7 @@
virtual void contentRuleListNotification(WebKit::WebPageProxy&, WebCore::URL&&, Vector<WTF::String>&&, Vector<WTF::String>&&) { };
#if ENABLE(NETSCAPE_PLUGIN_API)
+ virtual bool didFailToInitializePlugIn(WebKit::WebPageProxy&, API::Dictionary&) { return false; }
virtual WebKit::PluginModuleLoadPolicy decidePolicyForPluginLoad(WebKit::WebPageProxy&, WebKit::PluginModuleLoadPolicy currentPluginLoadPolicy, Dictionary*, WTF::String&)
{
return currentPluginLoadPolicy;
Modified: trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp (222801 => 222802)
--- trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp 2017-10-03 19:21:54 UTC (rev 222801)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp 2017-10-03 19:23:27 UTC (rev 222802)
@@ -1255,16 +1255,16 @@
}
#if ENABLE(NETSCAPE_PLUGIN_API)
- void didFailToInitializePlugin(WebPageProxy& page, API::Dictionary* pluginInformation) override
+ void didFailToInitializePlugin(WebPageProxy& page, API::Dictionary& pluginInformation) final
{
if (m_client.didFailToInitializePlugin_deprecatedForUseWithV0)
- m_client.didFailToInitializePlugin_deprecatedForUseWithV0(toAPI(&page), toAPI(pluginInformation->get<API::String>(pluginInformationMIMETypeKey())), m_client.base.clientInfo);
+ m_client.didFailToInitializePlugin_deprecatedForUseWithV0(toAPI(&page), toAPI(pluginInformation.get<API::String>(pluginInformationMIMETypeKey())), m_client.base.clientInfo);
if (m_client.pluginDidFail_deprecatedForUseWithV1)
- m_client.pluginDidFail_deprecatedForUseWithV1(toAPI(&page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation->get<API::String>(pluginInformationMIMETypeKey())), 0, 0, m_client.base.clientInfo);
+ m_client.pluginDidFail_deprecatedForUseWithV1(toAPI(&page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation.get<API::String>(pluginInformationMIMETypeKey())), 0, 0, m_client.base.clientInfo);
if (m_client.pluginDidFail)
- m_client.pluginDidFail(toAPI(&page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation), m_client.base.clientInfo);
+ m_client.pluginDidFail(toAPI(&page), kWKErrorCodeCannotLoadPlugIn, toAPI(&pluginInformation), m_client.base.clientInfo);
}
void didBlockInsecurePluginVersion(WebPageProxy& page, API::Dictionary* pluginInformation) override
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h (222801 => 222802)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h 2017-10-03 19:21:54 UTC (rev 222801)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h 2017-10-03 19:23:27 UTC (rev 222802)
@@ -88,6 +88,7 @@
- (void)_webView:(WKWebView *)webView webGLLoadPolicyForURL:(NSURL *)url decisionHandler:(void (^)(_WKWebGLLoadPolicy))decisionHandler WK_API_AVAILABLE(macosx(WK_MAC_TBA));
- (void)_webView:(WKWebView *)webView resolveWebGLLoadPolicyForURL:(NSURL *)url decisionHandler:(void (^)(_WKWebGLLoadPolicy))decisionHandler WK_API_AVAILABLE(macosx(WK_MAC_TBA));
- (void)_webView:(WKWebView *)webView willGoToBackForwardListItem:(WKBackForwardListItem *)item inPageCache:(BOOL)inPageCache WK_API_AVAILABLE(macosx(WK_MAC_TBA));
+- (void)_webView:(WKWebView *)webView didFailToInitializePlugInWithInfo:(NSDictionary *)info WK_API_AVAILABLE(macosx(WK_MAC_TBA));
#endif
@end
Modified: trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.h (222801 => 222802)
--- trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.h 2017-10-03 19:21:54 UTC (rev 222801)
+++ trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.h 2017-10-03 19:23:27 UTC (rev 222802)
@@ -120,6 +120,7 @@
void webGLLoadPolicy(WebPageProxy&, const WebCore::URL&, WTF::Function<void(WebCore::WebGLLoadPolicy)>&& completionHandler) const final;
void resolveWebGLLoadPolicy(WebPageProxy&, const WebCore::URL&, WTF::Function<void(WebCore::WebGLLoadPolicy)>&& completionHandler) const final;
bool willGoToBackForwardListItem(WebPageProxy&, WebBackForwardListItem&, bool inPageCache, API::Object*) final;
+ bool didFailToInitializePlugIn(WebKit::WebPageProxy&, API::Dictionary&) final;
#endif
void contentRuleListNotification(WebPageProxy&, WebCore::URL&&, Vector<String>&&, Vector<String>&&) final;
@@ -213,6 +214,7 @@
#if PLATFORM(MAC)
bool webViewWebGLLoadPolicyForURL : 1;
bool webViewResolveWebGLLoadPolicyForURL : 1;
+ bool webViewDidFailToInitializePlugInWithInfo : 1;
bool webViewWillGoToBackForwardListItemInPageCache : 1;
#endif
} m_navigationDelegateMethods;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm (222801 => 222802)
--- trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm 2017-10-03 19:21:54 UTC (rev 222801)
+++ trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm 2017-10-03 19:23:27 UTC (rev 222802)
@@ -42,6 +42,7 @@
#import "WKBackForwardListItemInternal.h"
#import "WKFrameInfoInternal.h"
#import "WKHistoryDelegatePrivate.h"
+#import "WKNSDictionary.h"
#import "WKNSURLAuthenticationChallenge.h"
#import "WKNSURLExtras.h"
#import "WKNSURLRequest.h"
@@ -178,6 +179,7 @@
m_navigationDelegateMethods.webViewWebGLLoadPolicyForURL = [delegate respondsToSelector:@selector(_webView:webGLLoadPolicyForURL:decisionHandler:)];
m_navigationDelegateMethods.webViewResolveWebGLLoadPolicyForURL = [delegate respondsToSelector:@selector(_webView:resolveWebGLLoadPolicyForURL:decisionHandler:)];
m_navigationDelegateMethods.webViewWillGoToBackForwardListItemInPageCache = [delegate respondsToSelector:@selector(_webView:willGoToBackForwardListItem:inPageCache:)];
+ m_navigationDelegateMethods.webViewDidFailToInitializePlugInWithInfo = [delegate respondsToSelector:@selector(_webView:didFailToInitializePlugInWithInfo:)];
#endif
}
@@ -292,6 +294,19 @@
}
#if PLATFORM(MAC)
+bool NavigationState::NavigationClient::didFailToInitializePlugIn(WebKit::WebPageProxy&, API::Dictionary& info)
+{
+ if (!m_navigationState.m_navigationDelegateMethods.webViewDidFailToInitializePlugInWithInfo)
+ return false;
+
+ auto navigationDelegate = m_navigationState.m_navigationDelegate.get();
+ if (!navigationDelegate)
+ return false;
+
+ [(id <WKNavigationDelegatePrivate>)navigationDelegate _webView:m_navigationState.m_webView didFailToInitializePlugInWithInfo:wrapper(info)];
+ return true;
+}
+
inline WebCore::WebGLLoadPolicy toWebCoreWebGLLoadPolicy(_WKWebGLLoadPolicy policy)
{
switch (policy) {
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (222801 => 222802)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2017-10-03 19:21:54 UTC (rev 222801)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2017-10-03 19:23:27 UTC (rev 222802)
@@ -6053,7 +6053,9 @@
#if ENABLE(NETSCAPE_PLUGIN_API)
void WebPageProxy::didFailToInitializePlugin(const String& mimeType, const String& frameURLString, const String& pageURLString)
{
- m_loaderClient->didFailToInitializePlugin(*this, createPluginInformationDictionary(mimeType, frameURLString, pageURLString).ptr());
+ if (m_navigationClient->didFailToInitializePlugIn(*this, createPluginInformationDictionary(mimeType, frameURLString, pageURLString).get()))
+ return;
+ m_loaderClient->didFailToInitializePlugin(*this, createPluginInformationDictionary(mimeType, frameURLString, pageURLString).get());
}
void WebPageProxy::didBlockInsecurePluginVersion(const String& mimeType, const String& pluginURLString, const String& frameURLString, const String& pageURLString, bool replacementObscured)