Changeset 159894 in webkit


Ignore:
Timestamp:
Nov 30, 2013 10:02:32 PM (10 years ago)
Author:
mitz@apple.com
Message:

[Cocoa] Stop using the WKPageRef API in WKBrowsingContextController
https://bugs.webkit.org/show_bug.cgi?id=125036

Reviewed by Sam Weinig.

  • Shared/Cocoa/WKNSURLExtras.h: Declared new method.
  • Shared/Cocoa/WKNSURLExtras.mm:

(-[NSURL _web_originalDataAsWTFString]): Added. Returns a WTF::String with the receiver’s
bytes.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController loadRequest:userData:]):
(-[WKBrowsingContextController loadFileURL:restrictToFilesWithin:userData:]):
(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]):
(-[WKBrowsingContextController loadAlternateHTMLString:baseURL:forUnreachableURL:]):
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
(-[WKBrowsingContextController stopLoading]):
(-[WKBrowsingContextController reload]):
(-[WKBrowsingContextController reloadFromOrigin]):
(-[WKBrowsingContextController goForward]):
(-[WKBrowsingContextController canGoForward]):
(-[WKBrowsingContextController goBack]):
(-[WKBrowsingContextController canGoBack]):
(-[WKBrowsingContextController activeURL]):
(-[WKBrowsingContextController provisionalURL]):
(-[WKBrowsingContextController committedURL]):
(-[WKBrowsingContextController title]):
(-[WKBrowsingContextController textZoom]):
(-[WKBrowsingContextController setTextZoom:]):
(-[WKBrowsingContextController pageZoom]):
(-[WKBrowsingContextController setPageZoom:]):
(setUpPageLoaderClient):
(setUpPagePolicyClient):
(-[WKBrowsingContextController setLoadDelegate:]):
(-[WKBrowsingContextController setPolicyDelegate:]):
(-[WKBrowsingContextController _pageRef]):
(-[WKBrowsingContextController setPaginationMode:]):
(-[WKBrowsingContextController paginationMode]):
(-[WKBrowsingContextController setPaginationBehavesLikeColumns:]):
(-[WKBrowsingContextController paginationBehavesLikeColumns]):
(-[WKBrowsingContextController setPageLength:]):
(-[WKBrowsingContextController pageLength]):
(-[WKBrowsingContextController setGapBetweenPages:]):
(-[WKBrowsingContextController gapBetweenPages]):
(-[WKBrowsingContextController pageCount]):

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r159893 r159894  
     12013-11-30  Dan Bernstein  <mitz@apple.com>
     2
     3        [Cocoa] Stop using the WKPageRef API in WKBrowsingContextController
     4        https://bugs.webkit.org/show_bug.cgi?id=125036
     5
     6        Reviewed by Sam Weinig.
     7
     8        * Shared/Cocoa/WKNSURLExtras.h: Declared new method.
     9        * Shared/Cocoa/WKNSURLExtras.mm:
     10        (-[NSURL _web_originalDataAsWTFString]): Added. Returns a WTF::String with the receiver’s
     11        bytes.
     12
     13        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
     14        (-[WKBrowsingContextController loadRequest:userData:]):
     15        (-[WKBrowsingContextController loadFileURL:restrictToFilesWithin:userData:]):
     16        (-[WKBrowsingContextController loadHTMLString:baseURL:userData:]):
     17        (-[WKBrowsingContextController loadAlternateHTMLString:baseURL:forUnreachableURL:]):
     18        (-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
     19        (-[WKBrowsingContextController stopLoading]):
     20        (-[WKBrowsingContextController reload]):
     21        (-[WKBrowsingContextController reloadFromOrigin]):
     22        (-[WKBrowsingContextController goForward]):
     23        (-[WKBrowsingContextController canGoForward]):
     24        (-[WKBrowsingContextController goBack]):
     25        (-[WKBrowsingContextController canGoBack]):
     26        (-[WKBrowsingContextController activeURL]):
     27        (-[WKBrowsingContextController provisionalURL]):
     28        (-[WKBrowsingContextController committedURL]):
     29        (-[WKBrowsingContextController title]):
     30        (-[WKBrowsingContextController textZoom]):
     31        (-[WKBrowsingContextController setTextZoom:]):
     32        (-[WKBrowsingContextController pageZoom]):
     33        (-[WKBrowsingContextController setPageZoom:]):
     34        (setUpPageLoaderClient):
     35        (setUpPagePolicyClient):
     36        (-[WKBrowsingContextController setLoadDelegate:]):
     37        (-[WKBrowsingContextController setPolicyDelegate:]):
     38        (-[WKBrowsingContextController _pageRef]):
     39        (-[WKBrowsingContextController setPaginationMode:]):
     40        (-[WKBrowsingContextController paginationMode]):
     41        (-[WKBrowsingContextController setPaginationBehavesLikeColumns:]):
     42        (-[WKBrowsingContextController paginationBehavesLikeColumns]):
     43        (-[WKBrowsingContextController setPageLength:]):
     44        (-[WKBrowsingContextController pageLength]):
     45        (-[WKBrowsingContextController setGapBetweenPages:]):
     46        (-[WKBrowsingContextController gapBetweenPages]):
     47        (-[WKBrowsingContextController pageCount]):
     48
    1492013-11-30  Commit Queue  <commit-queue@webkit.org>
    250
  • trunk/Source/WebKit2/Shared/Cocoa/WKNSURLExtras.h

    r159016 r159894  
    2828@interface NSURL (WKExtras)
    2929
    30 + (instancetype)_web_URLWithWTFString:(const WTF::String&)string relativeToURL:(NSURL *)baseURL;
     30+ (instancetype)_web_URLWithWTFString:(const String&)string relativeToURL:(NSURL *)baseURL;
     31
     32- (String)_web_originalDataAsWTFString;
    3133
    3234@end
  • trunk/Source/WebKit2/Shared/Cocoa/WKNSURLExtras.mm

    r159016 r159894  
    4444}
    4545
     46- (String)_web_originalDataAsWTFString
     47{
     48    CString originalData;
     49    getURLBytes((CFURLRef)self, originalData);
     50    return String::fromUTF8(originalData);
     51}
     52
    4653@end
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm

    r159891 r159894  
    11/*
    2  * Copyright (C) 2011 Apple Inc. All rights reserved.
     2 * Copyright (C) 2011, 2012, 2013 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    3232#import "WKBackForwardListInternal.h"
    3333#import "WKBackForwardListItemInternal.h"
    34 #import "WKErrorCF.h"
    3534#import "WKErrorRecoveryAttempting.h"
    3635#import "WKFrame.h"
     
    3938#import "WKNSError.h"
    4039#import "WKNSURLExtras.h"
    41 #import "WKPagePrivate.h"
    4240#import "WKRetainPtr.h"
    43 #import "WKStringCF.h"
    44 #import "WKURLCF.h"
    45 #import "WKURLRequest.h"
    4641#import "WKURLRequestNS.h"
    47 #import "WKURLResponse.h"
    4842#import "WKURLResponseNS.h"
    4943#import "WebContext.h"
    5044#import "WebData.h"
    5145#import "WebPageProxy.h"
    52 #import <WebCore/CFURLExtras.h>
    53 #import <wtf/ObjcRuntimeExtras.h>
    54 #import <wtf/RetainPtr.h>
    5546
    5647#import "WKBrowsingContextGroupInternal.h"
     
    8374    WKBrowsingContextController *m_controller;
    8475};
    85 
    86 static inline NSString *autoreleased(WKStringRef string)
    87 {
    88     return string ? CFBridgingRelease(WKStringCopyCFString(kCFAllocatorDefault, adoptWK(string).get())) : nil;
    89 }
    90 
    91 static inline NSURL *autoreleased(WKURLRef url)
    92 {
    93     return url ? CFBridgingRelease(WKURLCopyCFURL(kCFAllocatorDefault, adoptWK(url).get())) : nil;
    94 }
    9576
    9677NSString * const WKActionIsMainFrameKey = @"WKActionIsMainFrameKey";
     
    147128}
    148129
    149 - (WKPageRef)_pageRef
    150 {
    151     return toAPI(_page.get());
    152 }
    153 
    154130#pragma mark Loading
    155131
     
    181157- (void)loadRequest:(NSURLRequest *)request userData:(id)userData
    182158{
    183     WKRetainPtr<WKURLRequestRef> wkRequest = adoptWK(WKURLRequestCreateWithNSURLRequest(request));
     159    RefPtr<WebURLRequest> wkURLRequest = WebURLRequest::create(request);
    184160
    185161    RefPtr<ObjCObjectGraph> wkUserData;
     
    187163        wkUserData = ObjCObjectGraph::create(userData);
    188164
    189     WKPageLoadURLRequestWithUserData(toAPI(_page.get()), wkRequest.get(), (WKTypeRef)wkUserData.get());
     165    _page->loadURLRequest(wkURLRequest.get(), wkUserData.get());
    190166}
    191167
     
    200176        [NSException raise:NSInvalidArgumentException format:@"Attempted to load a non-file URL"];
    201177
    202     WKRetainPtr<WKURLRef> wkURL = adoptWK(WKURLCreateWithCFURL((CFURLRef)URL));
    203     WKRetainPtr<WKURLRef> wkAllowedDirectory = adoptWK(WKURLCreateWithCFURL((CFURLRef)allowedDirectory));
    204    
    205178    RefPtr<ObjCObjectGraph> wkUserData;
    206179    if (userData)
    207180        wkUserData = ObjCObjectGraph::create(userData);
    208181
    209     WKPageLoadFileWithUserData(toAPI(_page.get()), wkURL.get(), wkAllowedDirectory.get(), (WKTypeRef)wkUserData.get());
     182    _page->loadFile([URL _web_originalDataAsWTFString], [allowedDirectory _web_originalDataAsWTFString], wkUserData.get());
    210183}
    211184
     
    217190- (void)loadHTMLString:(NSString *)HTMLString baseURL:(NSURL *)baseURL userData:(id)userData
    218191{
    219     WKRetainPtr<WKStringRef> wkHTMLString;
    220     if (HTMLString)
    221         wkHTMLString = adoptWK(WKStringCreateWithCFString((CFStringRef)HTMLString));
    222 
    223     WKRetainPtr<WKURLRef> wkBaseURL;
    224     if (baseURL)
    225         wkBaseURL = adoptWK(WKURLCreateWithCFURL((CFURLRef)baseURL));
    226 
    227192    RefPtr<ObjCObjectGraph> wkUserData;
    228193    if (userData)
    229194        wkUserData = ObjCObjectGraph::create(userData);
    230195
    231     WKPageLoadHTMLStringWithUserData(toAPI(_page.get()), wkHTMLString.get(), wkBaseURL.get(), (WKTypeRef)wkUserData.get());
     196    _page->loadHTMLString(HTMLString, [baseURL _web_originalDataAsWTFString], wkUserData.get());
    232197}
    233198
    234199- (void)loadAlternateHTMLString:(NSString *)string baseURL:(NSURL *)baseURL forUnreachableURL:(NSURL *)unreachableURL
    235200{
    236     CString baseURLString;
    237     getURLBytes((CFURLRef)baseURL, baseURLString);
    238 
    239     CString unreachableURLString;
    240     getURLBytes((CFURLRef)unreachableURL, unreachableURLString);
    241 
    242     _page->loadAlternateHTMLString(string, String::fromUTF8(baseURLString), String::fromUTF8(unreachableURLString));
     201    _page->loadAlternateHTMLString(string, [baseURL _web_originalDataAsWTFString], [unreachableURL _web_originalDataAsWTFString]);
    243202}
    244203
     
    261220    }
    262221
    263     WKRetainPtr<WKStringRef> wkMIMEType;
    264     if (MIMEType)
    265         wkMIMEType = adoptWK(WKStringCreateWithCFString((CFStringRef)MIMEType));
    266 
    267     WKRetainPtr<WKStringRef> wkEncodingName;
    268     if (encodingName)
    269         wkEncodingName = adoptWK(WKStringCreateWithCFString((CFStringRef)encodingName));
    270 
    271     WKRetainPtr<WKURLRef> wkBaseURL;
    272     if (baseURL)
    273         wkBaseURL = adoptWK(WKURLCreateWithCFURL((CFURLRef)baseURL));
    274 
    275222    RefPtr<ObjCObjectGraph> wkUserData;
    276223    if (userData)
    277224        wkUserData = ObjCObjectGraph::create(userData);
    278225
    279     WKPageLoadDataWithUserData(toAPI(_page.get()), toAPI(wkData.get()), wkMIMEType.get(), wkEncodingName.get(), wkBaseURL.get(), (WKTypeRef)wkUserData.get());
     226    _page->loadData(wkData.get(), MIMEType, encodingName, [baseURL _web_originalDataAsWTFString], wkUserData.get());
    280227}
    281228
    282229- (void)stopLoading
    283230{
    284     WKPageStopLoading(toAPI(_page.get()));
     231    _page->stopLoading();
    285232}
    286233
    287234- (void)reload
    288235{
    289     WKPageReload(toAPI(_page.get()));
     236    _page->reload(false);
    290237}
    291238
    292239- (void)reloadFromOrigin
    293240{
    294     WKPageReloadFromOrigin(toAPI(_page.get()));
     241    _page->reload(true);
    295242}
    296243
     
    299246- (void)goForward
    300247{
    301     WKPageGoForward(toAPI(_page.get()));
     248    _page->goForward();
    302249}
    303250
    304251- (BOOL)canGoForward
    305252{
    306     return WKPageCanGoForward(toAPI(_page.get()));
     253    return _page->canGoForward();
    307254}
    308255
    309256- (void)goBack
    310257{
    311     WKPageGoBack(toAPI(_page.get()));
     258    _page->goBack();
    312259}
    313260
    314261- (BOOL)canGoBack
    315262{
    316     return WKPageCanGoBack(toAPI(_page.get()));
     263    return _page->canGoBack();
    317264}
    318265
     
    331278- (NSURL *)activeURL
    332279{
    333     return autoreleased(WKPageCopyActiveURL(toAPI(_page.get())));
     280    return [NSURL _web_URLWithWTFString:_page->pageLoadState().activeURL() relativeToURL:nil];
    334281}
    335282
    336283- (NSURL *)provisionalURL
    337284{
    338     return autoreleased(WKPageCopyProvisionalURL(toAPI(_page.get())));
     285    return [NSURL _web_URLWithWTFString:_page->pageLoadState().provisionalURL() relativeToURL:nil];
    339286}
    340287
    341288- (NSURL *)committedURL
    342289{
    343     return autoreleased(WKPageCopyCommittedURL(toAPI(_page.get())));
     290    return [NSURL _web_URLWithWTFString:_page->pageLoadState().url() relativeToURL:nil];
    344291}
    345292
     
    358305- (NSString *)title
    359306{
    360     return autoreleased(WKPageCopyTitle(toAPI(_page.get())));
     307    return _page->pageLoadState().title();
    361308}
    362309
     
    365312- (CGFloat)textZoom
    366313{
    367     return WKPageGetTextZoomFactor(toAPI(_page.get()));
     314    return _page->textZoomFactor();
    368315}
    369316
    370317- (void)setTextZoom:(CGFloat)textZoom
    371318{
    372     return WKPageSetTextZoomFactor(toAPI(_page.get()), textZoom);
     319    _page->setTextZoomFactor(textZoom);
    373320}
    374321
    375322- (CGFloat)pageZoom
    376323{
    377     return WKPageGetPageZoomFactor(toAPI(_page.get()));
     324    return _page->pageZoomFactor();
    378325}
    379326
    380327- (void)setPageZoom:(CGFloat)pageZoom
    381328{
    382     return WKPageSetPageZoomFactor(toAPI(_page.get()), pageZoom);
     329    _page->setPageZoomFactor(pageZoom);
    383330}
    384331
     
    493440}
    494441
    495 static void setUpPageLoaderClient(WKBrowsingContextController *browsingContext, WKPageRef pageRef)
     442static void setUpPageLoaderClient(WKBrowsingContextController *browsingContext, WebPageProxy& page)
    496443{
    497444    WKPageLoaderClient loaderClient;
     
    512459    loaderClient.didChangeBackForwardList = didChangeBackForwardList;
    513460
    514     WKPageSetPageLoaderClient(pageRef, &loaderClient);
     461    page.initializeLoaderClient(&loaderClient);
    515462}
    516463
     
    538485}
    539486
    540 static void setUpPagePolicyClient(WKBrowsingContextController *browsingContext, WKPageRef pageRef)
     487static void setUpPagePolicyClient(WKBrowsingContextController *browsingContext, WebPageProxy& page)
    541488{
    542489    WKPagePolicyClient policyClient;
     
    602549    };
    603550
    604     WKPageSetPagePolicyClient(pageRef, &policyClient);
     551    page.initializePolicyClient(&policyClient);
    605552}
    606553
     
    614561    _loadDelegate = loadDelegate;
    615562    if (_loadDelegate)
    616         setUpPageLoaderClient(self, toAPI(_page.get()));
     563        setUpPageLoaderClient(self, *_page);
    617564    else
    618         WKPageSetPageLoaderClient(toAPI(_page.get()), nullptr);;
     565        _page->initializeLoaderClient(nullptr);
    619566}
    620567
     
    628575    _policyDelegate = policyDelegate;
    629576    if (_policyDelegate)
    630         setUpPagePolicyClient(self, toAPI(_page.get()));
     577        setUpPagePolicyClient(self, *_page);
    631578    else
    632         WKPageSetPagePolicyClient(toAPI(_page.get()), nullptr);;
     579        _page->initializePolicyClient(nullptr);
    633580}
    634581
     
    673620@implementation WKBrowsingContextController (Private)
    674621
     622- (WKPageRef)_pageRef
     623{
     624    return toAPI(_page.get());
     625}
     626
    675627- (void)setPaginationMode:(WKBrowsingContextPaginationMode)paginationMode
    676628{
    677     WKPaginationMode mode;
     629    Pagination::Mode mode;
    678630    switch (paginationMode) {
    679631    case WKPaginationModeUnpaginated:
    680         mode = kWKPaginationModeUnpaginated;
     632        mode = Pagination::Unpaginated;
    681633        break;
    682634    case WKPaginationModeLeftToRight:
    683         mode = kWKPaginationModeLeftToRight;
     635        mode = Pagination::LeftToRightPaginated;
    684636        break;
    685637    case WKPaginationModeRightToLeft:
    686         mode = kWKPaginationModeRightToLeft;
     638        mode = Pagination::RightToLeftPaginated;
    687639        break;
    688640    case WKPaginationModeTopToBottom:
    689         mode = kWKPaginationModeTopToBottom;
     641        mode = Pagination::TopToBottomPaginated;
    690642        break;
    691643    case WKPaginationModeBottomToTop:
    692         mode = kWKPaginationModeBottomToTop;
     644        mode = Pagination::BottomToTopPaginated;
    693645        break;
    694646    default:
     
    696648    }
    697649
    698     WKPageSetPaginationMode(toAPI(_page.get()), mode);
     650    _page->setPaginationMode(mode);
    699651}
    700652
    701653- (WKBrowsingContextPaginationMode)paginationMode
    702654{
    703     switch (WKPageGetPaginationMode(toAPI(_page.get()))) {
    704     case kWKPaginationModeUnpaginated:
     655    switch (_page->paginationMode()) {
     656    case Pagination::Unpaginated:
    705657        return WKPaginationModeUnpaginated;
    706     case kWKPaginationModeLeftToRight:
     658    case Pagination::LeftToRightPaginated:
    707659        return WKPaginationModeLeftToRight;
    708     case kWKPaginationModeRightToLeft:
     660    case Pagination::RightToLeftPaginated:
    709661        return WKPaginationModeRightToLeft;
    710     case kWKPaginationModeTopToBottom:
     662    case Pagination::TopToBottomPaginated:
    711663        return WKPaginationModeTopToBottom;
    712     case kWKPaginationModeBottomToTop:
     664    case Pagination::BottomToTopPaginated:
    713665        return WKPaginationModeBottomToTop;
    714666    }
     
    720672- (void)setPaginationBehavesLikeColumns:(BOOL)behavesLikeColumns
    721673{
    722     WKPageSetPaginationBehavesLikeColumns(toAPI(_page.get()), behavesLikeColumns);
     674    _page->setPaginationBehavesLikeColumns(behavesLikeColumns);
    723675}
    724676
    725677- (BOOL)paginationBehavesLikeColumns
    726678{
    727     return WKPageGetPaginationBehavesLikeColumns(toAPI(_page.get()));
     679    return _page->paginationBehavesLikeColumns();
    728680}
    729681
    730682- (void)setPageLength:(CGFloat)pageLength
    731683{
    732     WKPageSetPageLength(toAPI(_page.get()), pageLength);
     684    _page->setPageLength(pageLength);
    733685}
    734686
    735687- (CGFloat)pageLength
    736688{
    737     return WKPageGetPageLength(toAPI(_page.get()));
     689    return _page->pageLength();
    738690}
    739691
    740692- (void)setGapBetweenPages:(CGFloat)gapBetweenPages
    741693{
    742     WKPageSetGapBetweenPages(toAPI(_page.get()), gapBetweenPages);
     694    _page->setGapBetweenPages(gapBetweenPages);
    743695}
    744696
    745697- (CGFloat)gapBetweenPages
    746698{
    747     return WKPageGetGapBetweenPages(toAPI(_page.get()));
     699    return _page->gapBetweenPages();
    748700}
    749701
    750702- (NSUInteger)pageCount
    751703{
    752     return WKPageGetPageCount(toAPI(_page.get()));
     704    return _page->pageCount();
    753705}
    754706
Note: See TracChangeset for help on using the changeset viewer.