Changeset 163501 in webkit


Ignore:
Timestamp:
Feb 5, 2014 5:49:06 PM (10 years ago)
Author:
andersca@apple.com
Message:

Add sourceFrame to WKNavigationAction
https://bugs.webkit.org/show_bug.cgi?id=128280

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKFrameInfo.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationActionInternal.h.
  • UIProcess/API/Cocoa/WKFrameInfo.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationActionInternal.h.

(-[WKFrameInfo request]):
(-[WKFrameInfo setRequest:]):

  • UIProcess/API/Cocoa/WKFrameInfoInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationActionInternal.h.
  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction sourceFrame]):
(-[WKNavigationAction setSourceFrame:]):

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

(WebKit::frameInfoFromWebFrameProxy):
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):

  • WebKit2.xcodeproj/project.pbxproj:
Location:
trunk
Files:
8 edited
3 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r163499 r163501  
     12014-02-05  Anders Carlsson  <andersca@apple.com>
     2
     3        Add sourceFrame to WKNavigationAction
     4        https://bugs.webkit.org/show_bug.cgi?id=128280
     5
     6        Reviewed by Dan Bernstein.
     7
     8        * UIProcess/API/Cocoa/WKFrameInfo.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationActionInternal.h.
     9        * UIProcess/API/Cocoa/WKFrameInfo.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationActionInternal.h.
     10        (-[WKFrameInfo request]):
     11        (-[WKFrameInfo setRequest:]):
     12        * UIProcess/API/Cocoa/WKFrameInfoInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationActionInternal.h.
     13        * UIProcess/API/Cocoa/WKNavigationAction.h:
     14        * UIProcess/API/Cocoa/WKNavigationAction.mm:
     15        (-[WKNavigationAction sourceFrame]):
     16        (-[WKNavigationAction setSourceFrame:]):
     17        * UIProcess/API/Cocoa/WKNavigationActionInternal.h:
     18        * UIProcess/Cocoa/NavigationState.mm:
     19        (WebKit::frameInfoFromWebFrameProxy):
     20        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
     21        * WebKit2.xcodeproj/project.pbxproj:
     22
    1232014-02-05  Enrica Casucci  <enrica@apple.com>
    224
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.h

    r163499 r163501  
    2424 */
    2525
    26 #import "WKNavigationAction.h"
     26#import <Foundation/Foundation.h>
     27#import <WebKit2/WKFoundation.h>
    2728
    2829#if WK_API_ENABLED
    2930
    30 @interface WKNavigationAction ()
     31WK_API_CLASS
     32@interface WKFrameInfo : NSObject
    3133
    32 @property (nonatomic, readwrite) WKNavigationType navigationType;
     34@property (nonatomic, readonly, getter=isMainFrame) BOOL mainFrame;
     35@property (nonatomic, readonly) NSURLRequest *request;
    3336
    3437@end
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.mm

    r163499 r163501  
    2424 */
    2525
    26 #import "WKNavigationAction.h"
     26#import "config.h"
     27#import "WKFrameInfoInternal.h"
    2728
    2829#if WK_API_ENABLED
    2930
    30 @interface WKNavigationAction ()
     31#import <wtf/RetainPtr.h>
    3132
    32 @property (nonatomic, readwrite) WKNavigationType navigationType;
     33@implementation WKFrameInfo {
     34    RetainPtr<NSURLRequest> _request;
     35}
     36
     37- (NSURLRequest *)request
     38{
     39    return _request.get();
     40}
     41
     42- (void)setRequest:(NSURLRequest *)request
     43{
     44    _request = adoptNS([request copy]);
     45}
    3346
    3447@end
    3548
    3649#endif
     50
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfoInternal.h

    r163499 r163501  
    2424 */
    2525
    26 #import "WKNavigationAction.h"
     26#import "WKFrameInfo.h"
    2727
    2828#if WK_API_ENABLED
    2929
    30 @interface WKNavigationAction ()
     30@interface WKFrameInfo ()
    3131
    32 @property (nonatomic, readwrite) WKNavigationType navigationType;
     32@property (nonatomic, readwrite, getter=isMainFrame) BOOL mainFrame;
     33@property (nonatomic, readwrite, copy) NSURLRequest *request;
    3334
    3435@end
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKNavigationAction.h

    r163405 r163501  
    2929#if WK_API_ENABLED
    3030
     31@class WKFrameInfo;
     32
    3133typedef NS_ENUM(NSInteger, WKNavigationType) {
    3234    WKNavigationTypeLinkActivated,
     
    4143@interface WKNavigationAction : NSObject
    4244
     45@property (nonatomic, readonly) WKFrameInfo *sourceFrame;
     46
    4347@property (nonatomic, readonly) WKNavigationType navigationType;
    4448
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKNavigationAction.mm

    r163405 r163501  
    2424 */
    2525
    26 #include "config.h"
    27 #include "WKNavigationAction.h"
     26#import "config.h"
     27#import "WKNavigationActionInternal.h"
    2828
    2929#if WK_API_ENABLED
    3030
    31 @implementation WKNavigationAction
     31#import <wtf/RetainPtr.h>
     32
     33@implementation WKNavigationAction {
     34    RetainPtr<WKFrameInfo> _sourceFrame;
     35}
     36
     37- (WKFrameInfo *)sourceFrame
     38{
     39    return _sourceFrame.get();
     40}
     41
     42- (void)setSourceFrame:(WKFrameInfo *)sourceFrame
     43{
     44    _sourceFrame = sourceFrame;
     45}
    3246
    3347@end
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKNavigationActionInternal.h

    r163405 r163501  
    3030@interface WKNavigationAction ()
    3131
     32@property (nonatomic, readwrite, strong) WKFrameInfo *sourceFrame;
     33
    3234@property (nonatomic, readwrite) WKNavigationType navigationType;
    3335
  • trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm

    r163405 r163501  
    3131#import "NavigationActionData.h"
    3232#import "PageLoadState.h"
     33#import "WKFrameInfoInternal.h"
    3334#import "WKNavigationActionInternal.h"
    3435#import "WKNavigationDelegate.h"
     
    127128}
    128129
     130static RetainPtr<WKFrameInfo> frameInfoFromWebFrameProxy(WebFrameProxy& webFrameProxy)
     131{
     132    auto frameInfo = adoptNS([[WKFrameInfo alloc] init]);
     133
     134    [frameInfo setMainFrame:webFrameProxy.isMainFrame()];
     135
     136    return frameInfo;
     137}
     138
    129139void NavigationState::PolicyClient::decidePolicyForNavigationAction(WebPageProxy*, WebFrameProxy* destinationFrame, const NavigationActionData& navigationActionData, WebFrameProxy* sourceFrame, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest&, RefPtr<WebFramePolicyListenerProxy> listener, API::Object* userData)
    130140{
     
    141151    // FIXME: Set up the navigation action object.
    142152    auto navigationAction = adoptNS([[WKNavigationAction alloc] init]);
     153
     154    if (sourceFrame) {
     155        auto sourceFrameInfo = frameInfoFromWebFrameProxy(*sourceFrame);
     156        [sourceFrameInfo setRequest:originalRequest.nsURLRequest(WebCore::DoNotUpdateHTTPBody)];
     157        [navigationAction setSourceFrame:sourceFrameInfo.get()];
     158    }
    143159
    144160    [navigationAction setNavigationType:toWKNavigationType(navigationActionData.navigationType)];
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r163480 r163501  
    119119                1A24BF3A120896A600FBB059 /* SharedMemoryMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A24BF39120896A600FBB059 /* SharedMemoryMac.cpp */; };
    120120                1A256E3718A1A788006FB922 /* WKNavigationAction.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A256E3518A1A788006FB922 /* WKNavigationAction.mm */; };
    121                 1A256E3818A1A788006FB922 /* WKNavigationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A256E3618A1A788006FB922 /* WKNavigationAction.h */; };
     121                1A256E3818A1A788006FB922 /* WKNavigationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A256E3618A1A788006FB922 /* WKNavigationAction.h */; settings = {ATTRIBUTES = (Public, ); }; };
    122122                1A256E3A18A1A7DF006FB922 /* WKNavigationActionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A256E3918A1A7DF006FB922 /* WKNavigationActionInternal.h */; };
    123123                1A2A4B0E1586A2240090C9E9 /* ColorSpaceData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A2A4AFD158693920090C9E9 /* ColorSpaceData.mm */; };
     
    179179                1A4A9F3312B844E2008FE984 /* PluginQuirks.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4A9F3112B844E2008FE984 /* PluginQuirks.h */; };
    180180                1A4D664818A2D91A00D82E21 /* APIUIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4D664718A2D91A00D82E21 /* APIUIClient.h */; };
     181                1A4D664B18A3030E00D82E21 /* WKFrameInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A4D664918A3030E00D82E21 /* WKFrameInfo.mm */; };
     182                1A4D664C18A3030E00D82E21 /* WKFrameInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4D664A18A3030E00D82E21 /* WKFrameInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
     183                1A4D664E18A3031B00D82E21 /* WKFrameInfoInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4D664D18A3031B00D82E21 /* WKFrameInfoInternal.h */; };
    181184                1A50DB66110A3D57000D3FE5 /* WebProcess.app in Copy Files */ = {isa = PBXBuildFile; fileRef = 1A50DB1E110A3BDC000D3FE5 /* WebProcess.app */; };
    182185                1A5B1C501898606F004FCF9B /* WKNavigation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A5B1C4E1898606F004FCF9B /* WKNavigation.mm */; };
     
    18231826                1A4A9F3112B844E2008FE984 /* PluginQuirks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginQuirks.h; sourceTree = "<group>"; };
    18241827                1A4D664718A2D91A00D82E21 /* APIUIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIUIClient.h; sourceTree = "<group>"; };
     1828                1A4D664918A3030E00D82E21 /* WKFrameInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKFrameInfo.mm; sourceTree = "<group>"; };
     1829                1A4D664A18A3030E00D82E21 /* WKFrameInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKFrameInfo.h; sourceTree = "<group>"; };
     1830                1A4D664D18A3031B00D82E21 /* WKFrameInfoInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKFrameInfoInternal.h; sourceTree = "<group>"; };
    18251831                1A4F976A100E7B6600637A18 /* Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = "<group>"; };
    18261832                1A4F976B100E7B6600637A18 /* DebugRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = DebugRelease.xcconfig; sourceTree = "<group>"; };
     
    42884294                        children = (
    42894295                                1A43E826188F38E2009E4D30 /* Deprecated */,
     4296                                1A4D664A18A3030E00D82E21 /* WKFrameInfo.h */,
     4297                                1A4D664918A3030E00D82E21 /* WKFrameInfo.mm */,
     4298                                1A4D664D18A3031B00D82E21 /* WKFrameInfoInternal.h */,
    42904299                                1A5B1C4F1898606F004FCF9B /* WKNavigation.h */,
    42914300                                1A5B1C4E1898606F004FCF9B /* WKNavigation.mm */,
     
    64196428                                2DA944871884E3B500ED86DB /* PageClientImplIOS.h in Headers */,
    64206429                                1AD3306F16B1D991004F60E7 /* StorageAreaImpl.h in Headers */,
     6430                                1A4D664E18A3031B00D82E21 /* WKFrameInfoInternal.h in Headers */,
    64216431                                1ACECD2517162DB1001FC9EF /* StorageAreaMap.h in Headers */,
    64226432                                1A334DEE16DE8F88006A8E38 /* StorageAreaMapMessages.h in Headers */,
     
    67316741                                B62E7312143047B00069EC35 /* WKHitTestResult.h in Headers */,
    67326742                                5110AE0D133C16CB0072717A /* WKIconDatabase.h in Headers */,
     6743                                1A4D664C18A3030E00D82E21 /* WKFrameInfo.h in Headers */,
    67336744                                5123CF1C133D260A0056F800 /* WKIconDatabaseCG.h in Headers */,
    67346745                                37C4C0941814B3AF003688B9 /* WKNSArray.h in Headers */,
     
    76107621                                2DA944AD1884E9BA00ED86DB /* TextCheckerIOS.mm in Sources */,
    76117622                                2DA944A21884E4F000ED86DB /* WebPlatformTouchPointIOS.cpp in Sources */,
     7623                                1A4D664B18A3030E00D82E21 /* WKFrameInfo.mm in Sources */,
    76127624                                2D28F3E51885CCC1004B9EAE /* WebDatabaseManagerIOS.mm in Sources */,
    76137625                                51B15A8413843A3900321AD8 /* EnvironmentUtilities.cpp in Sources */,
  • trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m

    r151933 r163501  
    4444    [_webView setUIDelegate:self];
    4545    [_webView setResourceLoadDelegate:self];
     46    [_webView setPolicyDelegate:self];
    4647
    4748    [containerView addSubview:_webView];
     
    258259}
    259260
     261- (void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id<WebPolicyDecisionListener>)listener
     262{
     263    NSLog(@"request %@ actionInformation %@", request, actionInformation);
     264
     265    [listener use];
     266}
     267
    260268// WebFrameLoadDelegate Methods
    261269- (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame
  • trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m

    r163043 r163501  
    673673{
    674674    LOG(@"decidePolicyForNavigationAction");
     675    NSLog(@"action information %@", actionInformation);
    675676    decisionHandler(WKPolicyDecisionAllow);
    676677}
Note: See TracChangeset for help on using the changeset viewer.