Title: [222802] trunk/Source/WebKit
Revision
222802
Author
[email protected]
Date
2017-10-03 12:23:27 -0700 (Tue, 03 Oct 2017)

Log Message

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):

Modified Paths

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)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to