Changeset 224071 in webkit


Ignore:
Timestamp:
Oct 26, 2017 4:59:59 PM (6 years ago)
Author:
achristensen@apple.com
Message:

Move WKWebViewConfiguration validation to WKWebView construction
https://bugs.webkit.org/show_bug.cgi?id=178840

Reviewed by Tim Horton.
Source/WebKit:


I'm trying to remove WKWebViewConfigurationInternal methods so I can make WKWebViewConfiguration
a wrapper around an APIObject like all the other API objects. A small step towards making this easier
is to remove the unnecessary method _validate and move its logic to its one callsite. I added an API test
that ensures no change in behavior.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _validate]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: Added.

(TEST):

Location:
trunk
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r224068 r224071  
     12017-10-26  Alex Christensen  <achristensen@webkit.org>
     2
     3        Move WKWebViewConfiguration validation to WKWebView construction
     4        https://bugs.webkit.org/show_bug.cgi?id=178840
     5
     6        Reviewed by Tim Horton.
     7       
     8        I'm trying to remove WKWebViewConfigurationInternal methods so I can make WKWebViewConfiguration
     9        a wrapper around an APIObject like all the other API objects.  A small step towards making this easier
     10        is to remove the unnecessary method _validate and move its logic to its one callsite.  I added an API test
     11        that ensures no change in behavior.
     12
     13        * UIProcess/API/Cocoa/WKWebView.mm:
     14        (-[WKWebView _initializeWithConfiguration:]):
     15        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
     16        (-[WKWebViewConfiguration _validate]): Deleted.
     17        * UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h:
     18
    1192017-10-26  Megan Gardner  <megan_gardner@apple.com>
    220
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

    r224057 r224071  
    447447#endif
    448448
     449static void validate(WKWebViewConfiguration *configuration)
     450{
     451    if (!configuration.processPool)
     452        [NSException raise:NSInvalidArgumentException format:@"configuration.processPool is nil"];
     453   
     454    if (!configuration.preferences)
     455        [NSException raise:NSInvalidArgumentException format:@"configuration.preferences is nil"];
     456   
     457    if (!configuration.userContentController)
     458        [NSException raise:NSInvalidArgumentException format:@"configuration.userContentController is nil"];
     459   
     460    if (!configuration.websiteDataStore)
     461        [NSException raise:NSInvalidArgumentException format:@"configuration.websiteDataStore is nil"];
     462   
     463    if (!configuration._visitedLinkStore)
     464        [NSException raise:NSInvalidArgumentException format:@"configuration._visitedLinkStore is nil"];
     465   
     466#if PLATFORM(IOS)
     467    if (!configuration._contentProviderRegistry)
     468        [NSException raise:NSInvalidArgumentException format:@"configuration._contentProviderRegistry is nil"];
     469#endif
     470}
     471
    449472- (void)_initializeWithConfiguration:(WKWebViewConfiguration *)configuration
    450473{
     
    463486    }
    464487
    465     [_configuration _validate];
     488    validate(_configuration.get());
    466489
    467490    WebKit::WebProcessPool& processPool = *[_configuration processPool]->_processPool;
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm

    r222666 r224071  
    496496#endif
    497497
    498 - (void)_validate
    499 {
    500     if (!self.processPool)
    501         [NSException raise:NSInvalidArgumentException format:@"configuration.processPool is nil"];
    502 
    503     if (!self.preferences)
    504         [NSException raise:NSInvalidArgumentException format:@"configuration.preferences is nil"];
    505 
    506     if (!self.userContentController)
    507         [NSException raise:NSInvalidArgumentException format:@"configuration.userContentController is nil"];
    508 
    509     if (!self.websiteDataStore)
    510         [NSException raise:NSInvalidArgumentException format:@"configuration.websiteDataStore is nil"];
    511 
    512     if (!self._visitedLinkStore)
    513         [NSException raise:NSInvalidArgumentException format:@"configuration._visitedLinkStore is nil"];
    514 
    515 #if PLATFORM(IOS)
    516     if (!self._contentProviderRegistry)
    517         [NSException raise:NSInvalidArgumentException format:@"configuration._contentProviderRegistry is nil"];
    518 #endif
    519 }
    520 
    521498@end
    522499
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h

    r213686 r224071  
    3939#endif
    4040
    41 - (void)_validate;
    42 
    4341@end
    4442
  • trunk/Tools/ChangeLog

    r224065 r224071  
     12017-10-26  Alex Christensen  <achristensen@webkit.org>
     2
     3        Move WKWebViewConfiguration validation to WKWebView construction
     4        https://bugs.webkit.org/show_bug.cgi?id=178840
     5
     6        Reviewed by Tim Horton.
     7
     8        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     9        * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: Added.
     10        (TEST):
     11
    1122017-10-26  Myles C. Maxfield  <mmaxfield@apple.com>
    213
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r223988 r224071  
    245245                5CA1DED91F74A91A00E71BD3 /* ContentRuleListNotification.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CA1DED81F74A87100E71BD3 /* ContentRuleListNotification.mm */; };
    246246                5CB18BA81F5645E300EE23C4 /* ClickAutoFillButton.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CB18BA71F5645B200EE23C4 /* ClickAutoFillButton.mm */; };
     247                5CB3CE391FA1697F00C3A2D6 /* WKWebViewConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CB3CE381FA1691700C3A2D6 /* WKWebViewConfiguration.mm */; };
    247248                5CB40B4E1F4B98D3007DC7B9 /* UIDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CB40B4D1F4B98BE007DC7B9 /* UIDelegate.mm */; };
    248249                5CE354D91E70DA5C00BEFE3B /* WKContentExtensionStore.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CE354D81E70D9C300BEFE3B /* WKContentExtensionStore.mm */; };
     
    13751376                5CA1DED81F74A87100E71BD3 /* ContentRuleListNotification.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ContentRuleListNotification.mm; sourceTree = "<group>"; };
    13761377                5CB18BA71F5645B200EE23C4 /* ClickAutoFillButton.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ClickAutoFillButton.mm; sourceTree = "<group>"; };
     1378                5CB3CE381FA1691700C3A2D6 /* WKWebViewConfiguration.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebViewConfiguration.mm; sourceTree = "<group>"; };
    13771379                5CB40B4D1F4B98BE007DC7B9 /* UIDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = UIDelegate.mm; sourceTree = "<group>"; };
    13781380                5CE354D81E70D9C300BEFE3B /* WKContentExtensionStore.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKContentExtensionStore.mm; sourceTree = "<group>"; };
     
    20892091                                5182C22D1F2BCB410059BA7C /* WKURLSchemeHandler-leaks.mm */,
    20902092                                2EFF06D61D8AF34A0004BB30 /* WKWebViewCandidateTests.mm */,
     2093                                5CB3CE381FA1691700C3A2D6 /* WKWebViewConfiguration.mm */,
    20912094                                7C417F311D19E14800B8EF53 /* WKWebViewDefaultNavigationDelegate.mm */,
    20922095                                46E66A8F1F0D75590026D83C /* WKWebViewDiagnosticLogging.mm */,
     
    35493552                                514958BE1F7427AC00E87BAD /* WKWebViewAutofillTests.mm in Sources */,
    35503553                                2EFF06D71D8AF34A0004BB30 /* WKWebViewCandidateTests.mm in Sources */,
     3554                                5CB3CE391FA1697F00C3A2D6 /* WKWebViewConfiguration.mm in Sources */,
    35513555                                A14FC5851B89739100D107EB /* WKWebViewConfigurationExtras.mm in Sources */,
    35523556                                7C417F331D19E14800B8EF53 /* WKWebViewDefaultNavigationDelegate.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.