Changeset 162562 in webkit


Ignore:
Timestamp:
Jan 22, 2014 3:14:38 PM (10 years ago)
Author:
andersca@apple.com
Message:

WKProcessClass should create a WebContext
https://bugs.webkit.org/show_bug.cgi?id=127449
<rdar://problem/15885582>

Reviewed by Dan Bernstein.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/Cocoa/WKBrowsingContextController.h:
  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:
  • UIProcess/API/Cocoa/WKProcessClass.mm:

(-[WKProcessClass initWithConfiguration:]):
(-[WKProcessClass dealloc]):
(-[WKProcessClass API::]):

  • UIProcess/API/Cocoa/WKProcessClassInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroupInternal.h.

(WebKit::wrapper):

  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(-[WKProcessGroup initWithInjectedBundleURL:]):

  • UIProcess/API/ios/WKContentView.mm:

(-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]):

  • WebKit2.xcodeproj/project.pbxproj:
Location:
trunk/Source/WebKit2
Files:
8 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r162556 r162562  
     12014-01-22  Anders Carlsson  <andersca@apple.com>
     2
     3        WKProcessClass should create a WebContext
     4        https://bugs.webkit.org/show_bug.cgi?id=127449
     5        <rdar://problem/15885582>
     6
     7        Reviewed by Dan Bernstein.
     8
     9        * Shared/Cocoa/APIObject.mm:
     10        (API::Object::newObject):
     11        * UIProcess/API/Cocoa/WKBrowsingContextController.h:
     12        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
     13        * UIProcess/API/Cocoa/WKProcessClass.mm:
     14        (-[WKProcessClass initWithConfiguration:]):
     15        (-[WKProcessClass dealloc]):
     16        (-[WKProcessClass API::]):
     17        * UIProcess/API/Cocoa/WKProcessClassInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroupInternal.h.
     18        (WebKit::wrapper):
     19        * UIProcess/API/Cocoa/WKProcessGroup.mm:
     20        (-[WKProcessGroup initWithInjectedBundleURL:]):
     21        * UIProcess/API/ios/WKContentView.mm:
     22        (-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]):
     23        * WebKit2.xcodeproj/project.pbxproj:
     24
    1252014-01-22  Tim Horton  <timothy_horton@apple.com>
    226
  • trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm

    r160803 r162562  
    4343#import "WKNSURLProtectionSpace.h"
    4444#import "WKNavigationDataInternal.h"
    45 #import "WKProcessGroupInternal.h"
     45#import "WKProcessClassInternal.h"
    4646#import "WKWebProcessPlugInBrowserContextControllerInternal.h"
    4747#import "WKWebProcessPlugInFrameInternal.h"
     
    102102
    103103    case Type::Context:
    104         wrapper = [WKProcessGroup alloc];
     104        wrapper = [WKProcessClass alloc];
    105105        break;
    106106
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.h

    r162259 r162562  
    4040WK_API_CLASS
    4141@interface WKBrowsingContextController : NSObject
    42 
    43 @property (readonly) WKProcessGroup *processGroup;
    44 @property (readonly) WKBrowsingContextGroup *browsingContextGroup;
    4542
    4643#pragma mark Delegates
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm

    r162259 r162562  
    4848#import "WKNSURLExtras.h"
    4949#import "WKNSURLProtectionSpace.h"
    50 #import "WKProcessGroupInternal.h"
     50#import "WKProcessGroupPrivate.h"
    5151#import "WKRemoteObjectRegistryInternal.h"
    5252#import "WKRenderingProgressEventsInternal.h"
     
    163163    _pageLoadStateObserver = std::make_unique<PageLoadStateObserver>(self);
    164164    _page->pageLoadState().addObserver(*_pageLoadStateObserver);
    165 }
    166 
    167 - (WKProcessGroup *)processGroup
    168 {
    169     return wrapper(_page->process().context());
    170 }
    171 
    172 - (WKBrowsingContextGroup *)browsingContextGroup
    173 {
    174     return wrapper(_page->pageGroup());
    175165}
    176166
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClass.mm

    r162541 r162562  
    2525
    2626#import "config.h"
    27 #import "WKProcessClass.h"
     27#import "WKProcessClassInternal.h"
    2828
    2929#if WK_API_ENABLED
    3030
     31#import "WKObject.h"
     32#import "WKProcessClassConfigurationPrivate.h"
     33#import "WebContext.h"
    3134#import <wtf/RetainPtr.h>
     35
     36#if PLATFORM(IOS)
     37#import <WebCore/WebCoreThreadSystemInterface.h>
     38#endif
    3239
    3340@implementation WKProcessClass {
    3441    RetainPtr<WKProcessClassConfiguration> _configuration;
     42
     43    API::ObjectStorage<WebKit::WebContext> _context;
    3544}
    3645
     
    4251    _configuration = adoptNS([configuration copy]);
    4352
    44     // FIXME: Create a WebContext.
     53#if PLATFORM(IOS)
     54    // FIXME: Remove once <rdar://problem/15256572> is fixed.
     55    InitWebCoreThreadSystemInterface();
     56#endif
     57
     58    String bundlePath;
     59    if (NSURL *bundleURL = [_configuration _injectedBundleURL]) {
     60        if (!bundleURL.isFileURL)
     61            [NSException raise:NSInvalidArgumentException format:@"Injected Bundle URL must be a file URL"];
     62
     63        bundlePath = bundleURL.path;
     64    }
     65
     66    API::Object::constructInWrapper<WebKit::WebContext>(self, bundlePath);
    4567
    4668    return self;
     69}
     70
     71- (void)dealloc
     72{
     73    _context->~WebContext();
     74
     75    [super dealloc];
    4776}
    4877
     
    5281}
    5382
     83- (API::Object&)_apiObject
     84{
     85    return *_context;
     86}
     87
    5488@end
    5589
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassInternal.h

    r162561 r162562  
    11/*
    2  * Copyright (C) 2013 Apple Inc. All rights reserved.
     2 * Copyright (C) 2014 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #import "WKProcessGroupPrivate.h"
     26#import "WKProcessClass.h"
    2727
    2828#if WK_API_ENABLED
     
    3333namespace WebKit {
    3434
    35 inline WKProcessGroup *wrapper(WebContext& context)
     35inline WKProcessClass *wrapper(WebContext& context)
    3636{
    37     ASSERT([context.wrapper() isKindOfClass:[WKProcessGroup class]]);
    38     return (WKProcessGroup *)context.wrapper();
     37    ASSERT([context.wrapper() isKindOfClass:[WKProcessClass class]]);
     38    return (WKProcessClass *)context.wrapper();
    3939}
    4040
    4141}
    4242
    43 @interface WKProcessGroup () <WKObject>
     43@interface WKProcessClass () <WKObject>
    4444@end
    4545
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm

    r160882 r162562  
    2525
    2626#import "config.h"
    27 #import "WKProcessGroupInternal.h"
     27#import "WKProcessGroupPrivate.h"
    2828
    2929#if WK_API_ENABLED
     
    3535#import "WKBrowsingContextHistoryDelegate.h"
    3636#import "WKConnectionInternal.h"
    37 #import "WKContext.h"
    3837#import "WKNSString.h"
    3938#import "WKNSURL.h"
     
    4342#import "WeakObjCPtr.h"
    4443#import "WebCertificateInfo.h"
     44#import "WebContext.h"
    4545#import "WebFrameProxy.h"
    4646#import <wtf/RetainPtr.h>
     
    5555
    5656@implementation WKProcessGroup {
    57     API::ObjectStorage<WebContext> _context;
     57    RefPtr<WebContext> _context;
    5858
    5959    WeakObjCPtr<id <WKProcessGroupDelegate>> _delegate;
     
    6262    RetainPtr<WKGeolocationProviderIOS> _geolocationProvider;
    6363#endif // PLATFORM(IOS)
    64 }
    65 
    66 - (void)dealloc
    67 {
    68     _context->~WebContext();
    69 
    70     [super dealloc];
    7164}
    7265
     
    197190#endif
    198191
    199     API::Object::constructInWrapper<WebContext>(self, bundleURL ? String([bundleURL path]) : String());
     192    _context = WebContext::create(bundleURL ? String([bundleURL path]) : String());
    200193
    201194    setUpConnectionClient(self, toAPI(_context.get()));
     
    220213}
    221214
    222 #pragma mark WKObject protocol implementation
    223 
    224 - (API::Object&)_apiObject
    225 {
    226     return *_context;
    227 }
    228 
    229215@end
    230216
  • trunk/Source/WebKit2/UIProcess/API/ios/WKContentView.mm

    r162556 r162562  
    3535#import "WKGeolocationProviderIOS.h"
    3636#import "WKInteractionView.h"
    37 #import "WKProcessGroupInternal.h"
     37#import "WKProcessGroupPrivate.h"
    3838#import "WebContext.h"
    3939#import "WebFrameProxy.h"
     
    300300- (void)_decidePolicyForGeolocationRequestFromOrigin:(WebSecurityOrigin&)origin frame:(WebFrameProxy&)frame request:(GeolocationPermissionRequestProxy&)permissionRequest
    301301{
    302     [[wrapper(_page->process().context()) _geolocationProvider] decidePolicyForGeolocationRequestFromOrigin:toAPI(&origin) frame:toAPI(&frame) request:toAPI(&permissionRequest) window:[self window]];
     302    // FIXME: The line below is commented out since wrapper(WebContext&) now returns a WKProcessClass.
     303    // As part of the new API we should figure out where geolocation fits in, see <rdar://problem/15885544>.
     304    // [[wrapper(_page->process().context()) _geolocationProvider] decidePolicyForGeolocationRequestFromOrigin:toAPI(&origin) frame:toAPI(&frame) request:toAPI(&permissionRequest) window:[self window]];
    303305}
    304306
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r162554 r162562  
    145145                1A3CC16618906ACF001E6ED8 /* WKWebView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A3CC16418906ACF001E6ED8 /* WKWebView.mm */; };
    146146                1A3CC16718906ACF001E6ED8 /* WKWebView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3CC16518906ACF001E6ED8 /* WKWebView.h */; };
     147                1A3CC16918907EB0001E6ED8 /* WKProcessClassInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3CC16818907EB0001E6ED8 /* WKProcessClassInternal.h */; };
    147148                1A3D610113A7CC2A00F95D4E /* PluginModuleInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A3D60FF13A7CC2A00F95D4E /* PluginModuleInfo.cpp */; };
    148149                1A3D610213A7CC2A00F95D4E /* PluginModuleInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3D610013A7CC2A00F95D4E /* PluginModuleInfo.h */; };
     
    822823                7C135AA9173B0BCA00586AE2 /* WKPluginInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C135AA7173B0BCA00586AE2 /* WKPluginInformation.h */; settings = {ATTRIBUTES = (Private, ); }; };
    823824                7C135AAC173B0CFF00586AE2 /* PluginInformationMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C135AAA173B0CFF00586AE2 /* PluginInformationMac.mm */; };
    824                 7C1FB3C01846AEFC001A03D8 /* WKProcessGroupInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C1FB3BF1846AEFC001A03D8 /* WKProcessGroupInternal.h */; };
    825825                7C387434172F5615001BD88A /* PageBanner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C387433172F5615001BD88A /* PageBanner.cpp */; };
    826826                7C3F8C90173AF52D007B7F39 /* PluginInformation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C3F8C8E173AF52D007B7F39 /* PluginInformation.cpp */; };
     
    17641764                1A3CC16418906ACF001E6ED8 /* WKWebView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebView.mm; sourceTree = "<group>"; };
    17651765                1A3CC16518906ACF001E6ED8 /* WKWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebView.h; sourceTree = "<group>"; };
     1766                1A3CC16818907EB0001E6ED8 /* WKProcessClassInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKProcessClassInternal.h; sourceTree = "<group>"; };
    17661767                1A3D60FF13A7CC2A00F95D4E /* PluginModuleInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginModuleInfo.cpp; sourceTree = "<group>"; };
    17671768                1A3D610013A7CC2A00F95D4E /* PluginModuleInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginModuleInfo.h; sourceTree = "<group>"; };
     
    25182519                7C135AA7173B0BCA00586AE2 /* WKPluginInformation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPluginInformation.h; sourceTree = "<group>"; };
    25192520                7C135AAA173B0CFF00586AE2 /* PluginInformationMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginInformationMac.mm; sourceTree = "<group>"; };
    2520                 7C1FB3BF1846AEFC001A03D8 /* WKProcessGroupInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKProcessGroupInternal.h; sourceTree = "<group>"; };
    25212521                7C387433172F5615001BD88A /* PageBanner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageBanner.cpp; sourceTree = "<group>"; };
    25222522                7C3F8C8E173AF52D007B7F39 /* PluginInformation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginInformation.cpp; sourceTree = "<group>"; };
     
    35053505                                BCBAACE5145225C90053F82F /* WKProcessGroup.h */,
    35063506                                BCBAACE6145225CA0053F82F /* WKProcessGroup.mm */,
    3507                                 7C1FB3BF1846AEFC001A03D8 /* WKProcessGroupInternal.h */,
    35083507                                BCBAACE7145225CB0053F82F /* WKProcessGroupPrivate.h */,
    35093508                                75A8D2C4187CCF9F00C39C9E /* WKSession.h */,
     
    42254224                                1A43E827188F3CDC009E4D30 /* WKProcessClassConfiguration.mm */,
    42264225                                1A43E82B188F3CF5009E4D30 /* WKProcessClassConfigurationPrivate.h */,
     4226                                1A3CC16818907EB0001E6ED8 /* WKProcessClassInternal.h */,
    42274227                                1A3CC16518906ACF001E6ED8 /* WKWebView.h */,
    42284228                                1A3CC16418906ACF001E6ED8 /* WKWebView.mm */,
     
    62046204                                1A232903162C867300D82F7A /* MessageDecoder.h in Headers */,
    62056205                                51FCB18617BBFE0300394CD8 /* AsynchronousNetworkLoaderClient.h in Headers */,
     6206                                1A3CC16918907EB0001E6ED8 /* WKProcessClassInternal.h in Headers */,
    62066207                                2D1B5D5E185869C8006C6596 /* ViewGestureControllerMessages.h in Headers */,
    62076208                                1A2328FF162C866A00D82F7A /* MessageEncoder.h in Headers */,
     
    66746675                                51D0D437183B353D0097041D /* DatabaseProcessIDBConnectionMessages.h in Headers */,
    66756676                                E134F01712EA5D33004EC58D /* WKPrintingView.h in Headers */,
    6676                                 7C1FB3C01846AEFC001A03D8 /* WKProcessGroupInternal.h in Headers */,
    66776677                                BCBAACED145225E30053F82F /* WKProcessGroupPrivate.h in Headers */,
    66786678                                512F58FC12A88A5400629530 /* WKProtectionSpace.h in Headers */,
Note: See TracChangeset for help on using the changeset viewer.