WebKit Bugzilla
Attachment 372585 Details for
Bug 199081
: Make HTTPCookieAcceptPolicy an enum class
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-199081-20190620144203.patch (text/plain), 15.43 KB, created by
Alex Christensen
on 2019-06-20 14:42:04 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2019-06-20 14:42:04 PDT
Size:
15.43 KB
patch
obsolete
>Subversion Revision: 246630 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 59b8c976aeb838cc490016581e876f64931b77f3..93e0fe417a45a6e32d699c4e8158978c96b9ce77 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,36 @@ >+2019-06-20 Alex Christensen <achristensen@webkit.org> >+ >+ Make HTTPCookieAcceptPolicy an enum class >+ https://bugs.webkit.org/show_bug.cgi?id=199081 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Doing so reveals some interesting bugs in the C API that are also fixed: >+ WKPreferencesGetIncrementalRenderingSuppressionTimeout was using its toAPI function to convert a double to a double because HTTPCookieAcceptPolicy used to be an unsigned integer. >+ toAPI(WebCore::MouseButton) was also using the toAPI(HTTPCookieAcceptPolicy) because HTTPCookieAcceptPolicy used to be an unsigned integer. >+ Yikes! Type safety is our friend. >+ >+ * NetworkProcess/Cookies/WebCookieManager.messages.in: >+ * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: >+ (WebKit::toCFHTTPCookieStorageAcceptPolicy): >+ (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): >+ (WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy): >+ * Shared/API/c/WKSharedAPICast.h: >+ (WebKit::toAPI): >+ * Shared/HTTPCookieAcceptPolicy.h: >+ (): Deleted. >+ * UIProcess/API/C/WKAPICast.h: >+ (WebKit::toHTTPCookieAcceptPolicy): >+ (WebKit::toAPI): >+ * UIProcess/API/C/WKPreferences.cpp: >+ (WKPreferencesGetIncrementalRenderingSuppressionTimeout): >+ * UIProcess/API/Cocoa/WKProcessPool.mm: >+ (toHTTPCookieAcceptPolicy): >+ * UIProcess/WebCookieManagerProxy.cpp: >+ (WebKit::WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy): >+ * UIProcess/WebCookieManagerProxy.h: >+ * UIProcess/WebCookieManagerProxy.messages.in: >+ > 2019-06-19 Dean Jackson <dino@apple.com> > > No menu pop-up when long pressing on a link in Firefox app >diff --git a/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in b/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in >index 05bf2436181ea9041472f882eef0ed6af7ca1d77..518d11cffe22d6d76257ad8e266bd4bd235d68d3 100644 >--- a/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in >+++ b/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in >@@ -35,7 +35,7 @@ > void DeleteCookie(PAL::SessionID sessionID, struct WebCore::Cookie cookie, WebKit::CallbackID callbackID) > void DeleteAllCookiesModifiedSince(PAL::SessionID sessionID, WallTime time, WebKit::CallbackID callbackID) > >- void SetHTTPCookieAcceptPolicy(uint32_t policy, WebKit::OptionalCallbackID callbackID) >+ void SetHTTPCookieAcceptPolicy(enum:uint8_t WebKit::HTTPCookieAcceptPolicy policy, WebKit::OptionalCallbackID callbackID) > void GetHTTPCookieAcceptPolicy(WebKit::CallbackID callbackID) > > void StartObservingCookieChanges(PAL::SessionID sessionID) >diff --git a/Source/WebKit/NetworkProcess/Cookies/mac/WebCookieManagerMac.mm b/Source/WebKit/NetworkProcess/Cookies/mac/WebCookieManagerMac.mm >index 7148e71a0eba01bc9bcb8f6d42d8c93f69714e06..804150bbcf442df9df738b83d148530d37016116 100644 >--- a/Source/WebKit/NetworkProcess/Cookies/mac/WebCookieManagerMac.mm >+++ b/Source/WebKit/NetworkProcess/Cookies/mac/WebCookieManagerMac.mm >@@ -35,6 +35,22 @@ > namespace WebKit { > using namespace WebCore; > >+static CFHTTPCookieStorageAcceptPolicy toCFHTTPCookieStorageAcceptPolicy(HTTPCookieAcceptPolicy policy) >+{ >+ switch (policy) { >+ case HTTPCookieAcceptPolicy::Always: >+ return CFHTTPCookieStorageAcceptPolicyAlways; >+ case HTTPCookieAcceptPolicy::Never: >+ return CFHTTPCookieStorageAcceptPolicyNever; >+ case HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain: >+ return CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain; >+ case HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain: >+ return CFHTTPCookieStorageAcceptPolicyExclusivelyFromMainDocumentDomain; >+ } >+ ASSERT_NOT_REACHED(); >+ return CFHTTPCookieStorageAcceptPolicyAlways; >+} >+ > void WebCookieManager::platformSetHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy policy) > { > ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); >@@ -43,7 +59,7 @@ void WebCookieManager::platformSetHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy > > m_process.forEachNetworkStorageSession([&] (const auto& networkStorageSession) { > if (auto cookieStorage = networkStorageSession.cookieStorage()) >- CFHTTPCookieStorageSetCookieAcceptPolicy(cookieStorage.get(), policy); >+ CFHTTPCookieStorageSetCookieAcceptPolicy(cookieStorage.get(), toCFHTTPCookieStorageAcceptPolicy(policy)); > }); > } > >@@ -51,7 +67,19 @@ HTTPCookieAcceptPolicy WebCookieManager::platformGetHTTPCookieAcceptPolicy() > { > ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); > >- return [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookieAcceptPolicy]; >+ switch ([[NSHTTPCookieStorage sharedHTTPCookieStorage] cookieAcceptPolicy]) { >+ case NSHTTPCookieAcceptPolicyAlways: >+ return HTTPCookieAcceptPolicy::Always; >+ case NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain: >+ return HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain; >+ case NSHTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain: >+ return HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain; >+ case NSHTTPCookieAcceptPolicyNever: >+ return HTTPCookieAcceptPolicy::Never; >+ } >+ >+ ASSERT_NOT_REACHED(); >+ return HTTPCookieAcceptPolicy::Always; > } > > } // namespace WebKit >diff --git a/Source/WebKit/Shared/API/c/WKSharedAPICast.h b/Source/WebKit/Shared/API/c/WKSharedAPICast.h >index 0d87e969493719d19a22f5cf49e9b610f1b36f4a..18cceb211b2631adf7adb8a47443ed49e386ef30 100644 >--- a/Source/WebKit/Shared/API/c/WKSharedAPICast.h >+++ b/Source/WebKit/Shared/API/c/WKSharedAPICast.h >@@ -55,6 +55,7 @@ > #include <WebCore/FrameLoaderTypes.h> > #include <WebCore/IntRect.h> > #include <WebCore/LayoutMilestone.h> >+#include <WebCore/PlatformMouseEvent.h> > #include <WebCore/SecurityOrigin.h> > #include <WebCore/UserContentTypes.h> > #include <WebCore/UserScriptTypes.h> >@@ -319,6 +320,28 @@ inline WKEventMouseButton toAPI(WebMouseEvent::Button mouseButton) > return wkMouseButton; > } > >+inline WKEventMouseButton toAPI(WebCore::MouseButton mouseButton) >+{ >+ WKEventMouseButton wkMouseButton = kWKEventMouseButtonNoButton; >+ >+ switch (mouseButton) { >+ case WebCore::MouseButton::NoButton: >+ wkMouseButton = kWKEventMouseButtonNoButton; >+ break; >+ case WebCore::MouseButton::LeftButton: >+ wkMouseButton = kWKEventMouseButtonLeftButton; >+ break; >+ case WebCore::MouseButton::MiddleButton: >+ wkMouseButton = kWKEventMouseButtonMiddleButton; >+ break; >+ case WebCore::MouseButton::RightButton: >+ wkMouseButton = kWKEventMouseButtonRightButton; >+ break; >+ } >+ >+ return wkMouseButton; >+} >+ > inline WKContextMenuItemTag toAPI(WebCore::ContextMenuAction action) > { > switch (action) { >diff --git a/Source/WebKit/Shared/HTTPCookieAcceptPolicy.h b/Source/WebKit/Shared/HTTPCookieAcceptPolicy.h >index 4fe81b3c39bcfb247b6ee75ec401510d787f7243..d58ab337bb3effd8cabbd68dd069b41af2bfd30d 100644 >--- a/Source/WebKit/Shared/HTTPCookieAcceptPolicy.h >+++ b/Source/WebKit/Shared/HTTPCookieAcceptPolicy.h >@@ -23,19 +23,29 @@ > * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > */ > >-#ifndef HTTPCookieAcceptPolicy_h >-#define HTTPCookieAcceptPolicy_h >+#pragma once > > namespace WebKit { > >-enum { >- HTTPCookieAcceptPolicyAlways = 0, >- HTTPCookieAcceptPolicyNever = 1, >- HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain = 2, >- HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain = 3, >+enum class HTTPCookieAcceptPolicy : uint8_t { >+ Always = 0, >+ Never = 1, >+ OnlyFromMainDocumentDomain = 2, >+ ExclusivelyFromMainDocumentDomain = 3, > }; >-typedef unsigned HTTPCookieAcceptPolicy; > > } // namespace WebKit > >-#endif // HTTPCookieAcceptPolicy_h >+namespace WTF { >+ >+template<> struct EnumTraits<WebKit::HTTPCookieAcceptPolicy> { >+ using values = EnumValues< >+ WebKit::HTTPCookieAcceptPolicy, >+ WebKit::HTTPCookieAcceptPolicy::Always, >+ WebKit::HTTPCookieAcceptPolicy::Never, >+ WebKit::HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain, >+ WebKit::HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain >+ >; >+}; >+ >+} >diff --git a/Source/WebKit/UIProcess/API/C/WKAPICast.h b/Source/WebKit/UIProcess/API/C/WKAPICast.h >index a30d59793b6b4dd5ede330535e7f5b5b41d4f636..d5c4c50f29d9a961d2d10d658f125233ad3f6998 100644 >--- a/Source/WebKit/UIProcess/API/C/WKAPICast.h >+++ b/Source/WebKit/UIProcess/API/C/WKAPICast.h >@@ -367,29 +367,29 @@ inline HTTPCookieAcceptPolicy toHTTPCookieAcceptPolicy(WKHTTPCookieAcceptPolicy > { > switch (policy) { > case kWKHTTPCookieAcceptPolicyAlways: >- return HTTPCookieAcceptPolicyAlways; >+ return HTTPCookieAcceptPolicy::Always; > case kWKHTTPCookieAcceptPolicyNever: >- return HTTPCookieAcceptPolicyNever; >+ return HTTPCookieAcceptPolicy::Never; > case kWKHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain: >- return HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain; >+ return HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain; > case kWKHTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain: >- return HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain; >+ return HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain; > } > > ASSERT_NOT_REACHED(); >- return HTTPCookieAcceptPolicyAlways; >+ return HTTPCookieAcceptPolicy::Always; > } > > inline WKHTTPCookieAcceptPolicy toAPI(HTTPCookieAcceptPolicy policy) > { > switch (policy) { >- case HTTPCookieAcceptPolicyAlways: >+ case HTTPCookieAcceptPolicy::Always: > return kWKHTTPCookieAcceptPolicyAlways; >- case HTTPCookieAcceptPolicyNever: >+ case HTTPCookieAcceptPolicy::Never: > return kWKHTTPCookieAcceptPolicyNever; >- case HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain: >+ case HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain: > return kWKHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain; >- case HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain: >+ case HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain: > return kWKHTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain; > } > >diff --git a/Source/WebKit/UIProcess/API/C/WKPreferences.cpp b/Source/WebKit/UIProcess/API/C/WKPreferences.cpp >index 460187abb85f4c2939a6c6030435ea8ea765db41..a031798defbfd860f1aae28b2b2d61ca5e2156b0 100644 >--- a/Source/WebKit/UIProcess/API/C/WKPreferences.cpp >+++ b/Source/WebKit/UIProcess/API/C/WKPreferences.cpp >@@ -1307,7 +1307,7 @@ void WKPreferencesSetIncrementalRenderingSuppressionTimeout(WKPreferencesRef pre > > double WKPreferencesGetIncrementalRenderingSuppressionTimeout(WKPreferencesRef preferencesRef) > { >- return toAPI(toImpl(preferencesRef)->incrementalRenderingSuppressionTimeout()); >+ return toImpl(preferencesRef)->incrementalRenderingSuppressionTimeout(); > } > > void WKPreferencesSetThreadedScrollingEnabled(WKPreferencesRef preferencesRef, bool enabled) >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm b/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm >index b0ac76bef1229d0b3f07fe86f971ab31c60461b9..ab0b51b4919a66d97f16418ba0e868ae147c59da 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm >@@ -207,17 +207,17 @@ static WebKit::HTTPCookieAcceptPolicy toHTTPCookieAcceptPolicy(NSHTTPCookieAccep > { > switch (static_cast<NSUInteger>(policy)) { > case NSHTTPCookieAcceptPolicyAlways: >- return WebKit::HTTPCookieAcceptPolicyAlways; >+ return WebKit::HTTPCookieAcceptPolicy::Always; > case NSHTTPCookieAcceptPolicyNever: >- return WebKit::HTTPCookieAcceptPolicyNever; >+ return WebKit::HTTPCookieAcceptPolicy::Never; > case NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain: >- return WebKit::HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain; >+ return WebKit::HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain; > case NSHTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain: >- return WebKit::HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain; >+ return WebKit::HTTPCookieAcceptPolicy::ExclusivelyFromMainDocumentDomain; > } > > ASSERT_NOT_REACHED(); >- return WebKit::HTTPCookieAcceptPolicyAlways; >+ return WebKit::HTTPCookieAcceptPolicy::Always; > } > > - (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy >diff --git a/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp b/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp >index b144b9ecb62ad6381f58ebd481b25d31aa0f5c7b..7432880e9e3360af5adfaaa26de7a7d450c8be65 100644 >--- a/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp >+++ b/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp >@@ -258,7 +258,7 @@ void WebCookieManagerProxy::getHTTPCookieAcceptPolicy(PAL::SessionID, Function<v > processPool()->sendToNetworkingProcess(Messages::WebCookieManager::GetHTTPCookieAcceptPolicy(callbackID)); > } > >-void WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy(uint32_t policy, WebKit::CallbackID callbackID) >+void WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy policy, WebKit::CallbackID callbackID) > { > m_callbacks.take<HTTPCookieAcceptPolicyCallback>(callbackID)->performCallbackWithReturnValue(policy); > } >diff --git a/Source/WebKit/UIProcess/WebCookieManagerProxy.h b/Source/WebKit/UIProcess/WebCookieManagerProxy.h >index f73f9d051098dafa9a15b54d8cedc9a08a4ff0b0..5eaad28c5665b751d9e3a85c6a46103a83118423 100644 >--- a/Source/WebKit/UIProcess/WebCookieManagerProxy.h >+++ b/Source/WebKit/UIProcess/WebCookieManagerProxy.h >@@ -78,6 +78,7 @@ public: > void getCookies(PAL::SessionID, const URL&, Function<void(const Vector<WebCore::Cookie>&, CallbackBase::Error)>&& completionHandler); > > void setHTTPCookieAcceptPolicy(PAL::SessionID, HTTPCookieAcceptPolicy, Function<void (CallbackBase::Error)>&&); >+ void setHTTPCookieAcceptPolicySynchronouslyForTesting(PAL::SessionID, HTTPCookieAcceptPolicy); > void getHTTPCookieAcceptPolicy(PAL::SessionID, Function<void (HTTPCookieAcceptPolicy, CallbackBase::Error)>&&); > > void setStorageAccessAPIEnabled(bool); >@@ -109,7 +110,7 @@ private: > WebCookieManagerProxy(WebProcessPool*); > > void didGetHostnamesWithCookies(const Vector<String>&, WebKit::CallbackID); >- void didGetHTTPCookieAcceptPolicy(uint32_t policy, WebKit::CallbackID); >+ void didGetHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy, WebKit::CallbackID); > > void didSetHTTPCookieAcceptPolicy(WebKit::CallbackID); > void didSetCookies(WebKit::CallbackID); >diff --git a/Source/WebKit/UIProcess/WebCookieManagerProxy.messages.in b/Source/WebKit/UIProcess/WebCookieManagerProxy.messages.in >index 33df495c394cc998e7a8cf118cbe51851c7a8e07..bb6723c34c5bf3d180ad88404357bb1bb7f24be7 100644 >--- a/Source/WebKit/UIProcess/WebCookieManagerProxy.messages.in >+++ b/Source/WebKit/UIProcess/WebCookieManagerProxy.messages.in >@@ -22,7 +22,7 @@ > > messages -> WebCookieManagerProxy { > DidGetHostnamesWithCookies(Vector<String> hostnames, WebKit::CallbackID callbackID); >- DidGetHTTPCookieAcceptPolicy(uint32_t policy, WebKit::CallbackID callbackID); >+ DidGetHTTPCookieAcceptPolicy(enum:uint8_t WebKit::HTTPCookieAcceptPolicy policy, WebKit::CallbackID callbackID); > > DidSetHTTPCookieAcceptPolicy(WebKit::CallbackID callbackID); > DidDeleteCookies(WebKit::CallbackID callbackID);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 199081
:
372585
|
372588
|
372590
|
372847
|
372855
|
372857