diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2023-11-06 11:35:47 +0100 |
---|---|---|
committer | Szabolcs David <davidsz@inf.u-szeged.hu> | 2023-11-09 09:39:42 +0000 |
commit | 6cc1a258491f9501996c229753ea6319b4f1d48c (patch) | |
tree | 72120f8a2ef8da54b3e462d9158e234bee4eb286 | |
parent | 9c95f28ffa92d6c353a01c827dc7f55a16896d54 (diff) |
FIXUP: Add first_party_url for net::SiteForCookies116-based
From the following change, Chromium uses the StorageKey type to
determine the site_for_cookies member of service worker requests:
https://chromium-review.googlesource.com/c/chromium/src/+/4496784
In the special cases of service workers, WebEngine deduces first
party URL from site_for_cookies. This is where the
jsServiceWorker() auto test started to fail, because StorageKey
uses a trimmed top level URL instead of the full URL (as our
tests expect).
Extend the SiteForCookies type to store a full URL to bring back
the old behavior.
Change-Id: I8d9e8707e8bba9941e2951bf80b30641c91dc741
Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/516345
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r-- | chromium/net/cookies/site_for_cookies.cc | 5 | ||||
-rw-r--r-- | chromium/net/cookies/site_for_cookies.h | 2 | ||||
-rw-r--r-- | chromium/third_party/blink/common/storage_key/storage_key.cc | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/chromium/net/cookies/site_for_cookies.cc b/chromium/net/cookies/site_for_cookies.cc index 22e4b88279e..06562291e31 100644 --- a/chromium/net/cookies/site_for_cookies.cc +++ b/chromium/net/cookies/site_for_cookies.cc @@ -15,8 +15,9 @@ namespace net { SiteForCookies::SiteForCookies() = default; -SiteForCookies::SiteForCookies(const SchemefulSite& site) - : site_(site), schemefully_same_(!site.opaque()) { +SiteForCookies::SiteForCookies(const SchemefulSite& site, const GURL first_party_url) + : site_(site), schemefully_same_(!site.opaque()) + , first_party_url_(first_party_url) { site_.ConvertWebSocketToHttp(); } diff --git a/chromium/net/cookies/site_for_cookies.h b/chromium/net/cookies/site_for_cookies.h index 6a3d02dd140..d10a2c6c665 100644 --- a/chromium/net/cookies/site_for_cookies.h +++ b/chromium/net/cookies/site_for_cookies.h @@ -44,7 +44,7 @@ class NET_EXPORT SiteForCookies { SiteForCookies(const SiteForCookies& other); SiteForCookies(SiteForCookies&& other); - explicit SiteForCookies(const SchemefulSite& schemeful_site); + explicit SiteForCookies(const SchemefulSite& schemeful_site, const GURL first_party_url = GURL()); ~SiteForCookies(); diff --git a/chromium/third_party/blink/common/storage_key/storage_key.cc b/chromium/third_party/blink/common/storage_key/storage_key.cc index 512880ba4af..d17644f03a2 100644 --- a/chromium/third_party/blink/common/storage_key/storage_key.cc +++ b/chromium/third_party/blink/common/storage_key/storage_key.cc @@ -776,7 +776,7 @@ const net::SiteForCookies StorageKey::ToNetSiteForCookies() const { } // Otherwise we are in a first party context. - return net::SiteForCookies(top_level_site_); + return net::SiteForCookies(top_level_site_, origin_.GetFullURL()); } const net::IsolationInfo StorageKey::ToPartialNetIsolationInfo() const { |