Title: [166606] trunk/Source/WebKit2
Revision
166606
Author
ander...@apple.com
Date
2014-04-01 13:35:47 -0700 (Tue, 01 Apr 2014)

Log Message

Pass a WKNavigationAction to the create UIDelegate method
https://bugs.webkit.org/show_bug.cgi?id=131053

Reviewed by Sam Weinig.

* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/Cocoa/UIClient.h:
* UIProcess/Cocoa/UIClient.mm:
(WebKit::UIClient::setDelegate):
(WebKit::UIClient::createNewPage):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (166605 => 166606)


--- trunk/Source/WebKit2/ChangeLog	2014-04-01 20:33:13 UTC (rev 166605)
+++ trunk/Source/WebKit2/ChangeLog	2014-04-01 20:35:47 UTC (rev 166606)
@@ -1,3 +1,16 @@
+2014-04-01  Anders Carlsson  <ander...@apple.com>
+
+        Pass a WKNavigationAction to the create UIDelegate method
+        https://bugs.webkit.org/show_bug.cgi?id=131053
+
+        Reviewed by Sam Weinig.
+
+        * UIProcess/API/Cocoa/WKUIDelegate.h:
+        * UIProcess/Cocoa/UIClient.h:
+        * UIProcess/Cocoa/UIClient.mm:
+        (WebKit::UIClient::setDelegate):
+        (WebKit::UIClient::createNewPage):
+
 2014-04-01  Benjamin Poulain  <bpoul...@apple.com>
 
         [iOS][WK2] Remove the two finger pan gesture recognizer until it is actually implemented

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h (166605 => 166606)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h	2014-04-01 20:33:13 UTC (rev 166605)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h	2014-04-01 20:35:47 UTC (rev 166606)
@@ -36,9 +36,7 @@
 
 @optional
 
-// FIXME: Maybe we should pass a WKNavigationAction instead of request and frame.
-// The C SPI has the key modifiers and mouse button as well.
-- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration request:(NSURLRequest *)request windowFeatures:(WKWindowFeatures *)windowFeatures initiatedByFrame:(WKFrameInfo *)frame;
+- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures;
 
 - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)())completionHandler;
 

Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.h (166605 => 166606)


--- trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.h	2014-04-01 20:33:13 UTC (rev 166605)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.h	2014-04-01 20:35:47 UTC (rev 166606)
@@ -61,7 +61,7 @@
     WeakObjCPtr<id <WKUIDelegate> > m_delegate;
 
     struct {
-        bool webViewCreateWebViewWithConfigurationRequestWindowFeaturesInitiatedByFrame : 1;
+        bool webViewCreateWebViewWithConfigurationForNavigationActionWindowFeatures : 1;
         bool webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler : 1;
         bool webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1;
         bool webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler : 1;

Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.mm (166605 => 166606)


--- trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.mm	2014-04-01 20:33:13 UTC (rev 166605)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.mm	2014-04-01 20:35:47 UTC (rev 166606)
@@ -29,6 +29,7 @@
 #if WK_API_ENABLED
 
 #import "WKFrameInfoInternal.h"
+#import "WKNavigationActionInternal.h"
 #import "WKWebViewConfigurationInternal.h"
 #import "WKWebViewInternal.h"
 #import "WKWindowFeaturesInternal.h"
@@ -54,7 +55,7 @@
 {
     m_delegate = delegate;
 
-    m_delegateMethods.webViewCreateWebViewWithConfigurationRequestWindowFeaturesInitiatedByFrame = [delegate respondsToSelector:@selector(webView:createWebViewWithConfiguration:request:windowFeatures:initiatedByFrame:)];
+    m_delegateMethods.webViewCreateWebViewWithConfigurationForNavigationActionWindowFeatures = [delegate respondsToSelector:@selector(webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:)];
     m_delegateMethods.webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)];
     m_delegateMethods.webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:)];
     m_delegateMethods.webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:)];
@@ -80,7 +81,7 @@
 
 PassRefPtr<WebKit::WebPageProxy> UIClient::createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy* initiatingFrame, const WebCore::ResourceRequest& request, const WebCore::WindowFeatures& windowFeatures, WebKit::WebEvent::Modifiers, WebKit::WebMouseEvent::Button)
 {
-    if (!m_delegateMethods.webViewCreateWebViewWithConfigurationRequestWindowFeaturesInitiatedByFrame)
+    if (!m_delegateMethods.webViewCreateWebViewWithConfigurationForNavigationActionWindowFeatures)
         return nullptr;
 
     auto delegate = m_delegate.get();
@@ -90,8 +91,15 @@
     auto configuration = adoptNS([m_webView->_configuration copy]);
     [configuration _setRelatedWebView:m_webView];
 
-    WKWebView *webView = [delegate webView:m_webView createWebViewWithConfiguration:configuration.get() request:request.nsURLRequest(WebCore::DoNotUpdateHTTPBody) windowFeatures:adoptNS([[WKWindowFeatures alloc] _initWithWindowFeatures:windowFeatures]).get() initiatedByFrame:adoptNS([[WKFrameInfo alloc] initWithWebFrameProxy:*initiatingFrame]).get()];
+    auto navigationAction = adoptNS([[WKNavigationAction alloc] init]);
 
+    // FIXME: Set a real navigation type.
+    [navigationAction setSourceFrame:adoptNS([[WKFrameInfo alloc] initWithWebFrameProxy:*initiatingFrame]).get()];
+    [navigationAction setNavigationType:WKNavigationTypeOther];
+    [navigationAction setRequest:request.nsURLRequest(WebCore::DoNotUpdateHTTPBody)];
+
+    RetainPtr<WKWebView> webView = [delegate.get() webView:m_webView createWebViewWithConfiguration:configuration.get() forNavigationAction:navigationAction.get() windowFeatures:adoptNS([[WKWindowFeatures alloc] _initWithWindowFeatures:windowFeatures]).get()];
+
     if (!webView)
         return nullptr;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to