Changeset 242383 in webkit
- Timestamp:
- Mar 4, 2019, 1:26:52 PM (7 years ago)
- Location:
- branches/safari-607.1.40.0-branch
- Files:
-
- 10 edited
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h (modified) (1 diff)
-
Source/WebKit/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm (modified) (1 diff)
-
Source/WebKit/UIProcess/WebProcessPool.cpp (modified) (1 diff)
-
Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (modified) (3 diffs)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (modified) (2 diffs)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-607.1.40.0-branch/Source/WebKit/ChangeLog
r242362 r242383 1 2019-03-04 Null <null@apple.com> 2 3 Cherry-pick r242302. rdar://problem/48520362 4 5 Add setters on WKWebsiteDataStore for sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier 6 https://bugs.webkit.org/show_bug.cgi?id=195229 7 <rdar://problem/48520362> 8 9 Reviewed by Chris Dumez. 10 11 Source/WebKit: 12 13 Just like _setBoundInterfaceIdentifier, we need a way to set these properties after instantiation of a WKWebsiteDataStore, 14 but we need to make sure we don't set it after the parameters have been copied to the NetworkProcess. 15 16 Functionality verified by manual testing. See radar. 17 Added an API test that verifies the setter restrictions work as expected. 18 19 * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: 20 (-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]): 21 (-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]): 22 (-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]): 23 (-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]): 24 * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: 25 * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: 26 (WebKit::toPKPaymentRequest): 27 * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: 28 (WebKit::WebsiteDataStore::parameters): 29 * UIProcess/WebsiteData/WebsiteDataStore.cpp: 30 (WebKit::WebsiteDataStore::WebsiteDataStore): 31 (WebKit::WebsiteDataStore::setSourceApplicationSecondaryIdentifier): 32 (WebKit::WebsiteDataStore::setSourceApplicationBundleIdentifier): 33 * UIProcess/WebsiteData/WebsiteDataStore.h: 34 (WebKit::WebsiteDataStore::sourceApplicationBundleIdentifier): 35 (WebKit::WebsiteDataStore::sourceApplicationSecondaryIdentifier): 36 37 Tools: 38 39 * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm: 40 (TEST): 41 42 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242302 268f45cc-cd09-0410-ab3c-d52691b4dbfc 43 44 2019-03-01 Alex Christensen <achristensen@webkit.org> 45 46 Add setters on WKWebsiteDataStore for sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier 47 https://bugs.webkit.org/show_bug.cgi?id=195229 48 <rdar://problem/48520362> 49 50 Reviewed by Chris Dumez. 51 52 Just like _setBoundInterfaceIdentifier, we need a way to set these properties after instantiation of a WKWebsiteDataStore, 53 but we need to make sure we don't set it after the parameters have been copied to the NetworkProcess. 54 55 Functionality verified by manual testing. See radar. 56 Added an API test that verifies the setter restrictions work as expected. 57 58 * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: 59 (-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]): 60 (-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]): 61 (-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]): 62 (-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]): 63 * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: 64 * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: 65 (WebKit::toPKPaymentRequest): 66 * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: 67 (WebKit::WebsiteDataStore::parameters): 68 * UIProcess/WebsiteData/WebsiteDataStore.cpp: 69 (WebKit::WebsiteDataStore::WebsiteDataStore): 70 (WebKit::WebsiteDataStore::setSourceApplicationSecondaryIdentifier): 71 (WebKit::WebsiteDataStore::setSourceApplicationBundleIdentifier): 72 * UIProcess/WebsiteData/WebsiteDataStore.h: 73 (WebKit::WebsiteDataStore::sourceApplicationBundleIdentifier): 74 (WebKit::WebsiteDataStore::sourceApplicationSecondaryIdentifier): 75 1 76 2019-03-04 Babak Shafiei <bshafiei@apple.com> 2 77 -
branches/safari-607.1.40.0-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
r239322 r242383 319 319 } 320 320 321 - (NSString *)_sourceApplicationBundleIdentifier 322 { 323 return _websiteDataStore->websiteDataStore().sourceApplicationBundleIdentifier(); 324 } 325 326 - (void)_setSourceApplicationBundleIdentifier:(NSString *)identifier 327 { 328 if (!_websiteDataStore->websiteDataStore().setSourceApplicationBundleIdentifier(identifier)) 329 [NSException raise:NSGenericException format:@"_setSourceApplicationBundleIdentifier cannot be called after networking has begun"]; 330 } 331 332 - (NSString *)_sourceApplicationSecondaryIdentifier 333 { 334 return _websiteDataStore->websiteDataStore().sourceApplicationSecondaryIdentifier(); 335 } 336 337 - (void)_setSourceApplicationSecondaryIdentifier:(NSString *)identifier 338 { 339 if (!_websiteDataStore->websiteDataStore().setSourceApplicationSecondaryIdentifier(identifier)) 340 [NSException raise:NSGenericException format:@"_setSourceApplicationSecondaryIdentifier cannot be called after networking has begun"]; 341 } 342 321 343 - (NSDictionary *)_proxyConfiguration 322 344 { -
branches/safari-607.1.40.0-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
r237060 r242383 56 56 @property (nonatomic, setter=_setAllowsCellularAccess:) BOOL _allowsCellularAccess WK_API_AVAILABLE(macosx(10.13.4), ios(11.3)); 57 57 @property (nonatomic, setter=_setProxyConfiguration:) NSDictionary *_proxyConfiguration WK_API_AVAILABLE(macosx(10.14), ios(12.0)); 58 @property (nonatomic, copy, setter=_setSourceApplicationBundleIdentifier:) NSString *_sourceApplicationBundleIdentifier WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)); 59 @property (nonatomic, copy, setter=_setSourceApplicationSecondaryIdentifier:) NSString *_sourceApplicationSecondaryIdentifier WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)); 58 60 59 61 - (void)_resourceLoadStatisticsSetShouldSubmitTelemetry:(BOOL)value WK_API_AVAILABLE(macosx(10.13), ios(11.0)); -
branches/safari-607.1.40.0-branch/Source/WebKit/UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm
r239427 r242383 507 507 508 508 // FIXME: Instead of using respondsToSelector, this should use a proper #if version check. 509 auto& configuration = webPageProxy.websiteDataStore().configuration();510 511 if (! configuration.sourceApplicationBundleIdentifier().isEmpty() && [result respondsToSelector:@selector(setSourceApplicationBundleIdentifier:)])512 [result setSourceApplicationBundleIdentifier: configuration.sourceApplicationBundleIdentifier()];513 514 if (! configuration.sourceApplicationSecondaryIdentifier().isEmpty() && [result respondsToSelector:@selector(setSourceApplicationSecondaryIdentifier:)])515 [result setSourceApplicationSecondaryIdentifier: configuration.sourceApplicationSecondaryIdentifier()];509 auto& websiteDataStore = webPageProxy.websiteDataStore(); 510 511 if (!websiteDataStore.sourceApplicationBundleIdentifier().isEmpty() && [result respondsToSelector:@selector(setSourceApplicationBundleIdentifier:)]) 512 [result setSourceApplicationBundleIdentifier:websiteDataStore.sourceApplicationBundleIdentifier()]; 513 514 if (!websiteDataStore.sourceApplicationSecondaryIdentifier().isEmpty() && [result respondsToSelector:@selector(setSourceApplicationSecondaryIdentifier:)]) 515 [result setSourceApplicationSecondaryIdentifier:websiteDataStore.sourceApplicationSecondaryIdentifier()]; 516 516 517 517 #if PLATFORM(IOS_FAMILY) -
branches/safari-607.1.40.0-branch/Source/WebKit/UIProcess/WebProcessPool.cpp
r242025 r242383 493 493 parameters.defaultDataStoreParameters.pendingCookies = copyToVector(m_websiteDataStore->websiteDataStore().pendingCookies()); 494 494 m_websiteDataStore->websiteDataStore().clearPendingCookies(); 495 parameters.defaultDataStoreParameters.networkSessionParameters.sourceApplicationBundleIdentifier = m_websiteDataStore->websiteDataStore().sourceApplicationBundleIdentifier(); 496 parameters.defaultDataStoreParameters.networkSessionParameters.sourceApplicationSecondaryIdentifier = m_websiteDataStore->websiteDataStore().sourceApplicationSecondaryIdentifier(); 497 m_websiteDataStore->websiteDataStore().finalizeApplicationIdentifiers(); 495 498 } 496 499 -
branches/safari-607.1.40.0-branch/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
r239322 r242383 90 90 m_allowsCellularAccess, 91 91 m_proxyConfiguration, 92 m_ configuration->sourceApplicationBundleIdentifier(),93 m_ configuration->sourceApplicationSecondaryIdentifier(),92 m_sourceApplicationBundleIdentifier, 93 m_sourceApplicationSecondaryIdentifier, 94 94 shouldLogCookieInformation, 95 95 Seconds { [defaults integerForKey:WebKitNetworkLoadThrottleLatencyMillisecondsDefaultsKey] / 1000. }, … … 97 97 WTFMove(httpsProxy), 98 98 }; 99 finalizeApplicationIdentifiers(); 99 100 100 101 auto cookieFile = resolvedCookieStorageFile(); … … 108 109 109 110 parameters.uiProcessCookieStorageIdentifier = m_uiProcessCookieStorageIdentifier; 110 parameters.networkSessionParameters.sourceApplicationBundleIdentifier = m_ configuration->sourceApplicationBundleIdentifier();111 parameters.networkSessionParameters.sourceApplicationSecondaryIdentifier = m_ configuration->sourceApplicationSecondaryIdentifier();111 parameters.networkSessionParameters.sourceApplicationBundleIdentifier = m_sourceApplicationBundleIdentifier; 112 parameters.networkSessionParameters.sourceApplicationSecondaryIdentifier = m_sourceApplicationSecondaryIdentifier; 112 113 113 114 parameters.pendingCookies = copyToVector(m_pendingCookies); -
branches/safari-607.1.40.0-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
r242143 r242383 96 96 , m_deviceIdHashSaltStorage(DeviceIdHashSaltStorage::create(isPersistent() ? m_configuration->deviceIdHashSaltsStorageDirectory() : String())) 97 97 , m_queue(WorkQueue::create("com.apple.WebKit.WebsiteDataStore")) 98 , m_sourceApplicationBundleIdentifier(m_configuration->sourceApplicationBundleIdentifier()) 99 , m_sourceApplicationSecondaryIdentifier(m_configuration->sourceApplicationSecondaryIdentifier()) 98 100 #if ENABLE(WEB_AUTHN) 99 101 , m_authenticatorManager(makeUniqueRef<AuthenticatorManager>()) … … 1712 1714 } 1713 1715 1714 } 1716 bool WebsiteDataStore::setSourceApplicationSecondaryIdentifier(String&& identifier) 1717 { 1718 if (!m_allowedToSetApplicationIdentifiers) 1719 return false; 1720 m_sourceApplicationSecondaryIdentifier = WTFMove(identifier); 1721 return true; 1722 } 1723 1724 bool WebsiteDataStore::setSourceApplicationBundleIdentifier(String&& identifier) 1725 { 1726 if (!m_allowedToSetApplicationIdentifiers) 1727 return false; 1728 m_sourceApplicationBundleIdentifier = WTFMove(identifier); 1729 return true; 1730 } 1731 1732 } -
branches/safari-607.1.40.0-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
r240064 r242383 159 159 void setBoundInterfaceIdentifier(String&& identifier) { m_boundInterfaceIdentifier = WTFMove(identifier); } 160 160 const String& boundInterfaceIdentifier() { return m_boundInterfaceIdentifier; } 161 162 const String& sourceApplicationBundleIdentifier() const { return m_sourceApplicationBundleIdentifier; } 163 bool setSourceApplicationBundleIdentifier(String&&); 164 165 const String& sourceApplicationSecondaryIdentifier() const { return m_sourceApplicationSecondaryIdentifier; } 166 bool setSourceApplicationSecondaryIdentifier(String&&); 167 168 void finalizeApplicationIdentifiers() { m_allowedToSetApplicationIdentifiers = false; } 161 169 162 170 void setAllowsCellularAccess(AllowsCellularAccess allows) { m_allowsCellularAccess = allows; } … … 249 257 String m_boundInterfaceIdentifier; 250 258 AllowsCellularAccess m_allowsCellularAccess { AllowsCellularAccess::Yes }; 259 String m_sourceApplicationBundleIdentifier; 260 String m_sourceApplicationSecondaryIdentifier; 261 bool m_allowedToSetApplicationIdentifiers { true }; 251 262 252 263 #if HAVE(SEC_KEY_PROXY) -
branches/safari-607.1.40.0-branch/Tools/ChangeLog
r242143 r242383 1 2019-03-04 Null <null@apple.com> 2 3 Cherry-pick r242302. rdar://problem/48520362 4 5 Add setters on WKWebsiteDataStore for sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier 6 https://bugs.webkit.org/show_bug.cgi?id=195229 7 <rdar://problem/48520362> 8 9 Reviewed by Chris Dumez. 10 11 Source/WebKit: 12 13 Just like _setBoundInterfaceIdentifier, we need a way to set these properties after instantiation of a WKWebsiteDataStore, 14 but we need to make sure we don't set it after the parameters have been copied to the NetworkProcess. 15 16 Functionality verified by manual testing. See radar. 17 Added an API test that verifies the setter restrictions work as expected. 18 19 * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: 20 (-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]): 21 (-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]): 22 (-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]): 23 (-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]): 24 * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: 25 * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: 26 (WebKit::toPKPaymentRequest): 27 * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: 28 (WebKit::WebsiteDataStore::parameters): 29 * UIProcess/WebsiteData/WebsiteDataStore.cpp: 30 (WebKit::WebsiteDataStore::WebsiteDataStore): 31 (WebKit::WebsiteDataStore::setSourceApplicationSecondaryIdentifier): 32 (WebKit::WebsiteDataStore::setSourceApplicationBundleIdentifier): 33 * UIProcess/WebsiteData/WebsiteDataStore.h: 34 (WebKit::WebsiteDataStore::sourceApplicationBundleIdentifier): 35 (WebKit::WebsiteDataStore::sourceApplicationSecondaryIdentifier): 36 37 Tools: 38 39 * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm: 40 (TEST): 41 42 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242302 268f45cc-cd09-0410-ab3c-d52691b4dbfc 43 44 2019-03-01 Alex Christensen <achristensen@webkit.org> 45 46 Add setters on WKWebsiteDataStore for sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier 47 https://bugs.webkit.org/show_bug.cgi?id=195229 48 <rdar://problem/48520362> 49 50 Reviewed by Chris Dumez. 51 52 * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm: 53 (TEST): 54 1 55 2019-02-27 Babak Shafiei <bshafiei@apple.com> 2 56 -
branches/safari-607.1.40.0-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm
r239795 r242383 29 29 #import "Test.h" 30 30 #import "TestNavigationDelegate.h" 31 #import "TestWKWebView.h" 32 #import <WebKit/WKPreferencesRef.h> 31 33 #import <WebKit/WKProcessPoolPrivate.h> 32 34 #import <WebKit/WKUserContentControllerPrivate.h> … … 449 451 } 450 452 453 TEST(WebKit, ApplicationIdentifiers) 454 { 455 auto websiteDataStoreConfiguration = adoptNS([[_WKWebsiteDataStoreConfiguration alloc] init]); 456 [websiteDataStoreConfiguration setSourceApplicationBundleIdentifier:@"testidentifier"]; 457 458 auto webViewConfiguration = adoptNS([[WKWebViewConfiguration alloc] init]); 459 auto websiteDataStore = [[[WKWebsiteDataStore alloc] _initWithConfiguration:websiteDataStoreConfiguration.get()] autorelease]; 460 EXPECT_TRUE([websiteDataStore._sourceApplicationBundleIdentifier isEqualToString:@"testidentifier"]); 461 [websiteDataStore _setSourceApplicationBundleIdentifier:@"otheridentifier"]; 462 463 [webViewConfiguration setWebsiteDataStore:websiteDataStore]; 464 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:webViewConfiguration.get()]); 465 [webView synchronouslyLoadTestPageNamed:@"simple"]; 466 467 RetainPtr<NSException> exception; 468 @try { 469 [websiteDataStore _setSourceApplicationBundleIdentifier:@"settingShouldFailNow"]; 470 } @catch(NSException *caught) { 471 exception = caught; 472 } 473 EXPECT_TRUE([[exception reason] isEqualToString:@"_setSourceApplicationBundleIdentifier cannot be called after networking has begun"]); 474 EXPECT_TRUE([websiteDataStore._sourceApplicationBundleIdentifier isEqualToString:@"otheridentifier"]); 475 EXPECT_TRUE([[websiteDataStoreConfiguration sourceApplicationBundleIdentifier] isEqualToString:@"testidentifier"]); 476 } 477 451 478 #endif
Note:
See TracChangeset
for help on using the changeset viewer.