WebDriver: Set Cookie endpoint does not correctly set subdomain cookies
authordrousso@apple.com <drousso@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 15 Apr 2019 19:49:08 +0000 (19:49 +0000)
committerdrousso@apple.com <drousso@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 15 Apr 2019 19:49:08 +0000 (19:49 +0000)
https://bugs.webkit.org/show_bug.cgi?id=196872
<rdar://problem/49233240>

Reviewed by Joseph Pecoraro.

* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::addSingleCookie):
Rather than try to "force" the cookie to be set on the current active URL, use the cookie
itself to figure out which domain it should be set on.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@244281 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp

index 63f9638..2dacca6 100644 (file)
@@ -1,3 +1,16 @@
+2019-04-15  Devin Rousso  <drousso@apple.com>
+
+        WebDriver: Set Cookie endpoint does not correctly set subdomain cookies
+        https://bugs.webkit.org/show_bug.cgi?id=196872
+        <rdar://problem/49233240>
+
+        Reviewed by Joseph Pecoraro.
+
+        * UIProcess/Automation/WebAutomationSession.cpp:
+        (WebKit::WebAutomationSession::addSingleCookie):
+        Rather than try to "force" the cookie to be set on the current active URL, use the cookie
+        itself to figure out which domain it should be set on.
+
 2019-04-15  Philippe Normand  <pnormand@igalia.com>
 
         [GTK][WPE] Add enable-media websetting
index b95a65f..ac745a6 100644 (file)
@@ -1351,10 +1351,7 @@ void WebAutomationSession::addSingleCookie(const String& browsingContextHandle,
         ASYNC_FAIL_WITH_PREDEFINED_ERROR_AND_DETAILS(MissingParameter, "The parameter 'httpOnly' was not found.");
 
     WebCookieManagerProxy* cookieManager = m_processPool->supplement<WebCookieManagerProxy>();
-
-    // FIXME: Using activeURL here twice is basically saying "this is always in the context of the main document"
-    // which probably isn't accurate.
-    cookieManager->setCookies(page->websiteDataStore().sessionID(), { cookie }, activeURL, activeURL, [callback = callback.copyRef()](CallbackBase::Error error) {
+    cookieManager->setCookies(page->websiteDataStore().sessionID(), { cookie }, [callback = callback.copyRef()](CallbackBase::Error error) {
         if (error == CallbackBase::Error::None)
             callback->sendSuccess();
         else