Changeset 163405 in webkit


Ignore:
Timestamp:
Feb 4, 2014 3:21:23 PM (10 years ago)
Author:
andersca@apple.com
Message:

Add a WKNavigationAction object
https://bugs.webkit.org/show_bug.cgi?id=128212

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKNavigationAction.h: Added.

(NS_ENUM):

  • UIProcess/API/Cocoa/WKNavigationAction.mm: Added.
  • UIProcess/API/Cocoa/WKNavigationActionInternal.h: Added.
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::toWKNavigationType):
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):

  • WebKit2.xcodeproj/project.pbxproj:
Location:
trunk/Source/WebKit2
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r163404 r163405  
     12014-02-04  Anders Carlsson  <andersca@apple.com>
     2
     3        Add a WKNavigationAction object
     4        https://bugs.webkit.org/show_bug.cgi?id=128212
     5
     6        Reviewed by Dan Bernstein.
     7
     8        * UIProcess/API/Cocoa/WKNavigationAction.h: Added.
     9        (NS_ENUM):
     10        * UIProcess/API/Cocoa/WKNavigationAction.mm: Added.
     11        * UIProcess/API/Cocoa/WKNavigationActionInternal.h: Added.
     12        * UIProcess/Cocoa/NavigationState.mm:
     13        (WebKit::toWKNavigationType):
     14        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
     15        * WebKit2.xcodeproj/project.pbxproj:
     16
    1172014-02-04  Anders Carlsson  <andersca@apple.com>
    218
  • trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm

    r163358 r163405  
    2929#if WK_API_ENABLED
    3030
     31#import "NavigationActionData.h"
    3132#import "PageLoadState.h"
     33#import "WKNavigationActionInternal.h"
    3234#import "WKNavigationDelegate.h"
    3335#import "WKNavigationInternal.h"
     
    104106}
    105107
    106 void NavigationState::PolicyClient::decidePolicyForNavigationAction(WebPageProxy*, WebFrameProxy* destinationFrame, const NavigationActionData&, WebFrameProxy* sourceFrame, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest&, RefPtr<WebFramePolicyListenerProxy> listener, API::Object* userData)
     108static WKNavigationType toWKNavigationType(WebCore::NavigationType navigationType)
     109{
     110    switch (navigationType) {
     111    case WebCore::NavigationTypeLinkClicked:
     112        return WKNavigationTypeLinkActivated;
     113    case WebCore::NavigationTypeFormSubmitted:
     114        return WKNavigationTypeFormSubmitted;
     115    case WebCore::NavigationTypeBackForward:
     116        return WKNavigationTypeBackForward;
     117    case WebCore::NavigationTypeReload:
     118        return WKNavigationTypeReload;
     119    case WebCore::NavigationTypeFormResubmitted:
     120        return WKNavigationTypeFormResubmitted;
     121    case WebCore::NavigationTypeOther:
     122        return WKNavigationTypeOther;
     123    }
     124
     125    ASSERT_NOT_REACHED();
     126    return WKNavigationTypeOther;
     127}
     128
     129void NavigationState::PolicyClient::decidePolicyForNavigationAction(WebPageProxy*, WebFrameProxy* destinationFrame, const NavigationActionData& navigationActionData, WebFrameProxy* sourceFrame, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest&, RefPtr<WebFramePolicyListenerProxy> listener, API::Object* userData)
    107130{
    108131    if (!m_navigationState.m_navigationDelegateMethods.webViewDecidePolicyForNavigationActionDecisionHandler) {
     
    117140
    118141    // FIXME: Set up the navigation action object.
    119     WKNavigationAction *navigationAction = nil;
    120 
    121     [navigationDelegate webView:m_navigationState.m_webView decidePolicyForNavigationAction:navigationAction decisionHandler:[listener](WKNavigationPolicyDecision policyDecision) {
     142    auto navigationAction = adoptNS([[WKNavigationAction alloc] init]);
     143
     144    [navigationAction setNavigationType:toWKNavigationType(navigationActionData.navigationType)];
     145
     146    [navigationDelegate webView:m_navigationState.m_webView decidePolicyForNavigationAction:navigationAction.get() decisionHandler:[listener](WKNavigationPolicyDecision policyDecision) {
    122147        switch (policyDecision) {
    123148        case WKNavigationPolicyDecisionAllow:
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r163332 r163405  
    118118                1A24BED5120894D100FBB059 /* SharedMemory.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A24BED3120894D100FBB059 /* SharedMemory.h */; };
    119119                1A24BF3A120896A600FBB059 /* SharedMemoryMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A24BF39120896A600FBB059 /* SharedMemoryMac.cpp */; };
     120                1A256E3718A1A788006FB922 /* WKNavigationAction.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A256E3518A1A788006FB922 /* WKNavigationAction.mm */; };
     121                1A256E3818A1A788006FB922 /* WKNavigationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A256E3618A1A788006FB922 /* WKNavigationAction.h */; };
     122                1A256E3A18A1A7DF006FB922 /* WKNavigationActionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A256E3918A1A7DF006FB922 /* WKNavigationActionInternal.h */; };
    120123                1A2A4B0E1586A2240090C9E9 /* ColorSpaceData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A2A4AFD158693920090C9E9 /* ColorSpaceData.mm */; };
    121124                1A2BB6D014117B4D000F35D4 /* PluginProcessConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A2BB6CE14117B4D000F35D4 /* PluginProcessConnectionMessageReceiver.cpp */; };
     
    17631766                1A24BED3120894D100FBB059 /* SharedMemory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SharedMemory.h; sourceTree = "<group>"; };
    17641767                1A24BF39120896A600FBB059 /* SharedMemoryMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedMemoryMac.cpp; sourceTree = "<group>"; };
     1768                1A256E3518A1A788006FB922 /* WKNavigationAction.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNavigationAction.mm; sourceTree = "<group>"; };
     1769                1A256E3618A1A788006FB922 /* WKNavigationAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNavigationAction.h; sourceTree = "<group>"; };
     1770                1A256E3918A1A7DF006FB922 /* WKNavigationActionInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNavigationActionInternal.h; sourceTree = "<group>"; };
    17651771                1A2A4AFD158693920090C9E9 /* ColorSpaceData.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ColorSpaceData.mm; sourceTree = "<group>"; };
    17661772                1A2A4AFE158693920090C9E9 /* ColorSpaceData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorSpaceData.h; sourceTree = "<group>"; };
     
    42844290                                1A5B1C4F1898606F004FCF9B /* WKNavigation.h */,
    42854291                                1A5B1C4E1898606F004FCF9B /* WKNavigation.mm */,
     4292                                1A256E3618A1A788006FB922 /* WKNavigationAction.h */,
     4293                                1A256E3518A1A788006FB922 /* WKNavigationAction.mm */,
     4294                                1A256E3918A1A7DF006FB922 /* WKNavigationActionInternal.h */,
    42864295                                1ABC3DFB1899F51C004F0626 /* WKNavigationDelegate.h */,
    42874296                                1ABC3DF01899C6B6004F0626 /* WKNavigationInternal.h */,
     
    64336442                                CEDA12E3152CD1B300D9E08D /* WebAlternativeTextClient.h in Headers */,
    64346443                                512E352F130B55AF00ABD19A /* WebApplicationCacheManager.h in Headers */,
     6444                                1A256E3A18A1A7DF006FB922 /* WKNavigationActionInternal.h in Headers */,
    64356445                                512E356B130B57F000ABD19A /* WebApplicationCacheManagerMessages.h in Headers */,
    64366446                                512E3525130B550600ABD19A /* WebApplicationCacheManagerProxy.h in Headers */,
     
    67956805                                F6113E29126CE19B0057D0A7 /* WKUserContentURLPattern.h in Headers */,
    67966806                                BC8699B7116AADAA002A925B /* WKViewInternal.h in Headers */,
     6807                                1A256E3818A1A788006FB922 /* WKNavigationAction.h in Headers */,
    67976808                                BFA6179F12F0B99D0033E0CA /* WKViewPrivate.h in Headers */,
    67986809                                755422CC180773CE0046F6A8 /* WebOriginDataManager.h in Headers */,
     
    80438054                                BC646C1A11DD399F006455B0 /* WKBackForwardListRef.cpp in Sources */,
    80448055                                BC646C1C11DD399F006455B0 /* WKBackForwardListItemRef.cpp in Sources */,
     8056                                1A256E3718A1A788006FB922 /* WKNavigationAction.mm in Sources */,
    80458057                                BCBAAC72144E61990053F82F /* WKBrowsingContextController.mm in Sources */,
    80468058                                BCBAACF51452324F0053F82F /* WKBrowsingContextGroup.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.