summaryrefslogtreecommitdiff
path: root/chromium/components/signin/core/browser/signin_header_helper.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/signin/core/browser/signin_header_helper.cc')
-rw-r--r--chromium/components/signin/core/browser/signin_header_helper.cc58
1 files changed, 32 insertions, 26 deletions
diff --git a/chromium/components/signin/core/browser/signin_header_helper.cc b/chromium/components/signin/core/browser/signin_header_helper.cc
index 720d7266f01..196dc5aecc0 100644
--- a/chromium/components/signin/core/browser/signin_header_helper.cc
+++ b/chromium/components/signin/core/browser/signin_header_helper.cc
@@ -11,7 +11,6 @@
#include "base/strings/string_split.h"
#include "components/google/core/browser/google_util.h"
#include "components/signin/core/browser/chrome_connected_header_helper.h"
-#include "components/signin/core/browser/cookie_settings_util.h"
#include "google_apis/gaia/gaia_auth_util.h"
#include "net/base/escape.h"
#include "net/url_request/url_request.h"
@@ -65,6 +64,27 @@ DiceResponseParams::EnableSyncInfo::~EnableSyncInfo() {}
DiceResponseParams::EnableSyncInfo::EnableSyncInfo(const EnableSyncInfo&) =
default;
+RequestAdapter::RequestAdapter(net::URLRequest* request) : request_(request) {}
+
+RequestAdapter::~RequestAdapter() = default;
+
+const GURL& RequestAdapter::GetUrl() {
+ return request_->url();
+}
+
+bool RequestAdapter::HasHeader(const std::string& name) {
+ return request_->extra_request_headers().HasHeader(name);
+}
+
+void RequestAdapter::RemoveRequestHeaderByName(const std::string& name) {
+ return request_->RemoveRequestHeaderByName(name);
+}
+
+void RequestAdapter::SetExtraHeaderByName(const std::string& name,
+ const std::string& value) {
+ return request_->SetExtraRequestHeaderByName(name, value, false);
+}
+
std::string BuildMirrorRequestCookieIfPossible(
const GURL& url,
const std::string& account_id,
@@ -76,7 +96,7 @@ std::string BuildMirrorRequestCookieIfPossible(
}
bool SigninHeaderHelper::AppendOrRemoveRequestHeader(
- net::URLRequest* request,
+ RequestAdapter* request,
const GURL& redirect_url,
const char* header_name,
const std::string& header_value) {
@@ -84,15 +104,14 @@ bool SigninHeaderHelper::AppendOrRemoveRequestHeader(
// If the request is being redirected, and it has the account consistency
// header, and current url is a Google URL, and the redirected one is not,
// remove the header.
- if (!redirect_url.is_empty() &&
- request->extra_request_headers().HasHeader(header_name) &&
- IsUrlEligibleForRequestHeader(request->url()) &&
+ if (!redirect_url.is_empty() && request->HasHeader(header_name) &&
+ IsUrlEligibleForRequestHeader(request->GetUrl()) &&
!IsUrlEligibleForRequestHeader(redirect_url)) {
request->RemoveRequestHeaderByName(header_name);
}
return false;
}
- request->SetExtraRequestHeaderByName(header_name, header_value, false);
+ request->SetExtraHeaderByName(header_name, header_value);
return true;
}
@@ -119,28 +138,14 @@ SigninHeaderHelper::ParseAccountConsistencyResponseHeader(
return dictionary;
}
-bool SigninHeaderHelper::ShouldBuildRequestHeader(
- const GURL& url,
- const content_settings::CookieSettings* cookie_settings) {
- // If signin cookies are not allowed, don't add the header.
- if (!SettingsAllowSigninCookies(cookie_settings))
- return false;
-
- // Check if url is eligible for the header.
- if (!IsUrlEligibleForRequestHeader(url))
- return false;
-
- return true;
-}
-
void AppendOrRemoveMirrorRequestHeader(
- net::URLRequest* request,
+ RequestAdapter* request,
const GURL& redirect_url,
const std::string& account_id,
AccountConsistencyMethod account_consistency,
const content_settings::CookieSettings* cookie_settings,
int profile_mode_mask) {
- const GURL& url = redirect_url.is_empty() ? request->url() : redirect_url;
+ const GURL& url = redirect_url.is_empty() ? request->GetUrl() : redirect_url;
ChromeConnectedHeaderHelper chrome_connected_helper(account_consistency);
std::string chrome_connected_header_value;
if (chrome_connected_helper.ShouldBuildRequestHeader(url, cookie_settings)) {
@@ -153,22 +158,23 @@ void AppendOrRemoveMirrorRequestHeader(
}
bool AppendOrRemoveDiceRequestHeader(
- net::URLRequest* request,
+ RequestAdapter* request,
const GURL& redirect_url,
const std::string& account_id,
bool sync_enabled,
bool sync_has_auth_error,
AccountConsistencyMethod account_consistency,
- const content_settings::CookieSettings* cookie_settings) {
+ const content_settings::CookieSettings* cookie_settings,
+ const std::string& device_id) {
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
- const GURL& url = redirect_url.is_empty() ? request->url() : redirect_url;
+ const GURL& url = redirect_url.is_empty() ? request->GetUrl() : redirect_url;
DiceHeaderHelper dice_helper(
!account_id.empty() && sync_has_auth_error && sync_enabled,
account_consistency);
std::string dice_header_value;
if (dice_helper.ShouldBuildRequestHeader(url, cookie_settings)) {
dice_header_value = dice_helper.BuildRequestHeader(
- sync_enabled ? account_id : std::string());
+ sync_enabled ? account_id : std::string(), device_id);
}
return dice_helper.AppendOrRemoveRequestHeader(
request, redirect_url, kDiceRequestHeader, dice_header_value);