Changeset 166606 in webkit


Ignore:
Timestamp:
Apr 1, 2014 1:35:47 PM (10 years ago)
Author:
andersca@apple.com
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):

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r166605 r166606  
     12014-04-01  Anders Carlsson  <andersca@apple.com>
     2
     3        Pass a WKNavigationAction to the create UIDelegate method
     4        https://bugs.webkit.org/show_bug.cgi?id=131053
     5
     6        Reviewed by Sam Weinig.
     7
     8        * UIProcess/API/Cocoa/WKUIDelegate.h:
     9        * UIProcess/Cocoa/UIClient.h:
     10        * UIProcess/Cocoa/UIClient.mm:
     11        (WebKit::UIClient::setDelegate):
     12        (WebKit::UIClient::createNewPage):
     13
    1142014-04-01  Benjamin Poulain  <bpoulain@apple.com>
    215
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h

    r166270 r166606  
    3737@optional
    3838
    39 // FIXME: Maybe we should pass a WKNavigationAction instead of request and frame.
    40 // The C SPI has the key modifiers and mouse button as well.
    41 - (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration request:(NSURLRequest *)request windowFeatures:(WKWindowFeatures *)windowFeatures initiatedByFrame:(WKFrameInfo *)frame;
     39- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures;
    4240
    4341- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)())completionHandler;
  • trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.h

    r166270 r166606  
    6262
    6363    struct {
    64         bool webViewCreateWebViewWithConfigurationRequestWindowFeaturesInitiatedByFrame : 1;
     64        bool webViewCreateWebViewWithConfigurationForNavigationActionWindowFeatures : 1;
    6565        bool webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler : 1;
    6666        bool webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1;
  • trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.mm

    r166270 r166606  
    3030
    3131#import "WKFrameInfoInternal.h"
     32#import "WKNavigationActionInternal.h"
    3233#import "WKWebViewConfigurationInternal.h"
    3334#import "WKWebViewInternal.h"
     
    5556    m_delegate = delegate;
    5657
    57     m_delegateMethods.webViewCreateWebViewWithConfigurationRequestWindowFeaturesInitiatedByFrame = [delegate respondsToSelector:@selector(webView:createWebViewWithConfiguration:request:windowFeatures:initiatedByFrame:)];
     58    m_delegateMethods.webViewCreateWebViewWithConfigurationForNavigationActionWindowFeatures = [delegate respondsToSelector:@selector(webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:)];
    5859    m_delegateMethods.webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)];
    5960    m_delegateMethods.webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:)];
     
    8182PassRefPtr<WebKit::WebPageProxy> UIClient::createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy* initiatingFrame, const WebCore::ResourceRequest& request, const WebCore::WindowFeatures& windowFeatures, WebKit::WebEvent::Modifiers, WebKit::WebMouseEvent::Button)
    8283{
    83     if (!m_delegateMethods.webViewCreateWebViewWithConfigurationRequestWindowFeaturesInitiatedByFrame)
     84    if (!m_delegateMethods.webViewCreateWebViewWithConfigurationForNavigationActionWindowFeatures)
    8485        return nullptr;
    8586
     
    9192    [configuration _setRelatedWebView:m_webView];
    9293
    93     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()];
     94    auto navigationAction = adoptNS([[WKNavigationAction alloc] init]);
     95
     96    // FIXME: Set a real navigation type.
     97    [navigationAction setSourceFrame:adoptNS([[WKFrameInfo alloc] initWithWebFrameProxy:*initiatingFrame]).get()];
     98    [navigationAction setNavigationType:WKNavigationTypeOther];
     99    [navigationAction setRequest:request.nsURLRequest(WebCore::DoNotUpdateHTTPBody)];
     100
     101    RetainPtr<WKWebView> webView = [delegate.get() webView:m_webView createWebViewWithConfiguration:configuration.get() forNavigationAction:navigationAction.get() windowFeatures:adoptNS([[WKWindowFeatures alloc] _initWithWindowFeatures:windowFeatures]).get()];
    94102
    95103    if (!webView)
Note: See TracChangeset for help on using the changeset viewer.