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

Side by Side Diff: chrome/browser/supervised_user/child_accounts/permission_request_creator_apiary.cc

Issue 1360153003: Improve logging for PermissionRequestCreatorApiary errors. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/supervised_user/child_accounts/permission_request_creat or_apiary.h" 5 #include "chrome/browser/supervised_user/child_accounts/permission_request_creat or_apiary.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 std::string body; 192 std::string body;
193 base::JSONWriter::Write(dict, &body); 193 base::JSONWriter::Write(dict, &body);
194 (*it)->url_fetcher->SetUploadData("application/json", body); 194 (*it)->url_fetcher->SetUploadData("application/json", body);
195 195
196 (*it)->url_fetcher->Start(); 196 (*it)->url_fetcher->Start();
197 } 197 }
198 198
199 void PermissionRequestCreatorApiary::OnGetTokenFailure( 199 void PermissionRequestCreatorApiary::OnGetTokenFailure(
200 const OAuth2TokenService::Request* request, 200 const OAuth2TokenService::Request* request,
201 const GoogleServiceAuthError& error) { 201 const GoogleServiceAuthError& error) {
202 VLOG(1) << "Couldn't get token";
203 RequestIterator it = requests_.begin(); 202 RequestIterator it = requests_.begin();
204 while (it != requests_.end()) { 203 while (it != requests_.end()) {
205 if (request == (*it)->access_token_request.get()) 204 if (request == (*it)->access_token_request.get())
206 break; 205 break;
207 ++it; 206 ++it;
208 } 207 }
209 DCHECK(it != requests_.end()); 208 DCHECK(it != requests_.end());
210 (*it)->callback.Run(false); 209 LOG(WARNING) << "Token error: " << error.ToString();
211 requests_.erase(it); 210 DispatchResult(it, false);
212 } 211 }
213 212
214 void PermissionRequestCreatorApiary::OnURLFetchComplete( 213 void PermissionRequestCreatorApiary::OnURLFetchComplete(
215 const URLFetcher* source) { 214 const URLFetcher* source) {
216 RequestIterator it = requests_.begin(); 215 RequestIterator it = requests_.begin();
217 while (it != requests_.end()) { 216 while (it != requests_.end()) {
218 if (source == (*it)->url_fetcher.get()) 217 if (source == (*it)->url_fetcher.get())
219 break; 218 break;
220 ++it; 219 ++it;
221 } 220 }
222 DCHECK(it != requests_.end()); 221 DCHECK(it != requests_.end());
223 222
224 const net::URLRequestStatus& status = source->GetStatus(); 223 const net::URLRequestStatus& status = source->GetStatus();
225 if (!status.is_success()) { 224 if (!status.is_success()) {
226 DispatchNetworkError(it, status.error()); 225 LOG(WARNING) << "Network error " << status.error();
226 DispatchResult(it, false);
227 return; 227 return;
228 } 228 }
229 229
230 int response_code = source->GetResponseCode(); 230 int response_code = source->GetResponseCode();
231 if (response_code == net::HTTP_UNAUTHORIZED && !(*it)->access_token_expired) { 231 if (response_code == net::HTTP_UNAUTHORIZED && !(*it)->access_token_expired) {
232 (*it)->access_token_expired = true; 232 (*it)->access_token_expired = true;
233 OAuth2TokenService::ScopeSet scopes; 233 OAuth2TokenService::ScopeSet scopes;
234 scopes.insert(GetApiScope()); 234 scopes.insert(GetApiScope());
235 oauth2_token_service_->InvalidateAccessToken(account_id_, scopes, 235 oauth2_token_service_->InvalidateAccessToken(account_id_, scopes,
236 (*it)->access_token); 236 (*it)->access_token);
237 StartFetching(*it); 237 StartFetching(*it);
238 return; 238 return;
239 } 239 }
240 240
241 if (response_code != net::HTTP_OK) { 241 if (response_code != net::HTTP_OK) {
242 LOG(WARNING) << "HTTP error " << response_code; 242 LOG(WARNING) << "HTTP error " << response_code;
243 DispatchGoogleServiceAuthError( 243 DispatchResult(it, false);
244 it, GoogleServiceAuthError(GoogleServiceAuthError::CONNECTION_FAILED));
245 return; 244 return;
246 } 245 }
247 246
248 std::string response_body; 247 std::string response_body;
249 source->GetResponseAsString(&response_body); 248 source->GetResponseAsString(&response_body);
250 scoped_ptr<base::Value> value = base::JSONReader::Read(response_body); 249 scoped_ptr<base::Value> value = base::JSONReader::Read(response_body);
251 base::DictionaryValue* dict = NULL; 250 base::DictionaryValue* dict = NULL;
252 if (!value || !value->GetAsDictionary(&dict)) { 251 if (!value || !value->GetAsDictionary(&dict)) {
253 DispatchNetworkError(it, net::ERR_INVALID_RESPONSE); 252 LOG(WARNING) << "Invalid top-level dictionary";
253 DispatchResult(it, false);
254 return; 254 return;
255 } 255 }
256 base::DictionaryValue* permission_dict = NULL; 256 base::DictionaryValue* permission_dict = NULL;
257 if (!dict->GetDictionary(kPermissionRequestKey, &permission_dict)) { 257 if (!dict->GetDictionary(kPermissionRequestKey, &permission_dict)) {
258 DispatchNetworkError(it, net::ERR_INVALID_RESPONSE); 258 LOG(WARNING) << "Permission request not found";
259 DispatchResult(it, false);
259 return; 260 return;
260 } 261 }
261 std::string id; 262 std::string id;
262 if (!permission_dict->GetString(kIdKey, &id)) { 263 if (!permission_dict->GetString(kIdKey, &id)) {
263 DispatchNetworkError(it, net::ERR_INVALID_RESPONSE); 264 LOG(WARNING) << "Key not found";
Marc Treib 2015/09/23 14:23:31 s/Key/ID/g
Bernhard Bauer 2015/09/23 15:10:03 Done.
265 DispatchResult(it, false);
264 return; 266 return;
265 } 267 }
266 (*it)->callback.Run(true); 268 DispatchResult(it, true);
269 }
270
271 void PermissionRequestCreatorApiary::DispatchResult(RequestIterator it,
272 bool success) {
273 (*it)->callback.Run(success);
267 requests_.erase(it); 274 requests_.erase(it);
268 } 275 }
269
270 void PermissionRequestCreatorApiary::DispatchNetworkError(RequestIterator it,
271 int error_code) {
272 DispatchGoogleServiceAuthError(
273 it, GoogleServiceAuthError::FromConnectionError(error_code));
274 }
275
276 void PermissionRequestCreatorApiary::DispatchGoogleServiceAuthError(
277 RequestIterator it,
278 const GoogleServiceAuthError& error) {
279 VLOG(1) << "GoogleServiceAuthError: " << error.ToString();
280 (*it)->callback.Run(false);
281 requests_.erase(it);
282 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698