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

Side by Side Diff: net/url_request/url_request_job.cc

Issue 15829004: Update net/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: license twerk Created 7 years, 6 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
« no previous file with comments | « net/url_request/url_request_http_job.cc ('k') | net/url_request/url_request_test_job.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "net/url_request/url_request_job.h" 5 #include "net/url_request/url_request_job.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/power_monitor/power_monitor.h" 10 #include "base/power_monitor/power_monitor.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 64
65 // This function calls ReadData to get stream data. If a filter exists, passes 65 // This function calls ReadData to get stream data. If a filter exists, passes
66 // the data to the attached filter. Then returns the output from filter back to 66 // the data to the attached filter. Then returns the output from filter back to
67 // the caller. 67 // the caller.
68 bool URLRequestJob::Read(IOBuffer* buf, int buf_size, int *bytes_read) { 68 bool URLRequestJob::Read(IOBuffer* buf, int buf_size, int *bytes_read) {
69 bool rv = false; 69 bool rv = false;
70 70
71 DCHECK_LT(buf_size, 1000000); // Sanity check. 71 DCHECK_LT(buf_size, 1000000); // Sanity check.
72 DCHECK(buf); 72 DCHECK(buf);
73 DCHECK(bytes_read); 73 DCHECK(bytes_read);
74 DCHECK(filtered_read_buffer_ == NULL); 74 DCHECK(filtered_read_buffer_.get() == NULL);
75 DCHECK_EQ(0, filtered_read_buffer_len_); 75 DCHECK_EQ(0, filtered_read_buffer_len_);
76 76
77 *bytes_read = 0; 77 *bytes_read = 0;
78 78
79 // Skip Filter if not present. 79 // Skip Filter if not present.
80 if (!filter_.get()) { 80 if (!filter_.get()) {
81 rv = ReadRawDataHelper(buf, buf_size, bytes_read); 81 rv = ReadRawDataHelper(buf, buf_size, bytes_read);
82 } else { 82 } else {
83 // Save the caller's buffers while we do IO 83 // Save the caller's buffers while we do IO
84 // in the filter's buffers. 84 // in the filter's buffers.
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 } else { 331 } else {
332 FollowRedirect(new_location, http_status_code); 332 FollowRedirect(new_location, http_status_code);
333 } 333 }
334 return; 334 return;
335 } 335 }
336 } else if (NeedsAuth()) { 336 } else if (NeedsAuth()) {
337 scoped_refptr<AuthChallengeInfo> auth_info; 337 scoped_refptr<AuthChallengeInfo> auth_info;
338 GetAuthChallengeInfo(&auth_info); 338 GetAuthChallengeInfo(&auth_info);
339 // Need to check for a NULL auth_info because the server may have failed 339 // Need to check for a NULL auth_info because the server may have failed
340 // to send a challenge with the 401 response. 340 // to send a challenge with the 401 response.
341 if (auth_info) { 341 if (auth_info.get()) {
342 request_->NotifyAuthRequired(auth_info); 342 request_->NotifyAuthRequired(auth_info.get());
343 // Wait for SetAuth or CancelAuth to be called. 343 // Wait for SetAuth or CancelAuth to be called.
344 return; 344 return;
345 } 345 }
346 } 346 }
347 347
348 has_handled_response_ = true; 348 has_handled_response_ = true;
349 if (request_->status().is_success()) 349 if (request_->status().is_success())
350 filter_.reset(SetupFilter()); 350 filter_.reset(SetupFilter());
351 351
352 if (!filter_.get()) { 352 if (!filter_.get()) {
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 // Do nothing. 498 // Do nothing.
499 } 499 }
500 500
501 void URLRequestJob::FilteredDataRead(int bytes_read) { 501 void URLRequestJob::FilteredDataRead(int bytes_read) {
502 DCHECK(filter_.get()); // don't add data if there is no filter 502 DCHECK(filter_.get()); // don't add data if there is no filter
503 filter_->FlushStreamBuffer(bytes_read); 503 filter_->FlushStreamBuffer(bytes_read);
504 } 504 }
505 505
506 bool URLRequestJob::ReadFilteredData(int* bytes_read) { 506 bool URLRequestJob::ReadFilteredData(int* bytes_read) {
507 DCHECK(filter_.get()); // don't add data if there is no filter 507 DCHECK(filter_.get()); // don't add data if there is no filter
508 DCHECK(filtered_read_buffer_ != NULL); // we need to have a buffer to fill 508 DCHECK(filtered_read_buffer_.get() !=
509 NULL); // we need to have a buffer to fill
509 DCHECK_GT(filtered_read_buffer_len_, 0); // sanity check 510 DCHECK_GT(filtered_read_buffer_len_, 0); // sanity check
510 DCHECK_LT(filtered_read_buffer_len_, 1000000); // sanity check 511 DCHECK_LT(filtered_read_buffer_len_, 1000000); // sanity check
511 DCHECK(raw_read_buffer_ == NULL); // there should be no raw read buffer yet 512 DCHECK(raw_read_buffer_.get() ==
513 NULL); // there should be no raw read buffer yet
512 514
513 bool rv = false; 515 bool rv = false;
514 *bytes_read = 0; 516 *bytes_read = 0;
515 517
516 if (is_done()) 518 if (is_done())
517 return true; 519 return true;
518 520
519 if (!filter_needs_more_output_space_ && !filter_->stream_data_len()) { 521 if (!filter_needs_more_output_space_ && !filter_->stream_data_len()) {
520 // We don't have any raw data to work with, so 522 // We don't have any raw data to work with, so
521 // read from the socket. 523 // read from the socket.
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 IOBuffer* stream_buffer = filter_->stream_buffer(); 659 IOBuffer* stream_buffer = filter_->stream_buffer();
658 int stream_buffer_size = filter_->stream_buffer_size(); 660 int stream_buffer_size = filter_->stream_buffer_size();
659 rv = ReadRawDataHelper(stream_buffer, stream_buffer_size, bytes_read); 661 rv = ReadRawDataHelper(stream_buffer, stream_buffer_size, bytes_read);
660 } 662 }
661 return rv; 663 return rv;
662 } 664 }
663 665
664 bool URLRequestJob::ReadRawDataHelper(IOBuffer* buf, int buf_size, 666 bool URLRequestJob::ReadRawDataHelper(IOBuffer* buf, int buf_size,
665 int* bytes_read) { 667 int* bytes_read) {
666 DCHECK(!request_->status().is_io_pending()); 668 DCHECK(!request_->status().is_io_pending());
667 DCHECK(raw_read_buffer_ == NULL); 669 DCHECK(raw_read_buffer_.get() == NULL);
668 670
669 // Keep a pointer to the read buffer, so we have access to it in the 671 // Keep a pointer to the read buffer, so we have access to it in the
670 // OnRawReadComplete() callback in the event that the read completes 672 // OnRawReadComplete() callback in the event that the read completes
671 // asynchronously. 673 // asynchronously.
672 raw_read_buffer_ = buf; 674 raw_read_buffer_ = buf;
673 bool rv = ReadRawData(buf, buf_size, bytes_read); 675 bool rv = ReadRawData(buf, buf_size, bytes_read);
674 676
675 if (!request_->status().is_io_pending()) { 677 if (!request_->status().is_io_pending()) {
676 // If |filter_| is NULL, and logging all bytes is enabled, log the raw 678 // If |filter_| is NULL, and logging all bytes is enabled, log the raw
677 // bytes read. 679 // bytes read.
(...skipping 12 matching lines...) Expand all
690 return rv; 692 return rv;
691 } 693 }
692 694
693 void URLRequestJob::FollowRedirect(const GURL& location, int http_status_code) { 695 void URLRequestJob::FollowRedirect(const GURL& location, int http_status_code) {
694 int rv = request_->Redirect(location, http_status_code); 696 int rv = request_->Redirect(location, http_status_code);
695 if (rv != OK) 697 if (rv != OK)
696 NotifyDone(URLRequestStatus(URLRequestStatus::FAILED, rv)); 698 NotifyDone(URLRequestStatus(URLRequestStatus::FAILED, rv));
697 } 699 }
698 700
699 void URLRequestJob::OnRawReadComplete(int bytes_read) { 701 void URLRequestJob::OnRawReadComplete(int bytes_read) {
700 DCHECK(raw_read_buffer_); 702 DCHECK(raw_read_buffer_.get());
701 if (bytes_read > 0) { 703 if (bytes_read > 0) {
702 RecordBytesRead(bytes_read); 704 RecordBytesRead(bytes_read);
703 } 705 }
704 raw_read_buffer_ = NULL; 706 raw_read_buffer_ = NULL;
705 } 707 }
706 708
707 void URLRequestJob::RecordBytesRead(int bytes_read) { 709 void URLRequestJob::RecordBytesRead(int bytes_read) {
708 filter_input_byte_count_ += bytes_read; 710 filter_input_byte_count_ += bytes_read;
709 prefilter_bytes_read_ += bytes_read; 711 prefilter_bytes_read_ += bytes_read;
710 if (!filter_.get()) 712 if (!filter_.get())
711 postfilter_bytes_read_ += bytes_read; 713 postfilter_bytes_read_ += bytes_read;
712 DVLOG(2) << __FUNCTION__ << "() " 714 DVLOG(2) << __FUNCTION__ << "() "
713 << "\"" << (request_ ? request_->url().spec() : "???") << "\"" 715 << "\"" << (request_ ? request_->url().spec() : "???") << "\""
714 << " pre bytes read = " << bytes_read 716 << " pre bytes read = " << bytes_read
715 << " pre total = " << prefilter_bytes_read_ 717 << " pre total = " << prefilter_bytes_read_
716 << " post total = " << postfilter_bytes_read_; 718 << " post total = " << postfilter_bytes_read_;
717 UpdatePacketReadTimes(); // Facilitate stats recording if it is active. 719 UpdatePacketReadTimes(); // Facilitate stats recording if it is active.
718 if (network_delegate_) 720 if (network_delegate_)
719 network_delegate_->NotifyRawBytesRead(*request_, bytes_read); 721 network_delegate_->NotifyRawBytesRead(*request_, bytes_read);
720 } 722 }
721 723
722 bool URLRequestJob::FilterHasData() { 724 bool URLRequestJob::FilterHasData() {
723 return filter_.get() && filter_->stream_data_len(); 725 return filter_.get() && filter_->stream_data_len();
724 } 726 }
725 727
726 void URLRequestJob::UpdatePacketReadTimes() { 728 void URLRequestJob::UpdatePacketReadTimes() {
727 } 729 }
728 730
729 } // namespace net 731 } // namespace net
OLDNEW
« no previous file with comments | « net/url_request/url_request_http_job.cc ('k') | net/url_request/url_request_test_job.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698