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

Side by Side Diff: chrome/browser/google_apis/base_requests.cc

Issue 18316002: Move URLRequestContextGetter to RequestSender in c/b/google_apis. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 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/google_apis/base_requests.h" 5 #include "chrome/browser/google_apis/base_requests.h"
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "base/task_runner_util.h" 10 #include "base/task_runner_util.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 void ParseJson(const std::string& json, const ParseJsonCallback& callback) { 83 void ParseJson(const std::string& json, const ParseJsonCallback& callback) {
84 base::PostTaskAndReplyWithResult( 84 base::PostTaskAndReplyWithResult(
85 BrowserThread::GetBlockingPool(), 85 BrowserThread::GetBlockingPool(),
86 FROM_HERE, 86 FROM_HERE,
87 base::Bind(&ParseJsonOnBlockingPool, json), 87 base::Bind(&ParseJsonOnBlockingPool, json),
88 callback); 88 callback);
89 } 89 }
90 90
91 //============================ UrlFetchRequestBase =========================== 91 //============================ UrlFetchRequestBase ===========================
92 92
93 UrlFetchRequestBase::UrlFetchRequestBase( 93 UrlFetchRequestBase::UrlFetchRequestBase(RequestSender* sender)
94 RequestSender* sender, 94 : re_authenticate_count_(0),
95 net::URLRequestContextGetter* url_request_context_getter)
96 : url_request_context_getter_(url_request_context_getter),
97 re_authenticate_count_(0),
98 sender_(sender), 95 sender_(sender),
99 save_temp_file_(false), 96 save_temp_file_(false),
100 weak_ptr_factory_(this) { 97 weak_ptr_factory_(this) {
101 } 98 }
102 99
103 UrlFetchRequestBase::~UrlFetchRequestBase() {} 100 UrlFetchRequestBase::~UrlFetchRequestBase() {}
104 101
105 void UrlFetchRequestBase::Start(const std::string& access_token, 102 void UrlFetchRequestBase::Start(const std::string& access_token,
106 const std::string& custom_user_agent, 103 const std::string& custom_user_agent,
107 const ReAuthenticateCallback& callback) { 104 const ReAuthenticateCallback& callback) {
108 DCHECK(CalledOnValidThread()); 105 DCHECK(CalledOnValidThread());
109 DCHECK(url_request_context_getter_);
110 DCHECK(!access_token.empty()); 106 DCHECK(!access_token.empty());
111 DCHECK(!callback.is_null()); 107 DCHECK(!callback.is_null());
112 DCHECK(re_authenticate_callback_.is_null()); 108 DCHECK(re_authenticate_callback_.is_null());
113 109
114 re_authenticate_callback_ = callback; 110 re_authenticate_callback_ = callback;
115 111
116 GURL url = GetURL(); 112 GURL url = GetURL();
117 if (url.is_empty()) { 113 if (url.is_empty()) {
118 // Error is found on generating the url. Send the error message to the 114 // Error is found on generating the url. Send the error message to the
119 // callback, and then return immediately without trying to connect 115 // callback, and then return immediately without trying to connect
120 // to the server. 116 // to the server.
121 RunCallbackOnPrematureFailure(GDATA_OTHER_ERROR); 117 RunCallbackOnPrematureFailure(GDATA_OTHER_ERROR);
122 return; 118 return;
123 } 119 }
124 DVLOG(1) << "URL: " << url.spec(); 120 DVLOG(1) << "URL: " << url.spec();
125 121
126 URLFetcher::RequestType request_type = GetRequestType(); 122 URLFetcher::RequestType request_type = GetRequestType();
127 url_fetcher_.reset( 123 url_fetcher_.reset(
128 URLFetcher::Create(url, request_type, this)); 124 URLFetcher::Create(url, request_type, this));
129 url_fetcher_->SetRequestContext(url_request_context_getter_); 125 url_fetcher_->SetRequestContext(sender_->url_request_context_getter());
130 // Always set flags to neither send nor save cookies. 126 // Always set flags to neither send nor save cookies.
131 url_fetcher_->SetLoadFlags( 127 url_fetcher_->SetLoadFlags(
132 net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES | 128 net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES |
133 net::LOAD_DISABLE_CACHE); 129 net::LOAD_DISABLE_CACHE);
134 if (save_temp_file_) { 130 if (save_temp_file_) {
135 url_fetcher_->SaveResponseToTemporaryFile( 131 url_fetcher_->SaveResponseToTemporaryFile(
136 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE)); 132 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE));
137 } else if (!output_file_path_.empty()) { 133 } else if (!output_file_path_.empty()) {
138 url_fetcher_->SaveResponseToFileAtPath( 134 url_fetcher_->SaveResponseToFileAtPath(
139 output_file_path_, 135 output_file_path_,
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 sender_->RequestFinished(this); 261 sender_->RequestFinished(this);
266 } 262 }
267 263
268 base::WeakPtr<AuthenticatedRequestInterface> 264 base::WeakPtr<AuthenticatedRequestInterface>
269 UrlFetchRequestBase::GetWeakPtr() { 265 UrlFetchRequestBase::GetWeakPtr() {
270 return weak_ptr_factory_.GetWeakPtr(); 266 return weak_ptr_factory_.GetWeakPtr();
271 } 267 }
272 268
273 //============================ EntryActionRequest ============================ 269 //============================ EntryActionRequest ============================
274 270
275 EntryActionRequest::EntryActionRequest( 271 EntryActionRequest::EntryActionRequest(RequestSender* sender,
276 RequestSender* runner, 272 const EntryActionCallback& callback)
277 net::URLRequestContextGetter* url_request_context_getter, 273 : UrlFetchRequestBase(sender),
278 const EntryActionCallback& callback)
279 : UrlFetchRequestBase(runner, url_request_context_getter),
280 callback_(callback) { 274 callback_(callback) {
281 DCHECK(!callback_.is_null()); 275 DCHECK(!callback_.is_null());
282 } 276 }
283 277
284 EntryActionRequest::~EntryActionRequest() {} 278 EntryActionRequest::~EntryActionRequest() {}
285 279
286 void EntryActionRequest::ProcessURLFetchResults(const URLFetcher* source) { 280 void EntryActionRequest::ProcessURLFetchResults(const URLFetcher* source) {
287 GDataErrorCode code = GetErrorCode(source); 281 GDataErrorCode code = GetErrorCode(source);
288 callback_.Run(code); 282 callback_.Run(code);
289 const bool success = true; 283 const bool success = true;
290 OnProcessURLFetchResultsComplete(success); 284 OnProcessURLFetchResultsComplete(success);
291 } 285 }
292 286
293 void EntryActionRequest::RunCallbackOnPrematureFailure(GDataErrorCode code) { 287 void EntryActionRequest::RunCallbackOnPrematureFailure(GDataErrorCode code) {
294 callback_.Run(code); 288 callback_.Run(code);
295 } 289 }
296 290
297 //============================== GetDataRequest ============================== 291 //============================== GetDataRequest ==============================
298 292
299 GetDataRequest::GetDataRequest( 293 GetDataRequest::GetDataRequest(RequestSender* sender,
300 RequestSender* runner, 294 const GetDataCallback& callback)
301 net::URLRequestContextGetter* url_request_context_getter, 295 : UrlFetchRequestBase(sender),
302 const GetDataCallback& callback)
303 : UrlFetchRequestBase(runner, url_request_context_getter),
304 callback_(callback), 296 callback_(callback),
305 weak_ptr_factory_(this) { 297 weak_ptr_factory_(this) {
306 DCHECK(!callback_.is_null()); 298 DCHECK(!callback_.is_null());
307 } 299 }
308 300
309 GetDataRequest::~GetDataRequest() {} 301 GetDataRequest::~GetDataRequest() {}
310 302
311 void GetDataRequest::ParseResponse(GDataErrorCode fetch_error_code, 303 void GetDataRequest::ParseResponse(GDataErrorCode fetch_error_code,
312 const std::string& data) { 304 const std::string& data) {
313 DCHECK(CalledOnValidThread()); 305 DCHECK(CalledOnValidThread());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 354
363 void GetDataRequest::RunCallbackOnSuccess(GDataErrorCode fetch_error_code, 355 void GetDataRequest::RunCallbackOnSuccess(GDataErrorCode fetch_error_code,
364 scoped_ptr<base::Value> value) { 356 scoped_ptr<base::Value> value) {
365 DCHECK(CalledOnValidThread()); 357 DCHECK(CalledOnValidThread());
366 callback_.Run(fetch_error_code, value.Pass()); 358 callback_.Run(fetch_error_code, value.Pass());
367 } 359 }
368 360
369 //========================= InitiateUploadRequestBase ======================== 361 //========================= InitiateUploadRequestBase ========================
370 362
371 InitiateUploadRequestBase::InitiateUploadRequestBase( 363 InitiateUploadRequestBase::InitiateUploadRequestBase(
372 RequestSender* runner, 364 RequestSender* sender,
373 net::URLRequestContextGetter* url_request_context_getter,
374 const InitiateUploadCallback& callback, 365 const InitiateUploadCallback& callback,
375 const std::string& content_type, 366 const std::string& content_type,
376 int64 content_length) 367 int64 content_length)
377 : UrlFetchRequestBase(runner, url_request_context_getter), 368 : UrlFetchRequestBase(sender),
378 callback_(callback), 369 callback_(callback),
379 content_type_(content_type), 370 content_type_(content_type),
380 content_length_(content_length) { 371 content_length_(content_length) {
381 DCHECK(!callback_.is_null()); 372 DCHECK(!callback_.is_null());
382 DCHECK(!content_type_.empty()); 373 DCHECK(!content_type_.empty());
383 DCHECK_GE(content_length_, 0); 374 DCHECK_GE(content_length_, 0);
384 } 375 }
385 376
386 InitiateUploadRequestBase::~InitiateUploadRequestBase() {} 377 InitiateUploadRequestBase::~InitiateUploadRequestBase() {}
387 378
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 : code(code), 420 : code(code),
430 start_position_received(start_position_received), 421 start_position_received(start_position_received),
431 end_position_received(end_position_received) { 422 end_position_received(end_position_received) {
432 } 423 }
433 424
434 UploadRangeResponse::~UploadRangeResponse() { 425 UploadRangeResponse::~UploadRangeResponse() {
435 } 426 }
436 427
437 //========================== UploadRangeRequestBase ========================== 428 //========================== UploadRangeRequestBase ==========================
438 429
439 UploadRangeRequestBase::UploadRangeRequestBase( 430 UploadRangeRequestBase::UploadRangeRequestBase(RequestSender* sender,
440 RequestSender* runner, 431 const GURL& upload_url)
441 net::URLRequestContextGetter* url_request_context_getter, 432 : UrlFetchRequestBase(sender),
442 const GURL& upload_url)
443 : UrlFetchRequestBase(runner, url_request_context_getter),
444 upload_url_(upload_url), 433 upload_url_(upload_url),
445 weak_ptr_factory_(this) { 434 weak_ptr_factory_(this) {
446 } 435 }
447 436
448 UploadRangeRequestBase::~UploadRangeRequestBase() {} 437 UploadRangeRequestBase::~UploadRangeRequestBase() {}
449 438
450 GURL UploadRangeRequestBase::GetURL() const { 439 GURL UploadRangeRequestBase::GetURL() const {
451 // This is very tricky to get json from this request. To do that, &alt=json 440 // This is very tricky to get json from this request. To do that, &alt=json
452 // has to be appended not here but in InitiateUploadRequestBase::GetURL(). 441 // has to be appended not here but in InitiateUploadRequestBase::GetURL().
453 return upload_url_; 442 return upload_url_;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 506
518 void UploadRangeRequestBase::RunCallbackOnPrematureFailure( 507 void UploadRangeRequestBase::RunCallbackOnPrematureFailure(
519 GDataErrorCode code) { 508 GDataErrorCode code) {
520 OnRangeRequestComplete( 509 OnRangeRequestComplete(
521 UploadRangeResponse(code, 0, 0), scoped_ptr<base::Value>()); 510 UploadRangeResponse(code, 0, 0), scoped_ptr<base::Value>());
522 } 511 }
523 512
524 //========================== ResumeUploadRequestBase ========================= 513 //========================== ResumeUploadRequestBase =========================
525 514
526 ResumeUploadRequestBase::ResumeUploadRequestBase( 515 ResumeUploadRequestBase::ResumeUploadRequestBase(
527 RequestSender* runner, 516 RequestSender* sender,
528 net::URLRequestContextGetter* url_request_context_getter,
529 const GURL& upload_location, 517 const GURL& upload_location,
530 int64 start_position, 518 int64 start_position,
531 int64 end_position, 519 int64 end_position,
532 int64 content_length, 520 int64 content_length,
533 const std::string& content_type, 521 const std::string& content_type,
534 const base::FilePath& local_file_path) 522 const base::FilePath& local_file_path)
535 : UploadRangeRequestBase(runner, 523 : UploadRangeRequestBase(sender, upload_location),
536 url_request_context_getter,
537 upload_location),
538 start_position_(start_position), 524 start_position_(start_position),
539 end_position_(end_position), 525 end_position_(end_position),
540 content_length_(content_length), 526 content_length_(content_length),
541 content_type_(content_type), 527 content_type_(content_type),
542 local_file_path_(local_file_path) { 528 local_file_path_(local_file_path) {
543 DCHECK_LE(start_position_, end_position_); 529 DCHECK_LE(start_position_, end_position_);
544 } 530 }
545 531
546 ResumeUploadRequestBase::~ResumeUploadRequestBase() {} 532 ResumeUploadRequestBase::~ResumeUploadRequestBase() {}
547 533
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 570
585 *local_file_path = local_file_path_; 571 *local_file_path = local_file_path_;
586 *range_offset = start_position_; 572 *range_offset = start_position_;
587 *range_length = end_position_ - start_position_; 573 *range_length = end_position_ - start_position_;
588 *upload_content_type = content_type_; 574 *upload_content_type = content_type_;
589 return true; 575 return true;
590 } 576 }
591 577
592 //======================== GetUploadStatusRequestBase ======================== 578 //======================== GetUploadStatusRequestBase ========================
593 579
594 GetUploadStatusRequestBase::GetUploadStatusRequestBase( 580 GetUploadStatusRequestBase::GetUploadStatusRequestBase(RequestSender* sender,
595 RequestSender* runner, 581 const GURL& upload_url,
596 net::URLRequestContextGetter* url_request_context_getter, 582 int64 content_length)
597 const GURL& upload_url, 583 : UploadRangeRequestBase(sender, upload_url),
598 int64 content_length)
599 : UploadRangeRequestBase(runner,
600 url_request_context_getter,
601 upload_url),
602 content_length_(content_length) {} 584 content_length_(content_length) {}
603 585
604 GetUploadStatusRequestBase::~GetUploadStatusRequestBase() {} 586 GetUploadStatusRequestBase::~GetUploadStatusRequestBase() {}
605 587
606 std::vector<std::string> 588 std::vector<std::string>
607 GetUploadStatusRequestBase::GetExtraRequestHeaders() const { 589 GetUploadStatusRequestBase::GetExtraRequestHeaders() const {
608 // The header looks like 590 // The header looks like
609 // Content-Range: bytes */<content_length> 591 // Content-Range: bytes */<content_length>
610 // for example: 592 // for example:
611 // Content-Range: bytes */13851821 593 // Content-Range: bytes */13851821
612 DCHECK_GE(content_length_, 0); 594 DCHECK_GE(content_length_, 0);
613 595
614 std::vector<std::string> headers; 596 std::vector<std::string> headers;
615 headers.push_back( 597 headers.push_back(
616 std::string(kUploadContentRange) + "*/" + 598 std::string(kUploadContentRange) + "*/" +
617 base::Int64ToString(content_length_)); 599 base::Int64ToString(content_length_));
618 return headers; 600 return headers;
619 } 601 }
620 602
621 //============================ DownloadFileRequest =========================== 603 //============================ DownloadFileRequest ===========================
622 604
623 DownloadFileRequest::DownloadFileRequest( 605 DownloadFileRequest::DownloadFileRequest(
624 RequestSender* runner, 606 RequestSender* sender,
625 net::URLRequestContextGetter* url_request_context_getter,
626 const DownloadActionCallback& download_action_callback, 607 const DownloadActionCallback& download_action_callback,
627 const GetContentCallback& get_content_callback, 608 const GetContentCallback& get_content_callback,
628 const ProgressCallback& progress_callback, 609 const ProgressCallback& progress_callback,
629 const GURL& download_url, 610 const GURL& download_url,
630 const base::FilePath& output_file_path) 611 const base::FilePath& output_file_path)
631 : UrlFetchRequestBase(runner, url_request_context_getter), 612 : UrlFetchRequestBase(sender),
632 download_action_callback_(download_action_callback), 613 download_action_callback_(download_action_callback),
633 get_content_callback_(get_content_callback), 614 get_content_callback_(get_content_callback),
634 progress_callback_(progress_callback), 615 progress_callback_(progress_callback),
635 download_url_(download_url) { 616 download_url_(download_url) {
636 DCHECK(!download_action_callback_.is_null()); 617 DCHECK(!download_action_callback_.is_null());
637 // get_content_callback may be null. 618 // get_content_callback may be null.
638 619
639 // Make sure we download the content into a temp file. 620 // Make sure we download the content into a temp file.
640 if (output_file_path.empty()) 621 if (output_file_path.empty())
641 set_save_temp_file(true); 622 set_save_temp_file(true);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 662
682 download_action_callback_.Run(code, temp_file); 663 download_action_callback_.Run(code, temp_file);
683 OnProcessURLFetchResultsComplete(code == HTTP_SUCCESS); 664 OnProcessURLFetchResultsComplete(code == HTTP_SUCCESS);
684 } 665 }
685 666
686 void DownloadFileRequest::RunCallbackOnPrematureFailure(GDataErrorCode code) { 667 void DownloadFileRequest::RunCallbackOnPrematureFailure(GDataErrorCode code) {
687 download_action_callback_.Run(code, base::FilePath()); 668 download_action_callback_.Run(code, base::FilePath());
688 } 669 }
689 670
690 } // namespace google_apis 671 } // namespace google_apis
OLDNEW
« no previous file with comments | « chrome/browser/google_apis/base_requests.h ('k') | chrome/browser/google_apis/base_requests_server_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698