Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(773)

Side by Side Diff: chrome/browser/history/web_history_service.cc

Issue 23382008: Making OAuth2TokenService multi-login aware, updating callers, minor fixes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing to include the update to ProfileSyncService: r224220 Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/history/web_history_service.h" 5 #include "chrome/browser/history/web_history_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/json/json_reader.h" 8 #include "base/json/json_reader.h"
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 is_pending_(false) { 74 is_pending_(false) {
75 } 75 }
76 76
77 // Tells the request to do its thang. 77 // Tells the request to do its thang.
78 void Start() { 78 void Start() {
79 OAuth2TokenService::ScopeSet oauth_scopes; 79 OAuth2TokenService::ScopeSet oauth_scopes;
80 oauth_scopes.insert(kHistoryOAuthScope); 80 oauth_scopes.insert(kHistoryOAuthScope);
81 81
82 ProfileOAuth2TokenService* token_service = 82 ProfileOAuth2TokenService* token_service =
83 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); 83 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
84 token_request_ = token_service->StartRequest(oauth_scopes, this); 84 token_request_ = token_service->StartRequest(
85 token_service->GetPrimaryAccountId(), oauth_scopes, this);
85 is_pending_ = true; 86 is_pending_ = true;
86 } 87 }
87 88
88 // content::URLFetcherDelegate interface. 89 // content::URLFetcherDelegate interface.
89 virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE { 90 virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE {
90 DCHECK_EQ(source, url_fetcher_.get()); 91 DCHECK_EQ(source, url_fetcher_.get());
91 response_code_ = url_fetcher_->GetResponseCode(); 92 response_code_ = url_fetcher_->GetResponseCode();
92 93
93 UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebHistory.OAuthTokenResponseCode", 94 UMA_HISTOGRAM_CUSTOM_ENUMERATION("WebHistory.OAuthTokenResponseCode",
94 net::HttpUtil::MapStatusCodeForHistogram(response_code_), 95 net::HttpUtil::MapStatusCodeForHistogram(response_code_),
95 net::HttpUtil::GetStatusCodesForHistogram()); 96 net::HttpUtil::GetStatusCodesForHistogram());
96 97
97 // If the response code indicates that the token might not be valid, 98 // If the response code indicates that the token might not be valid,
98 // invalidate the token and try again. 99 // invalidate the token and try again.
99 if (response_code_ == net::HTTP_UNAUTHORIZED && ++auth_retry_count_ <= 1) { 100 if (response_code_ == net::HTTP_UNAUTHORIZED && ++auth_retry_count_ <= 1) {
100 OAuth2TokenService::ScopeSet oauth_scopes; 101 OAuth2TokenService::ScopeSet oauth_scopes;
101 oauth_scopes.insert(kHistoryOAuthScope); 102 oauth_scopes.insert(kHistoryOAuthScope);
102 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_) 103 ProfileOAuth2TokenService* token_service =
103 ->InvalidateToken(oauth_scopes, access_token_); 104 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
105 token_service->InvalidateToken(token_service->GetPrimaryAccountId(),
106 oauth_scopes,
107 access_token_);
104 108
105 access_token_ = std::string(); 109 access_token_.clear();
106 Start(); 110 Start();
107 return; 111 return;
108 } 112 }
109 url_fetcher_->GetResponseAsString(&response_body_); 113 url_fetcher_->GetResponseAsString(&response_body_);
110 url_fetcher_.reset(); 114 url_fetcher_.reset();
111 is_pending_ = false; 115 is_pending_ = false;
112 callback_.Run(this, true); 116 callback_.Run(this, true);
113 // It is valid for the callback to delete |this|, so do not access any 117 // It is valid for the callback to delete |this|, so do not access any
114 // members below here. 118 // members below here.
115 } 119 }
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 scoped_ptr<DictionaryValue> response_value; 393 scoped_ptr<DictionaryValue> response_value;
390 if (success) { 394 if (success) {
391 response_value = ReadResponse(static_cast<RequestImpl*>(request)); 395 response_value = ReadResponse(static_cast<RequestImpl*>(request));
392 if (response_value) 396 if (response_value)
393 response_value->GetString("version_info", &server_version_info_); 397 response_value->GetString("version_info", &server_version_info_);
394 } 398 }
395 callback.Run(request, response_value.get() && success); 399 callback.Run(request, response_value.get() && success);
396 } 400 }
397 401
398 } // namespace history 402 } // namespace history
OLDNEW
« no previous file with comments | « chrome/browser/google_apis/auth_service.cc ('k') | chrome/browser/invalidation/invalidation_service_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698