Skip to content
  • weinig@apple.com's avatar
    [Cocoa] Make WKBrowsingContextController work with WKObject wrapping · 0e131da2
    weinig@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=125022
    
    Reviewed by Dan Bernstein.
    
    * Shared/Cocoa/APIObject.mm:
    (API::Object::newObject):
            
    * Shared/mac/ObjCObjectGraphCoders.mm:
    Add support for WKProcessGroup.
    
    (WebKit::WebContextObjCObjectGraphDecoderImpl::decode):
    Replace call to _browsingContextControllerForPageRef: with wrapper.
    
    * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
    Convert from wrapping the C-SPI type to storing the bits of the wrapped object inline.
    
    (-[WKBrowsingContextController dealloc]):
    Add explicit destructor call.
    
    (-[WKBrowsingContextController setLoadDelegate:]):
    (-[WKBrowsingContextController setPolicyDelegate:]):
    Lazily set up the load and policy clients only once a delegate has been set to allow
    continued use of the C-SPI clients for WebKitTestRunner.
    
    (-[WKBrowsingContextController _finishInitialization]):
    Move remaining work that was done in the initialize (setting up the observer) here,
    and have the WebPageProxy call it.
    
    * UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h:
    (WebKit::wrapper):
    Add wrapper() helper and declare conformance to the WKObject protocol. Remove no longer used
    _initWithPageRef: and _browsingContextControllerForPageRef: helpers.
    
    * UIProcess/API/Cocoa/WKProcessGroup.mm:
    (didNavigateWithNavigationData):
    (didPerformClientRedirect):
    (didPerformServerRedirect):
    (didUpdateHistoryTitle):
    Switch to using wrapper().
    
    * UIProcess/API/ios/WKContentView.mm:
    * UIProcess/API/mac/WKView.mm:
    Stop caching the WKBrowsingContextController, as it no long makes sense since it is the same object
    as the WebPageProxy.
    
    * UIProcess/mac/WebPageProxyMac.mm:
    (WebKit::WebPageProxy::platformInitialize):
    Inform the wrapper that it is safe to finish initialization.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    0e131da2