Changeset 162580 in webkit


Ignore:
Timestamp:
Jan 22, 2014 6:24:06 PM (10 years ago)
Author:
andersca@apple.com
Message:

WKBrowsingContextController should not be an API wrapper around WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=127454

Reviewed by Dan Bernstein.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Shared/mac/ObjCObjectGraphCoders.mm:

(WebKit::WebContextObjCObjectGraphDecoderImpl::decode):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController _initWithPageRef:]):
(+[WKBrowsingContextController _browsingContextControllerForPageRef:]):

  • UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h:
  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(didNavigateWithNavigationData):
(didPerformClientRedirect):
(didPerformServerRedirect):
(didUpdateHistoryTitle):

  • UIProcess/API/ios/WKContentView.mm:

(-[WKContentView browsingContextController]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView browsingContextController]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::platformInitialize):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::platformInitialize):

Location:
trunk/Source/WebKit2
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r162579 r162580  
     12014-01-22  Anders Carlsson  <andersca@apple.com>
     2
     3        WKBrowsingContextController should not be an API wrapper around WebPageProxy
     4        https://bugs.webkit.org/show_bug.cgi?id=127454
     5
     6        Reviewed by Dan Bernstein.
     7
     8        * Shared/Cocoa/APIObject.mm:
     9        (API::Object::newObject):
     10        * Shared/mac/ObjCObjectGraphCoders.mm:
     11        (WebKit::WebContextObjCObjectGraphDecoderImpl::decode):
     12        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
     13        (-[WKBrowsingContextController _initWithPageRef:]):
     14        (+[WKBrowsingContextController _browsingContextControllerForPageRef:]):
     15        * UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h:
     16        * UIProcess/API/Cocoa/WKProcessGroup.mm:
     17        (didNavigateWithNavigationData):
     18        (didPerformClientRedirect):
     19        (didPerformServerRedirect):
     20        (didUpdateHistoryTitle):
     21        * UIProcess/API/ios/WKContentView.mm:
     22        (-[WKContentView browsingContextController]):
     23        * UIProcess/API/mac/WKView.mm:
     24        (-[WKView browsingContextController]):
     25        * UIProcess/ios/WebPageProxyIOS.mm:
     26        (WebKit::WebPageProxy::platformInitialize):
     27        * UIProcess/mac/WebPageProxyMac.mm:
     28        (WebKit::WebPageProxy::platformInitialize):
     29
    1302014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
    231
  • trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm

    r162562 r162580  
    121121        break;
    122122
    123     case Type::Page:
    124         wrapper = [WKBrowsingContextController alloc];
    125         break;
    126 
    127123    case Type::PageGroup:
    128124        wrapper = [WKBrowsingContextGroup alloc];
  • trunk/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.mm

    r162505 r162580  
    352352                coder.m_root = [NSNull null];
    353353            else
    354                 coder.m_root = wrapper(*webPage);
     354                coder.m_root = [WKBrowsingContextController _browsingContextControllerForPageRef:toAPI(webPage)];
    355355            break;
    356356        }
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm

    r162562 r162580  
    140140
    141141@implementation WKBrowsingContextController {
    142     API::ObjectStorage<WebPageProxy> _page;
     142    RefPtr<WebPageProxy> _page;
    143143    std::unique_ptr<PageLoadStateObserver> _pageLoadStateObserver;
    144144
     
    157157
    158158    [super dealloc];
    159 }
    160 
    161 - (void)_finishInitialization
    162 {
    163     _pageLoadStateObserver = std::make_unique<PageLoadStateObserver>(self);
    164     _page->pageLoadState().addObserver(*_pageLoadStateObserver);
    165159}
    166160
     
    796790{
    797791    return *reinterpret_cast<API::Object*>(&_page);
     792}
     793
     794- (instancetype)_initWithPageRef:(WKPageRef)pageRef
     795{
     796    if (!(self = [super init]))
     797        return nil;
     798
     799    _page = toImpl(pageRef);
     800
     801    _pageLoadStateObserver = std::make_unique<PageLoadStateObserver>(self);
     802    _page->pageLoadState().addObserver(*_pageLoadStateObserver);
     803
     804    return self;
     805}
     806
     807+ (WKBrowsingContextController *)_browsingContextControllerForPageRef:(WKPageRef)pageRef
     808{
     809    return (WKBrowsingContextController *)WebKit::toImpl(pageRef)->loaderClient().client().base.clientInfo;
    798810}
    799811
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h

    r160191 r162580  
    3232#import "WebPageProxy.h"
    3333
    34 namespace WebKit {
    35 
    36 inline WKBrowsingContextController *wrapper(WebPageProxy& page)
    37 {
    38     ASSERT([page.wrapper() isKindOfClass:[WKBrowsingContextController class]]);
    39     return (WKBrowsingContextController *)page.wrapper();
    40 }
    41 
    42 }
    43 
    4434@interface WKBrowsingContextController () <WKObject> {
    4535@package
     
    4737}
    4838
    49 - (void)_finishInitialization;
    5039+ (NSMutableSet *)customSchemes;
     40+ (WKBrowsingContextController *)_browsingContextControllerForPageRef:(WKPageRef)pageRef;
     41
     42- (instancetype)_initWithPageRef:(WKPageRef)pageRef;
    5143
    5244@end
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm

    r162562 r162580  
    116116        return;
    117117
    118     WKBrowsingContextController *controller = wrapper(*toImpl(pageRef));
     118    WKBrowsingContextController *controller = [WKBrowsingContextController _browsingContextControllerForPageRef:pageRef];
    119119    auto historyDelegate = controller->_historyDelegate.get();
    120120
     
    128128        return;
    129129
    130     WKBrowsingContextController *controller = wrapper(*toImpl(pageRef));
     130    WKBrowsingContextController *controller = [WKBrowsingContextController _browsingContextControllerForPageRef:pageRef];
    131131    auto historyDelegate = controller->_historyDelegate.get();
    132132
     
    140140        return;
    141141
    142     WKBrowsingContextController *controller = wrapper(*toImpl(pageRef));
     142    WKBrowsingContextController *controller = [WKBrowsingContextController _browsingContextControllerForPageRef:pageRef];
    143143    auto historyDelegate = controller->_historyDelegate.get();
    144144
     
    152152        return;
    153153
    154     WKBrowsingContextController *controller = wrapper(*toImpl(pageRef));
     154    WKBrowsingContextController *controller = [WKBrowsingContextController _browsingContextControllerForPageRef:pageRef];
    155155    auto historyDelegate = controller->_historyDelegate.get();
    156156
  • trunk/Source/WebKit2/UIProcess/API/ios/WKContentView.mm

    r162562 r162580  
    5050    std::unique_ptr<PageClientImpl> _pageClient;
    5151    RefPtr<WebPageProxy> _page;
     52    RetainPtr<WKBrowsingContextController> _browsingContextController;
    5253
    5354    RetainPtr<UIView> _rootContentView;
     
    117118- (WKBrowsingContextController *)browsingContextController
    118119{
    119     return wrapper(*_page);
     120    if (!_browsingContextController)
     121        _browsingContextController = [[WKBrowsingContextController alloc] _initWithPageRef:toAPI(_page.get())];
     122
     123    return _browsingContextController.get();
    120124}
    121125
  • trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm

    r162556 r162580  
    146146    RefPtr<WebPageProxy> _page;
    147147
     148#if WK_API_ENABLED
     149    RetainPtr<WKBrowsingContextController> _browsingContextController;
     150#endif
     151
    148152    // For ToolTips.
    149153    NSToolTipTag _lastToolTipTag;
     
    285289- (WKBrowsingContextController *)browsingContextController
    286290{
    287     return wrapper(*_data->_page);
     291    if (!_data->_browsingContextController)
     292        _data->_browsingContextController = [[WKBrowsingContextController alloc] _initWithPageRef:toAPI(_data->_page.get())];
     293
     294    return _data->_browsingContextController.get();
    288295}
    289296
  • trunk/Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm

    r162189 r162580  
    4343void WebPageProxy::platformInitialize()
    4444{
    45 #if WK_API_ENABLED
    46     [WebKit::wrapper(*this) _finishInitialization];
    47 #endif
    4845}
    4946
  • trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm

    r162114 r162580  
    7070{
    7171    m_useLegacyImplicitRubberBandControl = shouldUseLegacyImplicitRubberBandControl();
    72 
    73 #if WK_API_ENABLED
    74     [WebKit::wrapper(*this) _finishInitialization];
    75 #endif
    7672}
    7773
Note: See TracChangeset for help on using the changeset viewer.