diff --git a/libcef/browser/net_service/cookie_helper.cc b/libcef/browser/net_service/cookie_helper.cc index 732804d401f7024b08d27babd4edf94be8798065..6bc1e489249910b1bef365d4808529837ba6c8c1 100644 --- a/libcef/browser/net_service/cookie_helper.cc +++ b/libcef/browser/net_service/cookie_helper.cc @@ -40,7 +40,12 @@ network::mojom::CookieManager* GetCookieManager( } net::CookieOptions GetCookieOptions(const network::ResourceRequest& request, +#ifdef OHOS_NETWORK_LOAD + bool for_loading_cookies, + const absl::optional new_url) { +#else bool for_loading_cookies) { +#endif // OHOS_NETWORK_LOAD // Match the logic from InterceptionJob::FetchCookies and // ChromeContentBrowserClient::ShouldIgnoreSameSiteCookieRestrictionsWhenTopLevel. bool should_treat_as_first_party = @@ -61,6 +66,12 @@ net::CookieOptions GetCookieOptions(const network::ResourceRequest& request, request.navigation_redirect_chain.size() - 1); } +#ifdef OHOS_NETWORK_LOAD + if (new_url.has_value()) { + url_chain.push_back(new_url.value()); + } +#endif // OHOS_NETWORK_LOAD + net::CookieOptions options; options.set_include_httponly(); if (for_loading_cookies) { @@ -259,7 +270,11 @@ void LoadCookies(const CefBrowserContext::Getter& browser_context_getter, CEF_POST_TASK( CEF_UIT, base::BindOnce(LoadCookiesOnUIThread, browser_context_getter, request.url, +#ifdef OHOS_NETWORK_LOAD + GetCookieOptions(request, /*for_loading_cookies=*/true, {}), +#else GetCookieOptions(request, /*for_loading_cookies=*/true), +#endif // OHOS_NETWORK_LOAD net::CookiePartitionKeyCollection(), allow_cookie_callback, std::move(done_callback))); } @@ -316,7 +331,11 @@ void SaveCookies(const CefBrowserContext::Getter& browser_context_getter, CEF_UIT, base::BindOnce( SaveCookiesOnUIThread, browser_context_getter, request.url, +#ifdef OHOS_NETWORK_LOAD + GetCookieOptions(request, /*for_loading_cookies=*/false, {}), +#else GetCookieOptions(request, /*for_loading_cookies=*/false), +#endif // OHOS_NETWORK_LOAD total_count, std::move(allowed_cookies), std::move(done_callback))); } else {