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

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

Issue 12782018: Revert 190531 "Get OAuth2TokenService working on Android." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 8 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 | Annotate | Revision Log
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/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 friend class history::WebHistoryService; 57 friend class history::WebHistoryService;
58 58
59 typedef base::Callback<void(Request*, bool)> CompletionCallback; 59 typedef base::Callback<void(Request*, bool)> CompletionCallback;
60 60
61 RequestImpl(Profile* profile, 61 RequestImpl(Profile* profile,
62 const std::string& url, 62 const std::string& url,
63 const CompletionCallback& callback) 63 const CompletionCallback& callback)
64 : profile_(profile), 64 : profile_(profile),
65 url_(GURL(url)), 65 url_(GURL(url)),
66 response_code_(0), 66 response_code_(0),
67 auth_retry_count_(0),
68 callback_(callback) { 67 callback_(callback) {
69 } 68 }
70 69
71 // Tells the request to do its thang. 70 // Tells the request to do its thang.
72 void Start() { 71 void Start() {
73 OAuth2TokenService::ScopeSet oauth_scopes; 72 OAuth2TokenService::ScopeSet oauth_scopes;
74 oauth_scopes.insert(kHistoryOAuthScope); 73 oauth_scopes.insert(kHistoryOAuthScope);
75 74
76 OAuth2TokenService* token_service = 75 OAuth2TokenService* token_service =
77 OAuth2TokenServiceFactory::GetForProfile(profile_); 76 OAuth2TokenServiceFactory::GetForProfile(profile_);
78 token_request_ = token_service->StartRequest(oauth_scopes, this); 77 token_request_ = token_service->StartRequest(oauth_scopes, this);
79 } 78 }
80 79
81 // content::URLFetcherDelegate interface. 80 // content::URLFetcherDelegate interface.
82 virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE { 81 virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE {
83 DCHECK_EQ(source, url_fetcher_.get()); 82 DCHECK_EQ(source, url_fetcher_.get());
84 response_code_ = url_fetcher_->GetResponseCode(); 83 response_code_ = url_fetcher_->GetResponseCode();
85
86 // If the response code indicates that the token might not be valid,
87 // invalidate the token and try again.
88 if (response_code_ == net::HTTP_UNAUTHORIZED && ++auth_retry_count_ <= 1) {
89 OAuth2TokenService::ScopeSet oauth_scopes;
90 oauth_scopes.insert(kHistoryOAuthScope);
91 OAuth2TokenServiceFactory::GetForProfile(profile_)->InvalidateToken(
92 oauth_scopes, access_token_);
93
94 access_token_ = std::string();
95 Start();
96 return;
97 }
98 url_fetcher_->GetResponseAsString(&response_body_); 84 url_fetcher_->GetResponseAsString(&response_body_);
99 url_fetcher_.reset(); 85 url_fetcher_.reset();
100 callback_.Run(this, true); 86 callback_.Run(this, true);
101 } 87 }
102 88
103 // OAuth2TokenService::Consumer interface. 89 // OAuth2TokenService::Consumer interface.
104 virtual void OnGetTokenSuccess( 90 virtual void OnGetTokenSuccess(
105 const OAuth2TokenService::Request* request, 91 const OAuth2TokenService::Request* request,
106 const std::string& access_token, 92 const std::string& access_token,
107 const base::Time& expiration_time) OVERRIDE { 93 const base::Time& expiration_time) OVERRIDE {
108 token_request_.reset(); 94 token_request_.reset();
109 DCHECK(!access_token.empty()); 95 DCHECK(!access_token.empty());
110 access_token_ = access_token;
111 96
112 // Got an access token -- start the actual API request. 97 // Got an access token -- start the actual API request.
113 url_fetcher_.reset(CreateUrlFetcher(access_token)); 98 url_fetcher_.reset(CreateUrlFetcher(access_token));
114 url_fetcher_->Start(); 99 url_fetcher_->Start();
115 } 100 }
116 101
117 virtual void OnGetTokenFailure( 102 virtual void OnGetTokenFailure(
118 const OAuth2TokenService::Request* request, 103 const OAuth2TokenService::Request* request,
119 const GoogleServiceAuthError& error) OVERRIDE { 104 const GoogleServiceAuthError& error) OVERRIDE {
120 token_request_.reset(); 105 token_request_.reset();
(...skipping 27 matching lines...) Expand all
148 133
149 // The URL of the API endpoint. 134 // The URL of the API endpoint.
150 GURL url_; 135 GURL url_;
151 136
152 // POST data to be sent with the request (may be empty). 137 // POST data to be sent with the request (may be empty).
153 std::string post_data_; 138 std::string post_data_;
154 139
155 // The OAuth2 access token request. 140 // The OAuth2 access token request.
156 scoped_ptr<OAuth2TokenService::Request> token_request_; 141 scoped_ptr<OAuth2TokenService::Request> token_request_;
157 142
158 // The current OAuth2 access token.
159 std::string access_token_;
160
161 // Handles the actual API requests after the OAuth token is acquired. 143 // Handles the actual API requests after the OAuth token is acquired.
162 scoped_ptr<net::URLFetcher> url_fetcher_; 144 scoped_ptr<net::URLFetcher> url_fetcher_;
163 145
164 // Holds the response code received from the server. 146 // Holds the response code received from the server.
165 int response_code_; 147 int response_code_;
166 148
167 // Holds the response body received from the server. 149 // Holds the response body received from the server.
168 std::string response_body_; 150 std::string response_body_;
169 151
170 // The number of times this request has already been retried due to
171 // authorization problems.
172 int auth_retry_count_;
173
174 // The callback to execute when the query is complete. 152 // The callback to execute when the query is complete.
175 CompletionCallback callback_; 153 CompletionCallback callback_;
176 }; 154 };
177 155
178 // Called when a query to web history has completed, successfully or not. 156 // Called when a query to web history has completed, successfully or not.
179 void QueryHistoryCompletionCallback( 157 void QueryHistoryCompletionCallback(
180 const WebHistoryService::QueryWebHistoryCallback& callback, 158 const WebHistoryService::QueryWebHistoryCallback& callback,
181 WebHistoryService::Request* request, 159 WebHistoryService::Request* request,
182 bool success) { 160 bool success) {
183 RequestImpl* request_impl = static_cast<RequestImpl*>(request); 161 RequestImpl* request_impl = static_cast<RequestImpl*>(request);
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 base::Time end_time, 296 base::Time end_time,
319 const ExpireWebHistoryCallback& callback) { 297 const ExpireWebHistoryCallback& callback) {
320 std::vector<ExpireHistoryArgs> expire_list(1); 298 std::vector<ExpireHistoryArgs> expire_list(1);
321 expire_list.back().urls = restrict_urls; 299 expire_list.back().urls = restrict_urls;
322 expire_list.back().begin_time = begin_time; 300 expire_list.back().begin_time = begin_time;
323 expire_list.back().end_time = end_time; 301 expire_list.back().end_time = end_time;
324 return ExpireHistory(expire_list, callback); 302 return ExpireHistory(expire_list, callback);
325 } 303 }
326 304
327 } // namespace history 305 } // namespace history
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698