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

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

Issue 6541021: Send fatal proxy errors to the network delegate. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 9 years, 10 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.cc ('k') | net/url_request/url_request_test_util.h » ('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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "net/base/auth.h" 11 #include "net/base/auth.h"
12 #include "net/base/io_buffer.h" 12 #include "net/base/io_buffer.h"
13 #include "net/base/load_flags.h" 13 #include "net/base/load_flags.h"
14 #include "net/base/mime_util.h" 14 #include "net/base/mime_util.h"
15 #include "net/base/net_errors.h" 15 #include "net/base/net_errors.h"
16 #include "net/http/http_network_delegate.h"
16 #include "net/http/http_response_headers.h" 17 #include "net/http/http_response_headers.h"
17 #include "net/url_request/url_request.h" 18 #include "net/url_request/url_request.h"
19 #include "net/url_request/url_request_context.h"
18 #include "net/url_request/url_request_job_metrics.h" 20 #include "net/url_request/url_request_job_metrics.h"
19 #include "net/url_request/url_request_job_tracker.h" 21 #include "net/url_request/url_request_job_tracker.h"
20 22
21 using base::Time; 23 using base::Time;
22 using base::TimeTicks; 24 using base::TimeTicks;
23 25
24 namespace net { 26 namespace net {
25 27
26 // Buffer size allocated when de-compressing data. 28 // Buffer size allocated when de-compressing data.
27 // static 29 // static
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 525
524 prefilter_bytes_read_ += bytes_read; 526 prefilter_bytes_read_ += bytes_read;
525 if (filter_.get()) { 527 if (filter_.get()) {
526 // Tell the filter that it has more data 528 // Tell the filter that it has more data
527 FilteredDataRead(bytes_read); 529 FilteredDataRead(bytes_read);
528 530
529 // Filter the data. 531 // Filter the data.
530 int filter_bytes_read = 0; 532 int filter_bytes_read = 0;
531 if (ReadFilteredData(&filter_bytes_read)) { 533 if (ReadFilteredData(&filter_bytes_read)) {
532 postfilter_bytes_read_ += filter_bytes_read; 534 postfilter_bytes_read_ += filter_bytes_read;
535 if (request_->context() && request_->context()->network_delegate()) {
536 request_->context()->network_delegate()->OnReadCompleted(
537 request_, filter_bytes_read);
538 }
533 request_->delegate()->OnReadCompleted(request_, filter_bytes_read); 539 request_->delegate()->OnReadCompleted(request_, filter_bytes_read);
534 } 540 }
535 } else { 541 } else {
536 postfilter_bytes_read_ += bytes_read; 542 postfilter_bytes_read_ += bytes_read;
543 if (request_->context() && request_->context()->network_delegate()) {
544 request_->context()->network_delegate()->OnReadCompleted(
545 request_, bytes_read);
546 }
537 request_->delegate()->OnReadCompleted(request_, bytes_read); 547 request_->delegate()->OnReadCompleted(request_, bytes_read);
538 } 548 }
539 } 549 }
540 550
541 void URLRequestJob::NotifyStartError(const URLRequestStatus &status) { 551 void URLRequestJob::NotifyStartError(const URLRequestStatus &status) {
542 DCHECK(!has_handled_response_); 552 DCHECK(!has_handled_response_);
543 has_handled_response_ = true; 553 has_handled_response_ = true;
544 if (request_) { 554 if (request_) {
545 request_->set_status(status); 555 request_->set_status(status);
546 request_->ResponseStarted(); 556 request_->ResponseStarted();
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 608
599 void URLRequestJob::CompleteNotifyDone() { 609 void URLRequestJob::CompleteNotifyDone() {
600 // Check if we should notify the delegate that we're done because of an error. 610 // Check if we should notify the delegate that we're done because of an error.
601 if (request_ && 611 if (request_ &&
602 !request_->status().is_success() && 612 !request_->status().is_success() &&
603 request_->delegate()) { 613 request_->delegate()) {
604 // We report the error differently depending on whether we've called 614 // We report the error differently depending on whether we've called
605 // OnResponseStarted yet. 615 // OnResponseStarted yet.
606 if (has_handled_response_) { 616 if (has_handled_response_) {
607 // We signal the error by calling OnReadComplete with a bytes_read of -1. 617 // We signal the error by calling OnReadComplete with a bytes_read of -1.
618 if (request_->context() && request_->context()->network_delegate())
619 request_->context()->network_delegate()->OnReadCompleted(request_, -1);
608 request_->delegate()->OnReadCompleted(request_, -1); 620 request_->delegate()->OnReadCompleted(request_, -1);
609 } else { 621 } else {
610 has_handled_response_ = true; 622 has_handled_response_ = true;
611 request_->ResponseStarted(); 623 request_->ResponseStarted();
612 } 624 }
613 } 625 }
614 } 626 }
615 627
616 void URLRequestJob::NotifyCanceled() { 628 void URLRequestJob::NotifyCanceled() {
617 if (!done_) { 629 if (!done_) {
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
927 939
928 if (is_compressed_) { 940 if (is_compressed_) {
929 COMPRESSION_HISTOGRAM("NoProxy.BytesBeforeCompression", compressed_B); 941 COMPRESSION_HISTOGRAM("NoProxy.BytesBeforeCompression", compressed_B);
930 COMPRESSION_HISTOGRAM("NoProxy.BytesAfterCompression", decompressed_B); 942 COMPRESSION_HISTOGRAM("NoProxy.BytesAfterCompression", decompressed_B);
931 } else { 943 } else {
932 COMPRESSION_HISTOGRAM("NoProxy.ShouldHaveBeenCompressed", decompressed_B); 944 COMPRESSION_HISTOGRAM("NoProxy.ShouldHaveBeenCompressed", decompressed_B);
933 } 945 }
934 } 946 }
935 947
936 } // namespace net 948 } // namespace net
OLDNEW
« no previous file with comments | « net/url_request/url_request.cc ('k') | net/url_request/url_request_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698