WebKit Bugzilla
Attachment 361383 Details for
Bug 191645
: [Curl] Implement Cookie Accept Policy.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-191645-20190207172607.patch (text/plain), 10.64 KB, created by
Takashi Komori
on 2019-02-07 00:29:03 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Takashi Komori
Created:
2019-02-07 00:29:03 PST
Size:
10.64 KB
patch
obsolete
>Subversion Revision: 240947 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 0cf299f3fe9709f00a54a5c80ca1c00546d42cfc..97543c60d8ee111f6e74256d677892712bb046aa 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,23 @@ >+2019-02-07 Takashi Komori <Takashi.Komori@sony.com> >+ >+ [Curl] Implement Cookie Accept Policy. >+ https://bugs.webkit.org/show_bug.cgi?id=191645 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ No new tests since no behavior change. >+ >+ * platform/network/curl/CookieJarCurl.cpp: >+ (WebCore::CookieJarCurl::setCookieAcceptPolicy const): >+ (WebCore::CookieJarCurl::cookieAcceptPolicy const): >+ * platform/network/curl/CookieJarCurl.h: >+ * platform/network/curl/CookieJarDB.cpp: >+ (WebCore::CookieJarDB::isEnabled const): >+ (WebCore::CookieJarDB::setAcceptPolicy): >+ (WebCore::CookieJarDB::setEnabled): Deleted. >+ * platform/network/curl/CookieJarDB.h: >+ (WebCore::CookieJarDB::acceptPolicy const): >+ > 2019-02-04 Justin Fan <justin_fan@apple.com> > > [Web GPU] Code clean-up for RenderPipeline backend >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 7815f293cfd0ac39cb2d8c2a46312aa1693481cb..9876c67a2c2b99a7fb51d2bfcfc25905013b357f 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,14 @@ >+2019-02-07 Takashi Komori <Takashi.Komori@sony.com> >+ >+ [Curl] Implement Cookie Accept Policy. >+ https://bugs.webkit.org/show_bug.cgi?id=191645 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * NetworkProcess/Cookies/curl/WebCookieManagerCurl.cpp: >+ (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): >+ (WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy): >+ > 2019-02-04 Benjamin Poulain <benjamin@webkit.org> > > Use deferrable timer to restart the Responsiveness Timer on each wheel event >diff --git a/Source/WebCore/platform/network/curl/CookieJarCurl.cpp b/Source/WebCore/platform/network/curl/CookieJarCurl.cpp >index f9b45e8b506e765941214f59a937579ba910dbe0..495e979701d10bfbfafda5bca58fbaa020c5f493 100644 >--- a/Source/WebCore/platform/network/curl/CookieJarCurl.cpp >+++ b/Source/WebCore/platform/network/curl/CookieJarCurl.cpp >@@ -98,6 +98,17 @@ std::pair<String, bool> CookieJarCurl::cookieRequestHeaderFieldValue(const Netwo > return cookieRequestHeaderFieldValue(session, headerFieldProxy.firstParty, headerFieldProxy.sameSiteInfo, headerFieldProxy.url, headerFieldProxy.frameID, headerFieldProxy.pageID, headerFieldProxy.includeSecureCookies); > } > >+void CookieJarCurl::setCookieAcceptPolicy(const NetworkStorageSession& session, CookieAcceptPolicy policy) const >+{ >+ auto& cookieJarDB = session.cookieDatabase(); >+ cookieJarDB.setAcceptPolicy(policy); >+} >+ >+CookieAcceptPolicy CookieJarCurl::cookieAcceptPolicy(const NetworkStorageSession& session) const >+{ >+ return session.cookieDatabase().acceptPolicy(); >+} >+ > bool CookieJarCurl::cookiesEnabled(const NetworkStorageSession& session) const > { > return session.cookieDatabase().isEnabled(); >diff --git a/Source/WebCore/platform/network/curl/CookieJarCurl.h b/Source/WebCore/platform/network/curl/CookieJarCurl.h >index f1a4c789579d01e3b01376ae94d04d0cdc448dc6..168fadd4f04685396cce498d02ef5967d3abfd29 100644 >--- a/Source/WebCore/platform/network/curl/CookieJarCurl.h >+++ b/Source/WebCore/platform/network/curl/CookieJarCurl.h >@@ -37,12 +37,15 @@ enum class IncludeSecureCookies : bool; > struct Cookie; > struct CookieRequestHeaderFieldProxy; > struct SameSiteInfo; >+enum class CookieAcceptPolicy; > > class CookieJarCurl { > public: > std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) const; > void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) const; > void setCookiesFromHTTPResponse(const NetworkStorageSession&, const URL&, const String&) const; >+ void setCookieAcceptPolicy(const NetworkStorageSession&, CookieAcceptPolicy) const; >+ CookieAcceptPolicy cookieAcceptPolicy(const NetworkStorageSession&) const; > bool cookiesEnabled(const NetworkStorageSession&) const; > std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) const; > std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const CookieRequestHeaderFieldProxy&) const; >diff --git a/Source/WebCore/platform/network/curl/CookieJarDB.cpp b/Source/WebCore/platform/network/curl/CookieJarDB.cpp >index 26362288b869d8c7bb3417f76f40b63cc57f7a79..9e3dad851ad9e3fc2b11806994482eb1d705d1e4 100644 >--- a/Source/WebCore/platform/network/curl/CookieJarDB.cpp >+++ b/Source/WebCore/platform/network/curl/CookieJarDB.cpp >@@ -81,11 +81,6 @@ namespace WebCore { > static constexpr int schemaVersion = 1; > > >-void CookieJarDB::setEnabled(bool enable) >-{ >- m_isEnabled = enable; >-} >- > CookieJarDB::CookieJarDB(const String& databasePath) > : m_databasePath(databasePath) > { >@@ -308,7 +303,13 @@ bool CookieJarDB::isEnabled() const > if (m_databasePath.isEmpty()) > return false; > >- return m_isEnabled; >+ return (m_acceptPolicy != CookieAcceptPolicy::Never); >+} >+ >+void CookieJarDB::setAcceptPolicy(CookieAcceptPolicy policy) >+{ >+ // FIXME : Support cookie policy. >+ m_acceptPolicy = policy; > } > > Optional<Vector<Cookie>> CookieJarDB::searchCookies(const String& requestUrl, const Optional<bool>& httpOnly, const Optional<bool>& secure, const Optional<bool>& session) >diff --git a/Source/WebCore/platform/network/curl/CookieJarDB.h b/Source/WebCore/platform/network/curl/CookieJarDB.h >index de58032e335ad89bb03893c30e0420a5665ee9e7..fd2a02c56112a23daabe9caf8ebcdfce8f831b81 100644 >--- a/Source/WebCore/platform/network/curl/CookieJarDB.h >+++ b/Source/WebCore/platform/network/curl/CookieJarDB.h >@@ -36,6 +36,13 @@ > > namespace WebCore { > >+enum class CookieAcceptPolicy { >+ Always, >+ Never, >+ OnlyFromMainDocumentDomain, >+ ExclusivelyFromMainDocumentDomain >+}; >+ > class CookieJarDB { > WTF_MAKE_NONCOPYABLE(CookieJarDB); > >@@ -44,9 +51,12 @@ public: > Network, > Script > }; >+ > void open(); > bool isEnabled() const; >- void setEnabled(bool); >+ >+ void setAcceptPolicy(CookieAcceptPolicy); >+ CookieAcceptPolicy acceptPolicy() const { return m_acceptPolicy; } > > Optional<Vector<Cookie>> searchCookies(const String& requestUrl, const Optional<bool>& httpOnly, const Optional<bool>& secure, const Optional<bool>& session); > bool setCookie(const String& url, const String& cookie, Source); >@@ -60,8 +70,7 @@ public: > WEBCORE_EXPORT ~CookieJarDB(); > > private: >- >- bool m_isEnabled { true }; >+ CookieAcceptPolicy m_acceptPolicy { CookieAcceptPolicy::Always }; > String m_databasePath; > > bool m_detectedDatabaseCorruption { false }; >diff --git a/Source/WebKit/NetworkProcess/Cookies/curl/WebCookieManagerCurl.cpp b/Source/WebKit/NetworkProcess/Cookies/curl/WebCookieManagerCurl.cpp >index eb6bff1fcae02bc50da7be5a4bc091cf67dc9b27..4a829c26461551a7bd5f2b00326db56c6139e360 100644 >--- a/Source/WebKit/NetworkProcess/Cookies/curl/WebCookieManagerCurl.cpp >+++ b/Source/WebKit/NetworkProcess/Cookies/curl/WebCookieManagerCurl.cpp >@@ -26,16 +26,51 @@ > #include "config.h" > #include "WebCookieManager.h" > >+#include "NetworkProcess.h" >+#include <WebCore/NetworkStorageSession.h> >+ > namespace WebKit { > > using namespace WebCore; > >-void WebCookieManager::platformSetHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy) >+void WebCookieManager::platformSetHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy policy) > { >+ CookieAcceptPolicy curlPolicy = CookieAcceptPolicy::OnlyFromMainDocumentDomain; >+ switch (policy) { >+ case HTTPCookieAcceptPolicyAlways: >+ curlPolicy = CookieAcceptPolicy::Always; >+ break; >+ case HTTPCookieAcceptPolicyNever: >+ curlPolicy = CookieAcceptPolicy::Never; >+ break; >+ case HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain: >+ curlPolicy = CookieAcceptPolicy::OnlyFromMainDocumentDomain; >+ break; >+ case HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain: >+ curlPolicy = CookieAcceptPolicy::ExclusivelyFromMainDocumentDomain; >+ break; >+ } >+ >+ m_process.forEachNetworkStorageSession([curlPolicy] (const auto& networkStorageSession) { >+ networkStorageSession.cookieStorage().setCookieAcceptPolicy(networkStorageSession, curlPolicy); >+ }); > } > > HTTPCookieAcceptPolicy WebCookieManager::platformGetHTTPCookieAcceptPolicy() > { >+ const auto& networkStorageSession = m_process.defaultStorageSession(); >+ switch (networkStorageSession.cookieStorage().cookieAcceptPolicy(networkStorageSession)) { >+ case CookieAcceptPolicy::Always: >+ return HTTPCookieAcceptPolicyAlways; >+ case CookieAcceptPolicy::Never: >+ return HTTPCookieAcceptPolicyNever; >+ case CookieAcceptPolicy::OnlyFromMainDocumentDomain: >+ return HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain; >+ case CookieAcceptPolicy::ExclusivelyFromMainDocumentDomain: >+ return HTTPCookieAcceptPolicyExclusivelyFromMainDocumentDomain; >+ } >+ >+ ASSERT_NOT_REACHED(); > return HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain; > } > >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 2a1dd5f32349981493007a534c4f2c1c47c95ab9..b58d7301e8b982431aa79d7c929a8cd72ba65a6a 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,12 @@ >+2019-02-07 Takashi Komori <Takashi.Komori@sony.com> >+ >+ [Curl] Implement Cookie Accept Policy. >+ https://bugs.webkit.org/show_bug.cgi?id=191645 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * TestWebKitAPI/Tests/WebCore/curl/Cookies.cpp: >+ > 2019-02-04 Zalan Bujtas <zalan@apple.com> > > [First paint] Adjust "finishedParsingMainDocument" flag by taking deferred and async scripts into account. >diff --git a/Tools/TestWebKitAPI/Tests/WebCore/curl/Cookies.cpp b/Tools/TestWebKitAPI/Tests/WebCore/curl/Cookies.cpp >index b40b0d5a0a5e5fb5f4919a3da2c2fed6fcbc1c4e..4627498e1409b628659a40dec03e7caf6141f667 100644 >--- a/Tools/TestWebKitAPI/Tests/WebCore/curl/Cookies.cpp >+++ b/Tools/TestWebKitAPI/Tests/WebCore/curl/Cookies.cpp >@@ -46,7 +46,7 @@ public: > > m_cookieJar = std::make_unique<WebCore::CookieJarDB>(FileSystem::pathByAppendingComponent(m_cookieDirectory, "cookiedb.sql")); > m_cookieJar->open(); >- m_cookieJar->setEnabled(true); >+ m_cookieJar->setAcceptPolicy(CookieAcceptPolicy::Always); > } > > void TearDown() final
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 191645
:
361383
|
362282
|
362283
|
362288
|
362484
|
362682
|
362684
|
362979
|
363211
|
363220
|
363499
|
363580
|
363593
|
363599
|
363614