Index: google_apis/gaia/gaia_auth_fetcher.cc |
diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc |
index dcc6eb4e2aefe6c59eff45c4d6791dfe39476ccd..b72118ce14df988b9f9ba0bfdac6f5f0033c23fb 100644 |
--- a/google_apis/gaia/gaia_auth_fetcher.cc |
+++ b/google_apis/gaia/gaia_auth_fetcher.cc |
@@ -219,14 +219,16 @@ void GaiaAuthFetcher::CancelRequest() { |
fetch_pending_ = false; |
} |
-void GaiaAuthFetcher::CreateAndStartGaiaFetcher(const std::string& body, |
- const std::string& headers, |
- const GURL& gaia_gurl, |
- int load_flags) { |
+void GaiaAuthFetcher::CreateAndStartGaiaFetcher( |
+ const std::string& body, |
+ const std::string& headers, |
+ const GURL& gaia_gurl, |
+ int load_flags, |
+ const net::NetworkTrafficAnnotationTag& traffic_annotation) { |
DCHECK(!fetch_pending_) << "Tried to fetch two things at once!"; |
fetcher_ = net::URLFetcher::Create( |
0, gaia_gurl, body.empty() ? net::URLFetcher::GET : net::URLFetcher::POST, |
- this); |
+ this, traffic_annotation); |
fetcher_->SetRequestContext(getter_); |
fetcher_->SetUploadData("application/x-www-form-urlencoded", body); |
gaia::MarkURLFetcherAsGaia(fetcher_.get()); |
@@ -519,8 +521,31 @@ void GaiaAuthFetcher::StartIssueAuthToken(const std::string& sid, |
VLOG(1) << "Starting IssueAuthToken for: " << service; |
requested_service_ = service; |
request_body_ = MakeIssueAuthTokenBody(sid, lsid, service); |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
msarda
2017/05/15 12:23:49
Here and everywhere else: Chrome - Google authenti
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ description: "..." |
+ trigger: "..." |
+ data: "..." |
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
+ cookies_store: "..." |
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(request_body_, std::string(), |
- issue_auth_token_gurl_, kLoadFlagsIgnoreCookies); |
+ issue_auth_token_gurl_, kLoadFlagsIgnoreCookies, |
+ traffic_annotation); |
} |
void GaiaAuthFetcher::StartRevokeOAuth2Token(const std::string& auth_token) { |
@@ -528,8 +553,30 @@ void GaiaAuthFetcher::StartRevokeOAuth2Token(const std::string& auth_token) { |
VLOG(1) << "Starting OAuth2 token revocation"; |
request_body_ = MakeRevokeTokenBody(auth_token); |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
+ description: "..." |
msarda
2017/05/15 12:23:50
This request revokes an OAuth2 refresh token.
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ trigger: "..." |
msarda
2017/05/15 12:23:48
Here and everywhere else: Same as the comment belo
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ data: "..." |
msarda
2017/05/15 12:23:48
The OAuth2 refresh token that should be revoked.
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
msarda
2017/05/15 12:23:50
false
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ cookies_store: "..." |
msarda
2017/05/15 12:23:48
Remove.
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(request_body_, std::string(), oauth2_revoke_gurl_, |
- kLoadFlagsIgnoreCookies); |
+ kLoadFlagsIgnoreCookies, traffic_annotation); |
} |
void GaiaAuthFetcher::StartCookieForOAuthLoginTokenExchange( |
@@ -575,9 +622,31 @@ void GaiaAuthFetcher::StartCookieForOAuthLoginTokenExchange( |
} |
fetch_token_from_auth_code_ = fetch_token_from_auth_code; |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
msarda
2017/05/15 12:23:49
What is "gaia_auth_" used for?
Ramin Halavati
2017/05/15 13:27:48
It's the unique_id of this request, it can be used
|
+ semantics { |
+ sender: "Gaia Auth API" |
+ description: "..." |
msarda
2017/05/15 12:23:50
This request exchanges exchange the cookies of a G
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ trigger: "..." |
+ data: "..." |
msarda
2017/05/15 12:23:50
This request includes the following data: the Goog
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
msarda
2017/05/15 12:23:49
true
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ cookies_store: "..." |
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(std::string(), device_id_header, |
client_login_to_oauth2_gurl_.Resolve(query_string), |
- net::LOAD_NORMAL); |
+ net::LOAD_NORMAL, traffic_annotation); |
} |
void GaiaAuthFetcher::StartAuthCodeForOAuth2TokenExchange( |
@@ -592,8 +661,30 @@ void GaiaAuthFetcher::StartAuthCodeForOAuth2TokenExchangeWithDeviceId( |
VLOG(1) << "Starting OAuth token pair fetch"; |
request_body_ = MakeGetTokenPairBody(auth_code, device_id); |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
+ description: "..." |
msarda
2017/05/15 12:23:49
This request exchanges an authorization code for a
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ trigger: "..." |
+ data: "..." |
msarda
2017/05/15 12:23:50
This request includes the following data:
* the Go
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
msarda
2017/05/15 12:23:49
false
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ cookies_store: "..." |
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(request_body_, std::string(), oauth2_token_gurl_, |
- kLoadFlagsIgnoreCookies); |
+ kLoadFlagsIgnoreCookies, traffic_annotation); |
} |
void GaiaAuthFetcher::StartGetUserInfo(const std::string& lsid) { |
@@ -601,8 +692,30 @@ void GaiaAuthFetcher::StartGetUserInfo(const std::string& lsid) { |
VLOG(1) << "Starting GetUserInfo for lsid=" << lsid; |
request_body_ = MakeGetUserInfoBody(lsid); |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
+ description: "..." |
msarda
2017/05/15 12:23:50
This request fetches user information of a Google
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ trigger: "..." |
msarda
2017/05/15 12:23:50
This fetcher is only used after signing in with a
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ data: "..." |
msarda
2017/05/15 12:23:48
The value of the Google authentication LSID cookie
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
msarda
2017/05/15 12:23:49
false
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ cookies_store: "..." |
msarda
2017/05/15 12:23:50
?
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(request_body_, std::string(), get_user_info_gurl_, |
- kLoadFlagsIgnoreCookies); |
+ kLoadFlagsIgnoreCookies, traffic_annotation); |
} |
void GaiaAuthFetcher::StartMergeSession(const std::string& uber_token, |
@@ -622,9 +735,31 @@ void GaiaAuthFetcher::StartMergeSession(const std::string& uber_token, |
std::string continue_url("http://www.google.com"); |
std::string query = MakeMergeSessionQuery(uber_token, external_cc_result, |
continue_url, source_); |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
+ description: "..." |
msarda
2017/05/15 12:23:49
This request adds an account to the Google authent
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ trigger: "..." |
+ data: "..." |
msarda
2017/05/15 12:23:50
This request includes the following data:
* the us
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
msarda
2017/05/15 12:23:48
true
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ cookies_store: "..." |
msarda
2017/05/15 12:23:48
?
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(std::string(), std::string(), |
merge_session_gurl_.Resolve(query), |
- net::LOAD_NORMAL); |
+ net::LOAD_NORMAL, traffic_annotation); |
} |
void GaiaAuthFetcher::StartTokenFetchForUberAuthExchange( |
@@ -638,8 +773,31 @@ void GaiaAuthFetcher::StartTokenFetchForUberAuthExchange( |
base::StringPrintf(kOAuthHeaderFormat, access_token.c_str()); |
int load_flags = |
is_bound_to_channel_id ? net::LOAD_NORMAL : kLoadFlagsIgnoreCookies; |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
msarda
2017/05/15 12:23:48
Here and everywhere else: Chrome - Google authenti
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ description: "..." |
msarda
2017/05/15 12:23:49
This request exchanges an Oauth2 access token for
Ramin Halavati
2017/05/15 13:27:48
Please elaborate more for a non-technical reader.
|
+ trigger: "..." |
msarda
2017/05/15 12:23:49
Same as the comment below at StartGetCheckConnecti
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ data: "..." |
msarda
2017/05/15 12:23:49
This request contains an OAuth2 access token.
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
msarda
2017/05/15 12:23:49
true or false
Ramin Halavati
2017/05/15 13:27:49
Done, let's write 'True' is it's the privacy conce
|
+ cookies_store: "..." |
msarda
2017/05/15 12:23:49
What should this be?
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(std::string(), authentication_header, |
- uberauth_token_gurl_, load_flags); |
+ uberauth_token_gurl_, load_flags, |
+ traffic_annotation); |
} |
void GaiaAuthFetcher::StartOAuthLogin(const std::string& access_token, |
@@ -649,31 +807,121 @@ void GaiaAuthFetcher::StartOAuthLogin(const std::string& access_token, |
request_body_ = MakeOAuthLoginBody(service, source_); |
std::string authentication_header = |
base::StringPrintf(kOAuth2BearerHeaderFormat, access_token.c_str()); |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
msarda
2017/05/15 12:23:48
Chrome - Google authentication API.
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ description: "..." |
msarda
2017/05/15 12:23:50
This request exchanges an OAuthLogin-scoped oauth2
Ramin Halavati
2017/05/15 13:27:50
Please elaborate for a less technical reader.
|
+ trigger: "..." |
msarda
2017/05/15 12:23:50
Same as the comment below at StartGetCheckConnecti
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ data: "..." |
msarda
2017/05/15 12:23:48
This request contains an OAuth2 access token and t
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
+ cookies_store: "..." |
msarda
2017/05/15 12:23:50
Here and everywhere else: What should this be?
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(request_body_, authentication_header, |
- oauth_login_gurl_, net::LOAD_NORMAL); |
+ oauth_login_gurl_, net::LOAD_NORMAL, |
+ traffic_annotation); |
} |
void GaiaAuthFetcher::StartListAccounts() { |
DCHECK(!fetch_pending_) << "Tried to fetch two things at once!"; |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
msarda
2017/05/15 12:23:48
Chrome - Google authentication API.
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ description: "..." |
msarda
2017/05/15 12:23:48
This request is used to list the accounts in the G
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ trigger: "..." |
msarda
2017/05/15 12:23:49
Same as the comment below at StartGetCheckConnecti
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ data: "..." |
msarda
2017/05/15 12:23:50
None.
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
msarda
2017/05/15 12:23:49
true
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ cookies_store: "..." |
msarda
2017/05/15 12:23:50
What should this be?
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(" ", // To force an HTTP POST. |
"Origin: https://www.google.com", |
- list_accounts_gurl_, net::LOAD_NORMAL); |
+ list_accounts_gurl_, net::LOAD_NORMAL, |
+ traffic_annotation); |
} |
void GaiaAuthFetcher::StartLogOut() { |
DCHECK(!fetch_pending_) << "Tried to fetch two things at once!"; |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
msarda
2017/05/15 12:23:50
Chrome - Google authentication API.
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ description: "..." |
msarda
2017/05/15 12:23:49
This request is part of the Chrome - Google authen
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ trigger: "..." |
msarda
2017/05/15 12:23:48
Same as the comment below at StartGetCheckConnecti
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ data: "..." |
msarda
2017/05/15 12:23:50
None.
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
msarda
2017/05/15 12:23:49
true
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ cookies_store: "..." |
msarda
2017/05/15 12:23:50
What should this be?
Ramin Halavati
2017/05/15 13:27:50
If you don't modify it, the default is 'user'.
|
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(std::string(), logout_headers_, logout_gurl_, |
- net::LOAD_NORMAL); |
+ net::LOAD_NORMAL, traffic_annotation); |
} |
void GaiaAuthFetcher::StartGetCheckConnectionInfo() { |
DCHECK(!fetch_pending_) << "Tried to fetch two things at once!"; |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
msarda
2017/05/15 12:23:48
Chrome - Google authentication API.
Ramin Halavati
2017/05/15 13:27:49
Done.
|
+ description: "..." |
msarda
2017/05/15 12:23:49
This request is used to fetch from the Google auth
Ramin Halavati
2017/05/15 13:27:49
Could you please elaborate on the description?
|
+ trigger: "..." |
msarda
2017/05/15 12:23:48
It is not clear to me what to say here:
1. This is
Ramin Halavati
2017/05/15 13:27:48
I didn't get the description clearly, let's contin
|
+ data: "..." |
msarda
2017/05/15 12:23:50
None
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
msarda
2017/05/15 12:23:49
false
Ramin Halavati
2017/05/15 13:27:48
Done.
|
+ cookies_store: "..." |
msarda
2017/05/15 12:23:50
Remove line
Ramin Halavati
2017/05/15 13:27:50
Done.
|
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(std::string(), std::string(), |
get_check_connection_info_url_, |
- kLoadFlagsIgnoreCookies); |
+ kLoadFlagsIgnoreCookies, traffic_annotation); |
} |
void GaiaAuthFetcher::StartListIDPSessions(const std::string& scopes, |
msarda
2017/05/15 12:23:49
It looks like this method is never used - I would
Ramin Halavati
2017/05/15 13:27:48
Done.
|
@@ -682,8 +930,30 @@ void GaiaAuthFetcher::StartListIDPSessions(const std::string& scopes, |
request_body_ = MakeListIDPSessionsBody(scopes, domain); |
requested_service_ = kListIdpServiceRequested; |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
+ description: "..." |
+ trigger: "..." |
+ data: "..." |
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
+ cookies_store: "..." |
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(request_body_, std::string(), oauth2_iframe_url_, |
- net::LOAD_NORMAL); |
+ net::LOAD_NORMAL, traffic_annotation); |
} |
void GaiaAuthFetcher::StartGetTokenResponse(const std::string& scopes, |
msarda
2017/05/15 12:23:50
It looks like this method is never used - I would
Ramin Halavati
2017/05/15 13:27:49
Done.
|
@@ -693,8 +963,30 @@ void GaiaAuthFetcher::StartGetTokenResponse(const std::string& scopes, |
request_body_ = MakeGetTokenResponseBody(scopes, domain, login_hint); |
requested_service_ = kGetTokenResponseRequested; |
+ net::NetworkTrafficAnnotationTag traffic_annotation = |
+ net::DefineNetworkTrafficAnnotation("gaia_auth_", R"( |
+ semantics { |
+ sender: "Gaia Auth API" |
+ description: "..." |
+ trigger: "..." |
+ data: "..." |
+ destination: GOOGLE_OWNED_SERVICE |
+ } |
+ policy { |
+ cookies_allowed: false/true |
+ cookies_store: "..." |
+ setting: |
+ "This feature cannot be disabled in settings, but if user signs " |
+ "out of Chrome, this request would not be made." |
+ chrome_policy { |
+ SigninAllowed { |
+ policy_options {mode: MANDATORY} |
+ SigninAllowed: false |
+ } |
+ } |
+ })"); |
CreateAndStartGaiaFetcher(request_body_, std::string(), oauth2_iframe_url_, |
- net::LOAD_NORMAL); |
+ net::LOAD_NORMAL, traffic_annotation); |
} |
// static |