Changeset 246856 in webkit
- Timestamp:
- Jun 26, 2019 4:30:19 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 23 edited
- 3 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r246852 r246856 1 2019-06-26 Alex Christensen <achristensen@webkit.org> 2 3 testRunner.setAlwaysAcceptCookies should wait for cookie accept policy to be set 4 https://bugs.webkit.org/show_bug.cgi?id=199230 5 <rdar://51757107> 6 7 Reviewed by Andy Estes. 8 9 This patch adds an optional callback to WKCookieManagerSetHTTPCookieAcceptPolicy which is luckily only used for testing. 10 It also adds listener-based asynchronous versions of didReceiveSynchronousMessageFromInjectedBundle. 11 WebKitTestRunner uses these new abilities to wait for the cookie accept policy to be set in the network process while the web process is hung. 12 This removes the race condition that was causing some flakiness in tests that use testRunner.setAlwaysAcceptCookies 13 14 * Shared/API/APIObject.h: 15 * Shared/API/c/WKBase.h: 16 * Sources.txt: 17 * UIProcess/API/APIInjectedBundleClient.h: 18 (API::InjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle): 19 * UIProcess/API/APIMessageListener.h: Copied from Source/WebKit/UIProcess/API/APIInjectedBundleClient.h. 20 (API::MessageListener::create): 21 (API::MessageListener::sendReply): 22 (API::MessageListener::MessageListener): 23 * UIProcess/API/C/WKAPICast.h: 24 * UIProcess/API/C/WKContextInjectedBundleClient.h: 25 * UIProcess/API/C/WKCookieManager.cpp: 26 (WKCookieManagerSetHTTPCookieAcceptPolicy): 27 * UIProcess/API/C/WKCookieManager.h: 28 * UIProcess/API/C/WKMessageListener.cpp: Copied from Source/WebKit/UIProcess/API/APIInjectedBundleClient.h. 29 (WKMessageListenerGetTypeID): 30 (WKMessageListenerSendReply): 31 * UIProcess/API/C/WKMessageListener.h: Copied from Source/WebKit/UIProcess/API/APIInjectedBundleClient.h. 32 * UIProcess/API/C/WKPageInjectedBundleClient.h: 33 * UIProcess/WebContextInjectedBundleClient.cpp: 34 (WebKit::WebContextInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle): 35 * UIProcess/WebContextInjectedBundleClient.h: 36 * UIProcess/WebPageInjectedBundleClient.cpp: 37 (WebKit::WebPageInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle): 38 * UIProcess/WebPageInjectedBundleClient.h: 39 * UIProcess/WebPageProxy.cpp: 40 (WebKit::WebPageProxy::handleSynchronousMessage): 41 * UIProcess/WebPageProxy.h: 42 (WebKit::WebPageProxy::injectedBundleClient): Deleted. 43 * UIProcess/WebProcessPool.cpp: 44 (WebKit::WebProcessPool::handleSynchronousMessage): 45 * WebKit.xcodeproj/project.pbxproj: 46 1 47 2019-06-26 Wenson Hsieh <wenson_hsieh@apple.com> 2 48 -
trunk/Source/WebKit/Shared/API/APIObject.h
r246224 r246856 134 134 KeyValueStorageManager, 135 135 MediaCacheManager, 136 MessageListener, 136 137 Navigation, 137 138 NavigationAction, -
trunk/Source/WebKit/Shared/API/c/WKBase.h
r231457 r246856 107 107 typedef const struct OpaqueWKMediaSessionFocusManager* WKMediaSessionFocusManagerRef; 108 108 typedef const struct OpaqueWKMediaSessionMetadata* WKMediaSessionMetadataRef; 109 typedef const struct OpaqueWKMessageListener* WKMessageListenerRef; 109 110 typedef const struct OpaqueWKNavigationAction* WKNavigationActionRef; 110 111 typedef const struct OpaqueWKNavigationData* WKNavigationDataRef; -
trunk/Source/WebKit/Sources.txt
r246388 r246856 345 345 UIProcess/API/C/WKKeyValueStorageManager.cpp 346 346 UIProcess/API/C/WKMediaSessionMetadata.cpp 347 UIProcess/API/C/WKMessageListener.cpp 347 348 UIProcess/API/C/WKMockDisplay.cpp 348 349 UIProcess/API/C/WKMockMediaDevice.cpp -
trunk/Source/WebKit/UIProcess/API/APIInjectedBundleClient.h
r218261 r246856 27 27 28 28 #include "APIObject.h" 29 #include <wtf/CompletionHandler.h> 29 30 #include <wtf/Forward.h> 31 #include <wtf/RefPtr.h> 30 32 31 33 namespace WebKit { … … 40 42 41 43 virtual void didReceiveMessageFromInjectedBundle(WebKit::WebProcessPool&, const WTF::String&, API::Object*) { } 42 virtual void didReceiveSynchronousMessageFromInjectedBundle(WebKit::WebProcessPool&, const WTF::String&, API::Object*, RefPtr<API::Object>&) {}44 virtual void didReceiveSynchronousMessageFromInjectedBundle(WebKit::WebProcessPool&, const WTF::String&, API::Object*, CompletionHandler<void(RefPtr<API::Object>)>&& completionHandler) { completionHandler(nullptr); } 43 45 virtual RefPtr<API::Object> getInjectedBundleInitializationUserData(WebKit::WebProcessPool&) { return nullptr; } 44 46 }; -
trunk/Source/WebKit/UIProcess/API/APIMessageListener.h
r246855 r246856 1 1 /* 2 * Copyright (C) 201 7 Igalia S.L.2 * Copyright (C) 2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 27 27 28 28 #include "APIObject.h" 29 #include <wtf/Forward.h> 30 31 namespace WebKit { 32 class WebProcessPool; 33 } 29 #include <wtf/CompletionHandler.h> 34 30 35 31 namespace API { 36 32 37 class InjectedBundleClient { 33 class MessageListener : public ObjectImpl<Object::Type::MessageListener> { 34 WTF_MAKE_NONCOPYABLE(MessageListener); 38 35 public: 39 virtual ~InjectedBundleClient() = default; 36 static Ref<MessageListener> create(CompletionHandler<void(RefPtr<API::Object>)>&& reply) 37 { 38 return adoptRef(*new MessageListener(WTFMove(reply))); 39 } 40 40 41 virtual void didReceiveMessageFromInjectedBundle(WebKit::WebProcessPool&, const WTF::String&, API::Object*) { } 42 virtual void didReceiveSynchronousMessageFromInjectedBundle(WebKit::WebProcessPool&, const WTF::String&, API::Object*, RefPtr<API::Object>&) { } 43 virtual RefPtr<API::Object> getInjectedBundleInitializationUserData(WebKit::WebProcessPool&) { return nullptr; } 41 void sendReply(RefPtr<API::Object>&& reply) 42 { 43 m_reply(WTFMove(reply)); 44 } 45 46 private: 47 MessageListener(CompletionHandler<void(RefPtr<API::Object>)>&& reply) 48 : m_reply(WTFMove(reply)) { } 49 50 CompletionHandler<void(RefPtr<API::Object>)> m_reply; 44 51 }; 45 52 -
trunk/Source/WebKit/UIProcess/API/C/WKAPICast.h
r246807 r246856 59 59 class FrameInfo; 60 60 class HitTestResult; 61 class MessageListener; 61 62 class Navigation; 62 63 class NavigationAction; … … 138 139 WK_ADD_API_MAPPING(WKMediaSessionFocusManagerRef, WebMediaSessionFocusManager) 139 140 WK_ADD_API_MAPPING(WKMediaSessionMetadataRef, WebMediaSessionMetadata) 141 WK_ADD_API_MAPPING(WKMessageListenerRef, API::MessageListener) 140 142 WK_ADD_API_MAPPING(WKNavigationActionRef, API::NavigationAction) 141 143 WK_ADD_API_MAPPING(WKNavigationDataRef, API::NavigationData) -
trunk/Source/WebKit/UIProcess/API/C/WKContextInjectedBundleClient.h
r188279 r246856 30 30 31 31 // Injected Bundle Client 32 typedef void (*WKContextDidReceiveMessageFromInjectedBundleCallback)(WKContextRef page, WKStringRef messageName, WKTypeRef messageBody, const void *clientInfo);33 typedef void (*WKContextDidReceiveSynchronousMessageFromInjectedBundleCallback)(WKContextRef page, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData, const void *clientInfo);32 typedef void (*WKContextDidReceiveMessageFromInjectedBundleCallback)(WKContextRef context, WKStringRef messageName, WKTypeRef messageBody, const void *clientInfo); 33 typedef void (*WKContextDidReceiveSynchronousMessageFromInjectedBundleCallback)(WKContextRef context, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData, const void *clientInfo); 34 34 typedef WKTypeRef (*WKContextGetInjectedBundleInitializationUserDataCallback)(WKContextRef context, const void *clientInfo); 35 typedef void (*WKContextDidReceiveSynchronousMessageFromInjectedBundleWithListenerCallback)(WKContextRef context, WKStringRef messageName, WKTypeRef messageBody, WKMessageListenerRef listener, const void *clientInfo); 35 36 36 37 typedef struct WKContextInjectedBundleClientBase { … … 58 59 } WKContextInjectedBundleClientV1; 59 60 61 typedef struct WKContextInjectedBundleClientV2 { 62 WKContextInjectedBundleClientBase base; 63 64 // Version 0. 65 WKContextDidReceiveMessageFromInjectedBundleCallback didReceiveMessageFromInjectedBundle; 66 WKContextDidReceiveSynchronousMessageFromInjectedBundleCallback didReceiveSynchronousMessageFromInjectedBundle; 67 68 // Version 1. 69 WKContextGetInjectedBundleInitializationUserDataCallback getInjectedBundleInitializationUserData; 70 71 // Version 2. 72 WKContextDidReceiveSynchronousMessageFromInjectedBundleWithListenerCallback didReceiveSynchronousMessageFromInjectedBundleWithListener; 73 } WKContextInjectedBundleClientV2; 74 60 75 #endif // WKContextInjectedBundleClient_h -
trunk/Source/WebKit/UIProcess/API/C/WKCookieManager.cpp
r244924 r246856 63 63 } 64 64 65 void WKCookieManagerSetHTTPCookieAcceptPolicy(WKCookieManagerRef cookieManager, WKHTTPCookieAcceptPolicy policy )65 void WKCookieManagerSetHTTPCookieAcceptPolicy(WKCookieManagerRef cookieManager, WKHTTPCookieAcceptPolicy policy, void* context, WKCookieManagerSetHTTPCookieAcceptPolicyFunction callback) 66 66 { 67 toImpl(cookieManager)->setHTTPCookieAcceptPolicy(PAL::SessionID::defaultSessionID(), toHTTPCookieAcceptPolicy(policy), [](CallbackBase::Error){}); 67 toImpl(cookieManager)->setHTTPCookieAcceptPolicy(PAL::SessionID::defaultSessionID(), toHTTPCookieAcceptPolicy(policy), [context, callback](CallbackBase::Error error) { 68 if (callback) 69 callback(error != CallbackBase::Error::None ? toAPI(API::Error::create().ptr()) : nullptr, context); 70 }); 68 71 } 69 72 -
trunk/Source/WebKit/UIProcess/API/C/WKCookieManager.h
r234440 r246856 69 69 WK_EXPORT void WKCookieManagerDeleteAllCookiesModifiedAfterDate(WKCookieManagerRef cookieManager, double); 70 70 71 WK_EXPORT void WKCookieManagerSetHTTPCookieAcceptPolicy(WKCookieManagerRef cookieManager, WKHTTPCookieAcceptPolicy policy); 71 typedef void (*WKCookieManagerSetHTTPCookieAcceptPolicyFunction)(WKErrorRef, void*); 72 WK_EXPORT void WKCookieManagerSetHTTPCookieAcceptPolicy(WKCookieManagerRef cookieManager, WKHTTPCookieAcceptPolicy policy, void* context, WKCookieManagerSetHTTPCookieAcceptPolicyFunction callback); 72 73 typedef void (*WKCookieManagerGetHTTPCookieAcceptPolicyFunction)(WKHTTPCookieAcceptPolicy, WKErrorRef, void*); 73 74 WK_EXPORT void WKCookieManagerGetHTTPCookieAcceptPolicy(WKCookieManagerRef cookieManager, void* context, WKCookieManagerGetHTTPCookieAcceptPolicyFunction callback); -
trunk/Source/WebKit/UIProcess/API/C/WKMessageListener.cpp
r246855 r246856 1 1 /* 2 * Copyright (C) 201 7 Igalia S.L.2 * Copyright (C) 2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #pragma once 26 #include "config.h" 27 #include "WKMessageListener.h" 27 28 28 #include "APIObject.h" 29 #include <wtf/Forward.h> 29 #include "APIMessageListener.h" 30 30 31 namespace WebKit { 32 class WebProcessPool; 31 WKTypeID WKMessageListenerGetTypeID() 32 { 33 return toAPI(API::MessageListener::APIType); 33 34 } 34 35 35 namespace API { 36 37 class InjectedBundleClient { 38 public: 39 virtual ~InjectedBundleClient() = default; 40 41 virtual void didReceiveMessageFromInjectedBundle(WebKit::WebProcessPool&, const WTF::String&, API::Object*) { } 42 virtual void didReceiveSynchronousMessageFromInjectedBundle(WebKit::WebProcessPool&, const WTF::String&, API::Object*, RefPtr<API::Object>&) { } 43 virtual RefPtr<API::Object> getInjectedBundleInitializationUserData(WebKit::WebProcessPool&) { return nullptr; } 44 }; 45 46 } // namespace API 36 void WKMessageListenerSendReply(WKMessageListenerRef listenerRef, WKTypeRef value) 37 { 38 toImpl(listenerRef)->sendReply(toImpl(value)); 39 } -
trunk/Source/WebKit/UIProcess/API/C/WKMessageListener.h
r246855 r246856 1 1 /* 2 * Copyright (C) 201 7 Igalia S.L.2 * Copyright (C) 2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #pragma once 26 #ifndef WKMessageListener_h 27 #define WKMessageListener_h 27 28 28 #include "APIObject.h" 29 #include <wtf/Forward.h> 29 #include <WebKit/WKBase.h> 30 30 31 namespace WebKit { 32 class WebProcessPool; 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 WK_EXPORT WKTypeID WKMessageListenerGetTypeID(); 36 37 WK_EXPORT void WKMessageListenerSendReply(WKMessageListenerRef listener, WKTypeRef reply); 38 39 #ifdef __cplusplus 33 40 } 41 #endif 34 42 35 namespace API { 36 37 class InjectedBundleClient { 38 public: 39 virtual ~InjectedBundleClient() = default; 40 41 virtual void didReceiveMessageFromInjectedBundle(WebKit::WebProcessPool&, const WTF::String&, API::Object*) { } 42 virtual void didReceiveSynchronousMessageFromInjectedBundle(WebKit::WebProcessPool&, const WTF::String&, API::Object*, RefPtr<API::Object>&) { } 43 virtual RefPtr<API::Object> getInjectedBundleInitializationUserData(WebKit::WebProcessPool&) { return nullptr; } 44 }; 45 46 } // namespace API 43 #endif /* WKMessageListener_h */ -
trunk/Source/WebKit/UIProcess/API/C/WKPageInjectedBundleClient.h
r182260 r246856 32 32 typedef void (*WKPageDidReceiveSynchronousMessageFromInjectedBundleCallback)(WKPageRef page, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData, const void *clientInfo); 33 33 typedef WKTypeRef (*WKPageGetInjectedBundleInitializationUserDataCallback)(WKPageRef page, const void *clientInfo); 34 typedef void (*WKPageDidReceiveSynchronousMessageFromInjectedBundleWithListenerCallback)(WKPageRef page, WKStringRef messageName, WKTypeRef messageBody, WKMessageListenerRef listener, const void* clientInfo); 34 35 35 36 typedef struct WKPageInjectedBundleClientBase { … … 46 47 } WKPageInjectedBundleClientV0; 47 48 49 typedef struct WKPageInjectedBundleClientV1 { 50 WKPageInjectedBundleClientBase base; 51 52 // Version 0. 53 WKPageDidReceiveMessageFromInjectedBundleCallback didReceiveMessageFromInjectedBundle; 54 WKPageDidReceiveSynchronousMessageFromInjectedBundleCallback didReceiveSynchronousMessageFromInjectedBundle; 55 56 // Version 1. 57 WKPageDidReceiveSynchronousMessageFromInjectedBundleWithListenerCallback didReceiveSynchronousMessageFromInjectedBundleWithListener; 58 } WKPageInjectedBundleClientV1; 59 48 60 #endif // WKPageInjectedBundleClient_h -
trunk/Source/WebKit/UIProcess/WebContextInjectedBundleClient.cpp
r218261 r246856 27 27 #include "WebContextInjectedBundleClient.h" 28 28 29 #include "APIMessageListener.h" 29 30 #include "WKAPICast.h" 30 31 #include "WebProcessPool.h" … … 46 47 } 47 48 48 void WebContextInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle(WebProcessPool& processPool, const String& messageName, API::Object* messageBody, RefPtr<API::Object>& returnData)49 void WebContextInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle(WebProcessPool& processPool, const String& messageName, API::Object* messageBody, CompletionHandler<void(RefPtr<API::Object>)>&& completionHandler) 49 50 { 50 if (!m_client.didReceiveSynchronousMessageFromInjectedBundle )51 return ;51 if (!m_client.didReceiveSynchronousMessageFromInjectedBundle && !m_client.didReceiveSynchronousMessageFromInjectedBundleWithListener) 52 return completionHandler(nullptr); 52 53 53 WKTypeRef returnDataRef = nullptr; 54 m_client.didReceiveSynchronousMessageFromInjectedBundle(toAPI(&processPool), toAPI(messageName.impl()), toAPI(messageBody), &returnDataRef, m_client.base.clientInfo); 55 returnData = adoptRef(toImpl(returnDataRef)); 54 if (m_client.didReceiveSynchronousMessageFromInjectedBundle) { 55 WKTypeRef returnDataRef = nullptr; 56 m_client.didReceiveSynchronousMessageFromInjectedBundle(toAPI(&processPool), toAPI(messageName.impl()), toAPI(messageBody), &returnDataRef, m_client.base.clientInfo); 57 return completionHandler(adoptRef(toImpl(returnDataRef))); 58 } 59 60 m_client.didReceiveSynchronousMessageFromInjectedBundleWithListener(toAPI(&processPool), toAPI(messageName.impl()), toAPI(messageBody), toAPI(API::MessageListener::create(WTFMove(completionHandler)).ptr()), m_client.base.clientInfo); 56 61 } 57 62 -
trunk/Source/WebKit/UIProcess/WebContextInjectedBundleClient.h
r241183 r246856 35 35 36 36 template<> struct ClientTraits<WKContextInjectedBundleClientBase> { 37 typedef std::tuple<WKContextInjectedBundleClientV0, WKContextInjectedBundleClientV1 > Versions;37 typedef std::tuple<WKContextInjectedBundleClientV0, WKContextInjectedBundleClientV1, WKContextInjectedBundleClientV2> Versions; 38 38 }; 39 39 } … … 49 49 50 50 void didReceiveMessageFromInjectedBundle(WebProcessPool&, const WTF::String&, API::Object*) override; 51 void didReceiveSynchronousMessageFromInjectedBundle(WebProcessPool&, const WTF::String&, API::Object*, RefPtr<API::Object>&) override;51 void didReceiveSynchronousMessageFromInjectedBundle(WebProcessPool&, const WTF::String&, API::Object*, CompletionHandler<void(RefPtr<API::Object>)>&&) override; 52 52 RefPtr<API::Object> getInjectedBundleInitializationUserData(WebProcessPool&) override; 53 53 }; -
trunk/Source/WebKit/UIProcess/WebPageInjectedBundleClient.cpp
r235265 r246856 27 27 #include "WebPageInjectedBundleClient.h" 28 28 29 #include "APIMessageListener.h" 29 30 #include "WKAPICast.h" 30 31 #include "WebProcessPool.h" … … 42 43 } 43 44 44 void WebPageInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle(WebPageProxy* page, const String& messageName, API::Object* messageBody, RefPtr<API::Object>& returnData)45 void WebPageInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle(WebPageProxy* page, const String& messageName, API::Object* messageBody, CompletionHandler<void(RefPtr<API::Object>)>&& completionHandler) 45 46 { 46 if (!m_client.didReceiveSynchronousMessageFromInjectedBundle) 47 return; 47 if (!m_client.didReceiveSynchronousMessageFromInjectedBundle 48 && !m_client.didReceiveSynchronousMessageFromInjectedBundleWithListener) 49 return completionHandler(nullptr); 48 50 49 WKTypeRef returnDataRef = 0; 50 m_client.didReceiveSynchronousMessageFromInjectedBundle(toAPI(page), toAPI(messageName.impl()), toAPI(messageBody), &returnDataRef, m_client.base.clientInfo); 51 returnData = adoptRef(toImpl(returnDataRef)); 51 if (m_client.didReceiveSynchronousMessageFromInjectedBundle) { 52 WKTypeRef returnDataRef = nullptr; 53 m_client.didReceiveSynchronousMessageFromInjectedBundle(toAPI(page), toAPI(messageName.impl()), toAPI(messageBody), &returnDataRef, m_client.base.clientInfo); 54 return completionHandler(adoptRef(toImpl(returnDataRef))); 55 } 56 57 m_client.didReceiveSynchronousMessageFromInjectedBundleWithListener(toAPI(page), toAPI(messageName.impl()), toAPI(messageBody), toAPI(API::MessageListener::create(WTFMove(completionHandler)).ptr()), m_client.base.clientInfo); 52 58 } 53 59 -
trunk/Source/WebKit/UIProcess/WebPageInjectedBundleClient.h
r182260 r246856 24 24 */ 25 25 26 #ifndef WebPageInjectedBundleClient_h 27 #define WebPageInjectedBundleClient_h 26 #pragma once 28 27 29 28 #include "APIClient.h" … … 35 34 36 35 template<> struct ClientTraits<WKPageInjectedBundleClientBase> { 37 typedef std::tuple<WKPageInjectedBundleClientV0 > Versions;36 typedef std::tuple<WKPageInjectedBundleClientV0, WKPageInjectedBundleClientV1> Versions; 38 37 }; 39 38 } … … 46 45 public: 47 46 void didReceiveMessageFromInjectedBundle(WebPageProxy*, const String&, API::Object*); 48 void didReceiveSynchronousMessageFromInjectedBundle(WebPageProxy*, const String&, API::Object*, RefPtr<API::Object>& returnData);47 void didReceiveSynchronousMessageFromInjectedBundle(WebPageProxy*, const String&, API::Object*, CompletionHandler<void(RefPtr<API::Object>)>&&); 49 48 }; 50 49 51 50 } // namespace WebKit 52 53 #endif // WebPageInjectedBundleClient_h -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r246829 r246856 705 705 706 706 RefPtr<API::Object> returnData; 707 m_injectedBundleClient->didReceiveSynchronousMessageFromInjectedBundle(this, messageName, m_process->transformHandlesToObjects(messageBody.object()).get(), returnData); 708 completionHandler(UserData(m_process->transformObjectsToHandles(returnData.get()))); 707 m_injectedBundleClient->didReceiveSynchronousMessageFromInjectedBundle(this, messageName, m_process->transformHandlesToObjects(messageBody.object()).get(), [completionHandler = WTFMove(completionHandler), process = m_process.copyRef()] (RefPtr<API::Object>&& returnData) mutable { 708 completionHandler(UserData(process->transformObjectsToHandles(returnData.get()))); 709 }); 709 710 } 710 711 -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r246829 r246856 498 498 void setPolicyClient(std::unique_ptr<API::PolicyClient>&&); 499 499 void setInjectedBundleClient(const WKPageInjectedBundleClientBase*); 500 WebPageInjectedBundleClient* injectedBundleClient() { return m_injectedBundleClient.get(); }501 500 502 501 API::UIClient& uiClient() { return *m_uiClient; } -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r246500 r246856 1903 1903 return completionHandler({ }); 1904 1904 1905 RefPtr<API::Object> returnData;1906 m_injectedBundleClient->didReceiveSynchronousMessageFromInjectedBundle(*this, messageName, webProcessProxy->transformHandlesToObjects(messageBody.object()).get(), returnData);1907 completionHandler(UserData(webProcessProxy->transformObjectsToHandles(returnData.get())));1905 m_injectedBundleClient->didReceiveSynchronousMessageFromInjectedBundle(*this, messageName, webProcessProxy->transformHandlesToObjects(messageBody.object()).get(), [webProcessProxy = makeRef(*webProcessProxy), completionHandler = WTFMove(completionHandler)] (RefPtr<API::Object>&& returnData) mutable { 1906 completionHandler(UserData(webProcessProxy->transformObjectsToHandles(returnData.get()))); 1907 }); 1908 1908 } 1909 1909 -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r246829 r246856 1103 1103 5CA26D83217AD1B800F97A35 /* WKSafeBrowsingWarning.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CA26D7F217ABBB600F97A35 /* WKSafeBrowsingWarning.mm */; }; 1104 1104 5CA9854A210BEB640057EB6B /* SafeBrowsingWarning.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CA98549210BEB5A0057EB6B /* SafeBrowsingWarning.h */; }; 1105 5CABDC8622C40FDE001EDE8E /* WKMessageListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CABDC8522C40FCC001EDE8E /* WKMessageListener.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1106 5CABDC8722C40FED001EDE8E /* APIMessageListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CABDC8322C40FA7001EDE8E /* APIMessageListener.h */; }; 1105 1107 5CADDE05215046BD0067D309 /* WKWebProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C74300E21500492004BFA17 /* WKWebProcess.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1106 1108 5CAFDE452130846300B1F7E1 /* _WKInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CAFDE422130843500B1F7E1 /* _WKInspector.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 3605 3607 5CA98549210BEB5A0057EB6B /* SafeBrowsingWarning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SafeBrowsingWarning.h; sourceTree = "<group>"; }; 3606 3608 5CA9854B210BEB730057EB6B /* SafeBrowsingWarningCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SafeBrowsingWarningCocoa.mm; sourceTree = "<group>"; }; 3609 5CABDC8322C40FA7001EDE8E /* APIMessageListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIMessageListener.h; sourceTree = "<group>"; }; 3610 5CABDC8422C40FCC001EDE8E /* WKMessageListener.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKMessageListener.cpp; sourceTree = "<group>"; }; 3611 5CABDC8522C40FCC001EDE8E /* WKMessageListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKMessageListener.h; sourceTree = "<group>"; }; 3607 3612 5CADDE0D2151AA010067D309 /* AuthenticationChallengeDisposition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AuthenticationChallengeDisposition.h; sourceTree = "<group>"; }; 3608 3613 5CAFDE422130843500B1F7E1 /* _WKInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKInspector.h; sourceTree = "<group>"; }; … … 7844 7849 7CE4D2061A46775700C7F152 /* APILegacyContextHistoryClient.h */, 7845 7850 1A2464F21891E45100234C5B /* APILoaderClient.h */, 7851 5CABDC8322C40FA7001EDE8E /* APIMessageListener.h */, 7846 7852 7CD3A4801A5D02FA009623B8 /* APINavigation.cpp */, 7847 7853 7CD3A4811A5D02FA009623B8 /* APINavigation.h */, … … 7947 7953 C9CD43991B4B024200239E33 /* WKMediaSessionMetadata.cpp */, 7948 7954 C9CD439A1B4B024200239E33 /* WKMediaSessionMetadata.h */, 7955 5CABDC8422C40FCC001EDE8E /* WKMessageListener.cpp */, 7956 5CABDC8522C40FCC001EDE8E /* WKMessageListener.h */, 7949 7957 C11E1693212B87C500985FF6 /* WKMockDisplay.cpp */, 7950 7958 C11E1692212B87C500985FF6 /* WKMockDisplay.h */, … … 9251 9259 7CE4D2071A46776100C7F152 /* APILegacyContextHistoryClient.h in Headers */, 9252 9260 1A2464F31891E45100234C5B /* APILoaderClient.h in Headers */, 9261 5CABDC8722C40FED001EDE8E /* APIMessageListener.h in Headers */, 9253 9262 7CD3A4831A5D02FA009623B8 /* APINavigation.h in Headers */, 9254 9263 2DF9EEEC1A7836EE00B6CFBE /* APINavigationAction.h in Headers */, … … 10100 10109 C9CD439D1B4B024F00239E33 /* WKMediaSessionMetadata.h in Headers */, 10101 10110 1AB40EE61BF677E300BA81BE /* WKMenuItemIdentifiersPrivate.h in Headers */, 10111 5CABDC8622C40FDE001EDE8E /* WKMessageListener.h in Headers */, 10102 10112 C11E1694212B87C500985FF6 /* WKMockDisplay.h in Headers */, 10103 10113 411A8DDB20DDD1AC0060D34F /* WKMockMediaDevice.h in Headers */, -
trunk/Tools/ChangeLog
r246848 r246856 1 2019-06-26 Alex Christensen <achristensen@webkit.org> 2 3 testRunner.setAlwaysAcceptCookies should wait for cookie accept policy to be set 4 https://bugs.webkit.org/show_bug.cgi?id=199230 5 <rdar://51757107> 6 7 Reviewed by Andy Estes. 8 9 * TestWebKitAPI/Tests/WebKit/CookieManager.cpp: 10 (TestWebKitAPI::didGetTestHTTPCookieAcceptPolicy): 11 (TestWebKitAPI::didGetUserHTTPCookieAcceptPolicy): 12 * WebKitTestRunner/TestController.cpp: 13 (WTR::TestController::generatePageConfiguration): 14 (WTR::TestController::createWebViewWithOptions): 15 (WTR::TestController::didReceiveSynchronousMessageFromInjectedBundleWithListener): 16 (WTR::TestController::didReceiveSynchronousPageMessageFromInjectedBundleWithListener): 17 (WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): 18 (WTR::TestController::didReceiveSynchronousPageMessageFromInjectedBundle): Deleted. 19 * WebKitTestRunner/TestController.h: 20 * WebKitTestRunner/TestInvocation.cpp: 21 (WTR::TestInvocation::invoke): 22 (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 23 1 24 2019-06-26 Ross Kirsling <ross.kirsling@sony.com> 2 25 -
trunk/Tools/TestWebKitAPI/Tests/WebKit/CookieManager.cpp
r239631 r246856 47 47 48 48 WKCookieManagerRef cookieManager = WKContextGetCookieManager(wkContext.get()); 49 WKCookieManagerSetHTTPCookieAcceptPolicy(cookieManager, userPolicy );49 WKCookieManagerSetHTTPCookieAcceptPolicy(cookieManager, userPolicy, nullptr, nullptr); 50 50 51 51 testDone = true; … … 61 61 testPolicy = (userPolicy + 1) % 3; 62 62 WKCookieManagerRef cookieManager = WKContextGetCookieManager(wkContext.get()); 63 WKCookieManagerSetHTTPCookieAcceptPolicy(cookieManager, testPolicy );63 WKCookieManagerSetHTTPCookieAcceptPolicy(cookieManager, testPolicy, nullptr, nullptr); 64 64 WKCookieManagerGetHTTPCookieAcceptPolicy(cookieManager, reinterpret_cast<void*>(0x1234578), didGetTestHTTPCookieAcceptPolicy); 65 65 } -
trunk/Tools/WebKitTestRunner/TestController.cpp
r246118 r246856 44 44 #include <WebKit/WKFrameInfoRef.h> 45 45 #include <WebKit/WKIconDatabase.h> 46 #include <WebKit/WKMessageListener.h> 46 47 #include <WebKit/WKMockDisplay.h> 47 48 #include <WebKit/WKMockMediaDevice.h> … … 74 75 #include <string> 75 76 #include <wtf/AutodrainedPool.h> 77 #include <wtf/CompletionHandler.h> 76 78 #include <wtf/CryptographicallyRandomNumber.h> 77 79 #include <wtf/MainThread.h> … … 539 541 } 540 542 541 WKContextInjectedBundleClientV 1injectedBundleClient = {542 { 1, this },543 WKContextInjectedBundleClientV2 injectedBundleClient = { 544 { 2, this }, 543 545 didReceiveMessageFromInjectedBundle, 544 didReceiveSynchronousMessageFromInjectedBundle,546 nullptr, 545 547 getInjectedBundleInitializationUserData, 548 didReceiveSynchronousMessageFromInjectedBundleWithListener, 546 549 }; 547 550 WKContextSetInjectedBundleClient(m_context.get(), &injectedBundleClient.base); … … 718 721 719 722 // this should just be done on the page? 720 WKPageInjectedBundleClientV 0injectedBundleClient = {721 { 0, this },723 WKPageInjectedBundleClientV1 injectedBundleClient = { 724 { 1, this }, 722 725 didReceivePageMessageFromInjectedBundle, 723 didReceiveSynchronousPageMessageFromInjectedBundle 726 nullptr, 727 didReceiveSynchronousPageMessageFromInjectedBundleWithListener, 724 728 }; 725 729 WKPageSetPageInjectedBundleClient(m_mainWebView->page(), &injectedBundleClient.base); … … 1730 1734 } 1731 1735 1732 void TestController::didReceiveSynchronousMessageFromInjectedBundle (WKContextRef context, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData, const void* clientInfo)1733 { 1734 *returnData = static_cast<TestController*>(const_cast<void*>(clientInfo))->didReceiveSynchronousMessageFromInjectedBundle(messageName, messageBody).leakRef();1736 void TestController::didReceiveSynchronousMessageFromInjectedBundleWithListener(WKContextRef context, WKStringRef messageName, WKTypeRef messageBody, WKMessageListenerRef listener, const void* clientInfo) 1737 { 1738 static_cast<TestController*>(const_cast<void*>(clientInfo))->didReceiveSynchronousMessageFromInjectedBundle(messageName, messageBody, listener); 1735 1739 } 1736 1740 … … 1747 1751 } 1748 1752 1749 void TestController::didReceiveSynchronousPageMessageFromInjectedBundle (WKPageRef page, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData, const void* clientInfo)1750 { 1751 *returnData = static_cast<TestController*>(const_cast<void*>(clientInfo))->didReceiveSynchronousMessageFromInjectedBundle(messageName, messageBody).leakRef();1753 void TestController::didReceiveSynchronousPageMessageFromInjectedBundleWithListener(WKPageRef page, WKStringRef messageName, WKTypeRef messageBody, WKMessageListenerRef listener, const void* clientInfo) 1754 { 1755 static_cast<TestController*>(const_cast<void*>(clientInfo))->didReceiveSynchronousMessageFromInjectedBundle(messageName, messageBody, listener); 1752 1756 } 1753 1757 … … 1886 1890 } 1887 1891 1888 WKRetainPtr<WKTypeRef> TestController::didReceiveSynchronousMessageFromInjectedBundle(WKStringRef messageName, WKTypeRef messageBody) 1889 { 1892 void TestController::didReceiveSynchronousMessageFromInjectedBundle(WKStringRef messageName, WKTypeRef messageBody, WKMessageListenerRef listener) 1893 { 1894 auto completionHandler = [listener = retainWK(listener)] (WKTypeRef reply) { 1895 WKMessageListenerSendReply(listener.get(), reply); 1896 }; 1897 1890 1898 if (WKStringIsEqualToUTF8CString(messageName, "EventSender")) { 1891 1899 if (m_state != RunningTest) 1892 return nullptr;1900 return completionHandler(nullptr); 1893 1901 1894 1902 ASSERT(WKGetTypeID(messageBody) == WKDictionaryGetTypeID()); … … 1901 1909 didReceiveKeyDownMessageFromInjectedBundle(messageBodyDictionary, true); 1902 1910 1903 return 0;1911 return completionHandler(nullptr); 1904 1912 } 1905 1913 … … 1916 1924 else 1917 1925 m_eventSenderProxy->mouseUp(button, modifiers); 1918 return 0;1926 return completionHandler(nullptr); 1919 1927 } 1920 1928 … … 1928 1936 // Forward to WebProcess 1929 1937 m_eventSenderProxy->mouseMoveTo(x, y); 1930 return 0;1938 return completionHandler(nullptr); 1931 1939 } 1932 1940 … … 1934 1942 if (WKStringIsEqualToUTF8CString(subMessageName, "MouseForceClick")) { 1935 1943 m_eventSenderProxy->mouseForceClick(); 1936 return 0;1944 return completionHandler(nullptr); 1937 1945 } 1938 1946 1939 1947 if (WKStringIsEqualToUTF8CString(subMessageName, "StartAndCancelMouseForceClick")) { 1940 1948 m_eventSenderProxy->startAndCancelMouseForceClick(); 1941 return 0;1949 return completionHandler(nullptr); 1942 1950 } 1943 1951 1944 1952 if (WKStringIsEqualToUTF8CString(subMessageName, "MouseForceDown")) { 1945 1953 m_eventSenderProxy->mouseForceDown(); 1946 return 0;1954 return completionHandler(nullptr); 1947 1955 } 1948 1956 1949 1957 if (WKStringIsEqualToUTF8CString(subMessageName, "MouseForceUp")) { 1950 1958 m_eventSenderProxy->mouseForceUp(); 1951 return 0;1959 return completionHandler(nullptr); 1952 1960 } 1953 1961 … … 1957 1965 1958 1966 m_eventSenderProxy->mouseForceChanged(force); 1959 return 0;1967 return completionHandler(nullptr); 1960 1968 } 1961 1969 #endif // PLATFORM(MAC) … … 1973 1981 // Forward to WebProcess 1974 1982 m_eventSenderProxy->continuousMouseScrollBy(x, y, paged); 1975 return 0;1983 return completionHandler(nullptr); 1976 1984 } 1977 1985 … … 1981 1989 1982 1990 m_eventSenderProxy->leapForward(time); 1983 return 0;1991 return completionHandler(nullptr); 1984 1992 } 1985 1993 … … 1993 2001 1994 2002 m_eventSenderProxy->addTouchPoint(x, y); 1995 return 0;2003 return completionHandler(nullptr); 1996 2004 } 1997 2005 … … 2007 2015 2008 2016 m_eventSenderProxy->updateTouchPoint(index, x, y); 2009 return 0;2017 return completionHandler(nullptr); 2010 2018 } 2011 2019 … … 2018 2026 2019 2027 m_eventSenderProxy->setTouchModifier(modifier, enable); 2020 return 0;2028 return completionHandler(nullptr); 2021 2029 } 2022 2030 … … 2029 2037 2030 2038 m_eventSenderProxy->setTouchPointRadius(x, y); 2031 return 0;2039 return completionHandler(nullptr); 2032 2040 } 2033 2041 2034 2042 if (WKStringIsEqualToUTF8CString(subMessageName, "TouchStart")) { 2035 2043 m_eventSenderProxy->touchStart(); 2036 return 0;2044 return completionHandler(nullptr); 2037 2045 } 2038 2046 2039 2047 if (WKStringIsEqualToUTF8CString(subMessageName, "TouchMove")) { 2040 2048 m_eventSenderProxy->touchMove(); 2041 return 0;2049 return completionHandler(nullptr); 2042 2050 } 2043 2051 2044 2052 if (WKStringIsEqualToUTF8CString(subMessageName, "TouchEnd")) { 2045 2053 m_eventSenderProxy->touchEnd(); 2046 return 0;2054 return completionHandler(nullptr); 2047 2055 } 2048 2056 2049 2057 if (WKStringIsEqualToUTF8CString(subMessageName, "TouchCancel")) { 2050 2058 m_eventSenderProxy->touchCancel(); 2051 return 0;2059 return completionHandler(nullptr); 2052 2060 } 2053 2061 2054 2062 if (WKStringIsEqualToUTF8CString(subMessageName, "ClearTouchPoints")) { 2055 2063 m_eventSenderProxy->clearTouchPoints(); 2056 return 0;2064 return completionHandler(nullptr); 2057 2065 } 2058 2066 … … 2061 2069 int index = static_cast<int>(WKUInt64GetValue(static_cast<WKUInt64Ref>(WKDictionaryGetItemForKey(messageBodyDictionary, indexKey.get())))); 2062 2070 m_eventSenderProxy->releaseTouchPoint(index); 2063 return 0;2071 return completionHandler(nullptr); 2064 2072 } 2065 2073 … … 2068 2076 int index = static_cast<int>(WKUInt64GetValue(static_cast<WKUInt64Ref>(WKDictionaryGetItemForKey(messageBodyDictionary, indexKey.get())))); 2069 2077 m_eventSenderProxy->cancelTouchPoint(index); 2070 return 0;2078 return completionHandler(nullptr); 2071 2079 } 2072 2080 #endif 2073 2081 ASSERT_NOT_REACHED(); 2074 2082 } 2075 return m_currentInvocation->didReceiveSynchronousMessageFromInjectedBundle(messageName, messageBody); 2083 2084 auto setHTTPCookieAcceptPolicy = [&] (WKHTTPCookieAcceptPolicy policy, CompletionHandler<void(WKTypeRef)>&& completionHandler) { 2085 auto context = new CompletionHandler<void(WKTypeRef)>(WTFMove(completionHandler)); 2086 WKCookieManagerSetHTTPCookieAcceptPolicy(WKContextGetCookieManager(this->context()), policy, context, [] (WKErrorRef error, void* context) { 2087 auto completionHandlerPointer = static_cast<CompletionHandler<void(WKTypeRef)>*>(context); 2088 (*completionHandlerPointer)(nullptr); 2089 delete completionHandlerPointer; 2090 }); 2091 }; 2092 2093 if (WKStringIsEqualToUTF8CString(messageName, "SetAlwaysAcceptCookies")) { 2094 WKBooleanRef accept = static_cast<WKBooleanRef>(messageBody); 2095 WKHTTPCookieAcceptPolicy policy = WKBooleanGetValue(accept) ? kWKHTTPCookieAcceptPolicyAlways : kWKHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain; 2096 return setHTTPCookieAcceptPolicy(policy, WTFMove(completionHandler)); 2097 } 2098 2099 if (WKStringIsEqualToUTF8CString(messageName, "SetOnlyAcceptFirstPartyCookies")) { 2100 WKBooleanRef accept = static_cast<WKBooleanRef>(messageBody); 2101 WKHTTPCookieAcceptPolicy policy = WKBooleanGetValue(accept) ? kWKHTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain : kWKHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain; 2102 return setHTTPCookieAcceptPolicy(policy, WTFMove(completionHandler)); 2103 } 2104 2105 completionHandler(m_currentInvocation->didReceiveSynchronousMessageFromInjectedBundle(messageName, messageBody).get()); 2076 2106 } 2077 2107 -
trunk/Tools/WebKitTestRunner/TestController.h
r246118 r246856 378 378 // WKContextInjectedBundleClient 379 379 static void didReceiveMessageFromInjectedBundle(WKContextRef, WKStringRef messageName, WKTypeRef messageBody, const void*); 380 static void didReceiveSynchronousMessageFromInjectedBundle (WKContextRef, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData, const void*);380 static void didReceiveSynchronousMessageFromInjectedBundleWithListener(WKContextRef, WKStringRef messageName, WKTypeRef messageBody, WKMessageListenerRef, const void*); 381 381 static WKTypeRef getInjectedBundleInitializationUserData(WKContextRef, const void *clientInfo); 382 382 383 383 // WKPageInjectedBundleClient 384 384 static void didReceivePageMessageFromInjectedBundle(WKPageRef, WKStringRef messageName, WKTypeRef messageBody, const void*); 385 static void didReceiveSynchronousPageMessageFromInjectedBundle (WKPageRef, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData, const void*);385 static void didReceiveSynchronousPageMessageFromInjectedBundleWithListener(WKPageRef, WKStringRef messageName, WKTypeRef messageBody, WKMessageListenerRef, const void*); 386 386 void didReceiveMessageFromInjectedBundle(WKStringRef messageName, WKTypeRef messageBody); 387 WKRetainPtr<WKTypeRef> didReceiveSynchronousMessageFromInjectedBundle(WKStringRef messageName, WKTypeRef messageBody);387 void didReceiveSynchronousMessageFromInjectedBundle(WKStringRef messageName, WKTypeRef messageBody, WKMessageListenerRef); 388 388 WKRetainPtr<WKTypeRef> getInjectedBundleInitializationUserData(); 389 389 -
trunk/Tools/WebKitTestRunner/TestInvocation.cpp
r245280 r246856 165 165 TestController::singleton().setShouldLogHistoryClientCallbacks(shouldLogHistoryClientCallbacks()); 166 166 167 WKCookieManagerSetHTTPCookieAcceptPolicy(WKContextGetCookieManager(TestController::singleton().context()), kWKHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain );167 WKCookieManagerSetHTTPCookieAcceptPolicy(WKContextGetCookieManager(TestController::singleton().context()), kWKHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain, nullptr, nullptr); 168 168 169 169 // FIXME: We should clear out visited links here. … … 905 905 } 906 906 907 if (WKStringIsEqualToUTF8CString(messageName, "SetAlwaysAcceptCookies")) {908 WKBooleanRef accept = static_cast<WKBooleanRef>(messageBody);909 WKHTTPCookieAcceptPolicy policy = WKBooleanGetValue(accept) ? kWKHTTPCookieAcceptPolicyAlways : kWKHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain;910 // FIXME: This updates the policy in WebProcess and in NetworkProcess asynchronously, which might break some tests' expectations.911 WKCookieManagerSetHTTPCookieAcceptPolicy(WKContextGetCookieManager(TestController::singleton().context()), policy);912 return nullptr;913 }914 915 if (WKStringIsEqualToUTF8CString(messageName, "SetOnlyAcceptFirstPartyCookies")) {916 WKBooleanRef accept = static_cast<WKBooleanRef>(messageBody);917 WKHTTPCookieAcceptPolicy policy = WKBooleanGetValue(accept) ? kWKHTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain : kWKHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain;918 // FIXME: This updates the policy in WebProcess and in NetworkProcess asynchronously, which might break some tests' expectations.919 WKCookieManagerSetHTTPCookieAcceptPolicy(WKContextGetCookieManager(TestController::singleton().context()), policy);920 return nullptr;921 }922 923 907 if (WKStringIsEqualToUTF8CString(messageName, "SetCustomUserAgent")) { 924 908 WKStringRef userAgent = static_cast<WKStringRef>(messageBody);
Note: See TracChangeset
for help on using the changeset viewer.