Changeset 164004 in webkit


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

Add relatedWebView property to WKWebViewConfiguration
https://bugs.webkit.org/show_bug.cgi?id=128707

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration relatedWebView]):
(-[WKWebViewConfiguration setRelatedWebView:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm.
  • WebKit2.xcodeproj/project.pbxproj:
Location:
trunk/Source/WebKit2
Files:
4 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r163999 r164004  
     12014-02-12  Anders Carlsson  <andersca@apple.com>
     2
     3        Add relatedWebView property to WKWebViewConfiguration
     4        https://bugs.webkit.org/show_bug.cgi?id=128707
     5
     6        Reviewed by Dan Bernstein.
     7
     8        * UIProcess/API/Cocoa/WKWebView.mm:
     9        (-[WKWebView initWithFrame:configuration:]):
     10        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
     11        (-[WKWebViewConfiguration copyWithZone:]):
     12        (-[WKWebViewConfiguration relatedWebView]):
     13        (-[WKWebViewConfiguration setRelatedWebView:]):
     14        * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm.
     15        * WebKit2.xcodeproj/project.pbxproj:
     16
    1172014-02-12  Alexey Proskuryakov  <ap@apple.com>
    218
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm

    r163814 r164004  
    3838#import "WKProcessClassInternal.h"
    3939#import "WKRemoteObjectRegistryInternal.h"
    40 #import "WKWebViewConfiguration.h"
     40#import "WKWebViewConfigurationPrivate.h"
    4141#import "WebContext.h"
    4242#import "WebBackForwardList.h"
     
    8888    _configuration = adoptNS([configuration copy]);
    8989
     90    if (WKWebView *relatedWebView = [_configuration _relatedWebView]) {
     91        WKProcessClass *processClass = [_configuration processClass];
     92        WKProcessClass *relatedWebViewProcessClass = [relatedWebView->_configuration processClass];
     93        if (processClass && processClass != relatedWebViewProcessClass)
     94            [NSException raise:NSInvalidArgumentException format:@"Related web view %@ has process class %@ but configuration specifies a different process class %@", relatedWebView, relatedWebViewProcessClass, configuration.processClass];
     95
     96        [_configuration setProcessClass:relatedWebViewProcessClass];
     97    }
     98
    9099    if (![_configuration processClass])
    91100        [_configuration setProcessClass:adoptNS([[WKProcessClass alloc] init]).get()];
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm

    r163567 r164004  
    2525
    2626#import "config.h"
    27 #import "WKWebViewConfiguration.h"
     27#import "WKWebViewConfigurationPrivate.h"
    2828
    2929#if WK_API_ENABLED
    3030
     31#import "WeakObjCPtr.h"
    3132#import <wtf/RetainPtr.h>
    3233
     
    3435    RetainPtr<WKProcessClass> _processClass;
    3536    RetainPtr<WKPreferences> _preferences;
     37    WebKit::WeakObjCPtr<WKWebView> _relatedWebView;
    3638}
    3739
     
    4244    configuration.processClass = _processClass.get();
    4345    configuration.preferences = _preferences.get();
     46    configuration._relatedWebView = _relatedWebView.get().get();
    4447
    4548    return configuration;
     
    6669}
    6770
     71- (WKWebView *)_relatedWebView
     72{
     73    return _relatedWebView.getAutoreleased();
     74}
     75
     76- (void)_setRelatedWebView:(WKWebView *)relatedWebView
     77{
     78    _relatedWebView = relatedWebView;
     79}
     80
    6881@end
    6982
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h

    r164001 r164004  
    2424 */
    2525
    26 #import "config.h"
    27 #import "WKWebViewConfiguration.h"
     26#import <WebKit2/WKWebViewConfiguration.h>
    2827
    2928#if WK_API_ENABLED
    3029
    31 #import <wtf/RetainPtr.h>
     30@class WKWebView;
    3231
    33 @implementation WKWebViewConfiguration {
    34     RetainPtr<WKProcessClass> _processClass;
    35     RetainPtr<WKPreferences> _preferences;
    36 }
     32@interface WKWebViewConfiguration (WKPrivate)
    3733
    38 - (id)copyWithZone:(NSZone *)zone
    39 {
    40     WKWebViewConfiguration *configuration = [[[self class] allocWithZone:zone] init];
    41 
    42     configuration.processClass = _processClass.get();
    43     configuration.preferences = _preferences.get();
    44 
    45     return configuration;
    46 }
    47 
    48 - (WKProcessClass *)processClass
    49 {
    50     return _processClass.get();
    51 }
    52 
    53 - (void)setProcessClass:(WKProcessClass *)processClass
    54 {
    55     _processClass = processClass;
    56 }
    57 
    58 - (WKPreferences *)preferences
    59 {
    60     return _preferences.get();
    61 }
    62 
    63 - (void)setPreferences:(WKPreferences *)preferences
    64 {
    65     _preferences = preferences;
    66 }
     34@property (nonatomic, weak, setter=_setRelatedWebView:) WKWebView *_relatedWebView;
    6735
    6836@end
    6937
    70 #endif // WK_API_ENABLED
     38#endif
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r163992 r164004  
    316316                1AC1338518590C4600F3EC05 /* RemoteObjectRegistryMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AC1338318590C4600F3EC05 /* RemoteObjectRegistryMessageReceiver.cpp */; };
    317317                1AC1338618590C4600F3EC05 /* RemoteObjectRegistryMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AC1338418590C4600F3EC05 /* RemoteObjectRegistryMessages.h */; };
     318                1AC1415118AC47EE006C602C /* WKWebViewConfigurationPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AC1415018AC47EE006C602C /* WKWebViewConfigurationPrivate.h */; };
    318319                1AC25FC212A48F6000BD2671 /* PluginProcessShim.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AC25F8A12A48E0300BD2671 /* PluginProcessShim.mm */; };
    319320                1AC4C82916B876A90069DCCD /* MessageFlags.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AC4C82816B876A90069DCCD /* MessageFlags.h */; };
     
    19981999                1AC1338318590C4600F3EC05 /* RemoteObjectRegistryMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteObjectRegistryMessageReceiver.cpp; sourceTree = "<group>"; };
    19992000                1AC1338418590C4600F3EC05 /* RemoteObjectRegistryMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteObjectRegistryMessages.h; sourceTree = "<group>"; };
     2001                1AC1415018AC47EE006C602C /* WKWebViewConfigurationPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebViewConfigurationPrivate.h; sourceTree = "<group>"; };
    20002002                1AC25F8912A48E0300BD2671 /* PluginProcessShim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginProcessShim.h; sourceTree = "<group>"; };
    20012003                1AC25F8A12A48E0300BD2671 /* PluginProcessShim.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginProcessShim.mm; sourceTree = "<group>"; };
     
    43894391                                1ADF59191890528E0043C145 /* WKWebViewConfiguration.h */,
    43904392                                1ADF59181890528E0043C145 /* WKWebViewConfiguration.mm */,
     4393                                1AC1415018AC47EE006C602C /* WKWebViewConfigurationPrivate.h */,
    43914394                                1A66BF8E18A052ED002071B4 /* WKWebViewInternal.h */,
    43924395                                26F9A83A18A3463F00AEB88A /* WKWebViewPrivate.h */,
     
    62996302                                BC032DAB10F437D10058C15A /* Connection.h in Headers */,
    63006303                                5136183E163126DA00A99DDE /* ConnectionStack.h in Headers */,
     6304                                1AC1415118AC47EE006C602C /* WKWebViewConfigurationPrivate.h in Headers */,
    63016305                                CDC3830C17212282008A2FC3 /* CookieStorageShimLibrary.h in Headers */,
    63026306                                515E7730184015800007203F /* UniqueIDBDatabase.h in Headers */,
Note: See TracChangeset for help on using the changeset viewer.