Changeset 262212 in webkit
- Timestamp:
- May 27, 2020 1:38:43 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r262207 r262212 1 2020-05-27 Kate Cheney <katherine_cheney@apple.com> 2 3 Make sure bundle identifier testing override is set in the network process 4 https://bugs.webkit.org/show_bug.cgi?id=212288 5 <rdar://problem/63539061> 6 7 Reviewed by Chris Dumez. 8 9 Set the bundle identifier in the network process if a layout test 10 updates it. This value usually only gets updated when a new network 11 process is initialized, which does not happen for every test. So it 12 should be set/cleared as needed. 13 14 No new tests, will fix http/tests/in-app-browser-privacy/ tests. 15 16 * NetworkProcess/NetworkProcess.cpp: 17 (WebKit::NetworkProcess::updateBundleIdentifierInNetworkProcess): 18 * NetworkProcess/NetworkProcess.h: 19 * NetworkProcess/NetworkProcess.messages.in: 20 * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: 21 (WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcess): 22 * UIProcess/API/C/WKWebsiteDataStoreRef.h: 23 * UIProcess/Network/NetworkProcessProxy.cpp: 24 (WebKit::NetworkProcessProxy::updateBundleIdentifierInNetworkProcess): 25 * UIProcess/Network/NetworkProcessProxy.h: 26 * UIProcess/WebsiteData/WebsiteDataStore.cpp: 27 (WebKit::WebsiteDataStore::updateBundleIdentifierInNetworkProcess): 28 * UIProcess/WebsiteData/WebsiteDataStore.h: 29 1 30 2020-05-27 Per Arne Vollan <pvollan@apple.com> 2 31 -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
r261963 r262212 2755 2755 } 2756 2756 2757 void NetworkProcess::updateBundleIdentifier(String&& bundleIdentifier, CompletionHandler<void()>&& completionHandler) 2758 { 2759 #if PLATFORM(COCOA) 2760 WebCore::clearApplicationBundleIdentifierTestingOverride(); 2761 WebCore::setApplicationBundleIdentifier(bundleIdentifier); 2762 #endif 2763 completionHandler(); 2764 } 2765 2766 void NetworkProcess::clearBundleIdentifier(CompletionHandler<void()>&& completionHandler) 2767 { 2768 #if PLATFORM(COCOA) 2769 WebCore::clearApplicationBundleIdentifierTestingOverride(); 2770 #endif 2771 completionHandler(); 2772 } 2773 2757 2774 } // namespace WebKit -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
r261963 r262212 356 356 357 357 void broadcastConsoleMessage(PAL::SessionID, JSC::MessageSource, JSC::MessageLevel, const String& message); 358 void updateBundleIdentifier(String&&, CompletionHandler<void()>&&); 359 void clearBundleIdentifier(CompletionHandler<void()>&&); 358 360 359 361 private: -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
r261963 r262212 185 185 ClearServiceWorkerEntitlementOverride() -> () Async 186 186 #endif 187 UpdateBundleIdentifier(String bundleIdentifier) -> () Async 188 ClearBundleIdentifier() -> () Async 187 189 } -
trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp
r261963 r262212 806 806 #endif 807 807 } 808 809 void WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcess(WKWebsiteDataStoreRef dataStoreRef, const WKStringRef bundleIdentifier, void* context, WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcessFunction completionHandler) 810 { 811 WebKit::toImpl(dataStoreRef)->updateBundleIdentifierInNetworkProcess(WebKit::toImpl(bundleIdentifier)->string(), [context, completionHandler] { 812 completionHandler(context); 813 }); 814 } 815 816 void WKWebsiteDataStoreClearBundleIdentifierInNetworkProcess(WKWebsiteDataStoreRef dataStoreRef, void* context, WKWebsiteDataStoreClearBundleIdentifierInNetworkProcessFunction completionHandler) 817 { 818 WebKit::toImpl(dataStoreRef)->clearBundleIdentifierInNetworkProcess([context, completionHandler] { 819 completionHandler(context); 820 }); 821 } -
trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h
r261963 r262212 178 178 WK_EXPORT void WKWebsiteDataStoreReinitializeAppBoundDomains(WKWebsiteDataStoreRef dataStoreRef); 179 179 180 typedef void (*WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcessFunction)(void* functionContext); 181 WK_EXPORT void WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcess(WKWebsiteDataStoreRef dataStoreRef, WKStringRef bundleIdentifier, void* context, WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcessFunction completionHandler); 182 183 typedef void (*WKWebsiteDataStoreClearBundleIdentifierInNetworkProcessFunction)(void* functionContext); 184 WK_EXPORT void WKWebsiteDataStoreClearBundleIdentifierInNetworkProcess(WKWebsiteDataStoreRef dataStoreRef, void* context, WKWebsiteDataStoreClearBundleIdentifierInNetworkProcessFunction completionHandler); 185 180 186 #ifdef __cplusplus 181 187 } -
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
r262022 r262212 1538 1538 } 1539 1539 1540 void NetworkProcessProxy::updateBundleIdentifier(const String& bundleIdentifier, CompletionHandler<void()>&& completionHandler) 1541 { 1542 sendWithAsyncReply(Messages::NetworkProcess::UpdateBundleIdentifier(bundleIdentifier), WTFMove(completionHandler)); 1543 } 1544 1545 void NetworkProcessProxy::clearBundleIdentifier(CompletionHandler<void()>&& completionHandler) 1546 { 1547 sendWithAsyncReply(Messages::NetworkProcess::ClearBundleIdentifier(), WTFMove(completionHandler)); 1548 } 1549 1540 1550 } // namespace WebKit 1541 1551 -
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
r261963 r262212 234 234 // ProcessThrottlerClient 235 235 void sendPrepareToSuspend(IsSuspensionImminent, CompletionHandler<void()>&&) final; 236 void updateBundleIdentifier(const String&, CompletionHandler<void()>&&); 237 void clearBundleIdentifier(CompletionHandler<void()>&&); 236 238 237 239 private: -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
r261963 r262212 2486 2486 #endif 2487 2487 2488 } 2488 void WebsiteDataStore::updateBundleIdentifierInNetworkProcess(const String& bundleIdentifier, CompletionHandler<void()>&& completionHandler) 2489 { 2490 auto callbackAggregator = CallbackAggregator::create(WTFMove(completionHandler)); 2491 2492 for (auto& processPool : processPools()) 2493 processPool->ensureNetworkProcess().updateBundleIdentifier(bundleIdentifier, [callbackAggregator = callbackAggregator.copyRef()] { }); 2494 } 2495 2496 void WebsiteDataStore::clearBundleIdentifierInNetworkProcess(CompletionHandler<void()>&& completionHandler) 2497 { 2498 auto callbackAggregator = CallbackAggregator::create(WTFMove(completionHandler)); 2499 2500 for (auto& processPool : processPools()) 2501 processPool->ensureNetworkProcess().clearBundleIdentifier([callbackAggregator = callbackAggregator.copyRef()] { }); 2502 } 2503 2504 } -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
r261963 r262212 300 300 void reinitializeAppBoundDomains(); 301 301 static void setAppBoundDomainsForTesting(HashSet<WebCore::RegistrableDomain>&&, CompletionHandler<void()>&&); 302 302 void updateBundleIdentifierInNetworkProcess(const String&, CompletionHandler<void()>&&); 303 void clearBundleIdentifierInNetworkProcess(CompletionHandler<void()>&&); 304 303 305 private: 304 306 enum class ForceReinitialization : bool { No, Yes }; -
trunk/Tools/ChangeLog
r262209 r262212 1 2020-05-27 Kate Cheney <katherine_cheney@apple.com> 2 3 Make sure bundle identifier testing override is set in the network process 4 https://bugs.webkit.org/show_bug.cgi?id=212288 5 <rdar://problem/63539061> 6 7 Reviewed by Chris Dumez. 8 9 Set the bundle identifier in the network process if a layout test 10 updates it. This value usually only gets updated when a new network 11 process is initialized, which does not happen for every test. So it 12 should be set/cleared as needed. 13 14 * WebKitTestRunner/TestController.cpp: 15 (WTR::TestController::createWebViewWithOptions): 16 (WTR::TestController::updateBundleIdentifierInNetworkProcess): 17 * WebKitTestRunner/TestController.h: 18 1 19 2020-05-27 Wenson Hsieh <wenson_hsieh@apple.com> 2 20 -
trunk/Tools/WebKitTestRunner/TestController.cpp
r262065 r262212 796 796 m_mainWebView->changeWindowScaleIfNeeded(1); 797 797 798 if (!options.applicationBundleIdentifier.isEmpty()) 798 if (!options.applicationBundleIdentifier.isEmpty()) { 799 799 reinitializeAppBoundDomains(); 800 updateBundleIdentifierInNetworkProcess(options.applicationBundleIdentifier); 801 } 800 802 } 801 803 … … 1165 1167 clearApplicationBundleIdentifierTestingOverride(); 1166 1168 #endif 1169 clearBundleIdentifierInNetworkProcess(); 1167 1170 } 1168 1171 … … 3905 3908 } 3906 3909 3910 void TestController::updateBundleIdentifierInNetworkProcess(const String& bundleIdentifier) 3911 { 3912 InAppBrowserPrivacyCallbackContext context(*this); 3913 WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcess(TestController::websiteDataStore(), adoptWK(WKStringCreateWithUTF8CString(bundleIdentifier.utf8().data())).get(), &context, inAppBrowserPrivacyVoidResultCallback); 3914 runUntil(context.done, noTimeout); 3915 } 3916 3917 void TestController::clearBundleIdentifierInNetworkProcess() 3918 { 3919 InAppBrowserPrivacyCallbackContext context(*this); 3920 WKWebsiteDataStoreClearBundleIdentifierInNetworkProcess(TestController::websiteDataStore(), &context, inAppBrowserPrivacyVoidResultCallback); 3921 runUntil(context.done, noTimeout); 3922 } 3923 3907 3924 #if !PLATFORM(COCOA) 3908 3925 void TestController::platformAddTestOptions(TestOptions&) const -
trunk/Tools/WebKitTestRunner/TestController.h
r261963 r262212 276 276 void clearAppBoundSession(); 277 277 void reinitializeAppBoundDomains(); 278 void updateBundleIdentifierInNetworkProcess(const String& bundleIdentifier); 279 void clearBundleIdentifierInNetworkProcess(); 278 280 279 281 WKArrayRef openPanelFileURLs() const { return m_openPanelFileURLs.get(); }
Note: See TracChangeset
for help on using the changeset viewer.