OLD | NEW |
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/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/power_monitor/power_monitor.h" | 10 #include "base/power_monitor/power_monitor.h" |
11 #include "base/profiler/scoped_tracker.h" | 11 #include "base/profiler/scoped_tracker.h" |
12 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
13 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
| 14 #include "base/values.h" |
14 #include "net/base/auth.h" | 15 #include "net/base/auth.h" |
15 #include "net/base/host_port_pair.h" | 16 #include "net/base/host_port_pair.h" |
16 #include "net/base/io_buffer.h" | 17 #include "net/base/io_buffer.h" |
17 #include "net/base/load_states.h" | 18 #include "net/base/load_states.h" |
18 #include "net/base/net_errors.h" | 19 #include "net/base/net_errors.h" |
19 #include "net/base/network_delegate.h" | 20 #include "net/base/network_delegate.h" |
20 #include "net/filter/filter.h" | 21 #include "net/filter/filter.h" |
21 #include "net/http/http_response_headers.h" | 22 #include "net/http/http_response_headers.h" |
22 #include "net/url_request/url_request.h" | 23 #include "net/url_request/url_request.h" |
23 | 24 |
| 25 namespace { |
| 26 |
| 27 // Callback for TYPE_URL_REQUEST_FILTERS_SET net-internals event. |
| 28 base::Value* FiltersSetCallback(net::Filter* filter, |
| 29 enum net::NetLog::LogLevel /* log_level */) { |
| 30 base::DictionaryValue* event_params = new base::DictionaryValue(); |
| 31 event_params->SetString("filters", filter->OrderedFilterList()); |
| 32 return event_params; |
| 33 } |
| 34 |
| 35 } // namespace |
| 36 |
24 namespace net { | 37 namespace net { |
25 | 38 |
26 URLRequestJob::URLRequestJob(URLRequest* request, | 39 URLRequestJob::URLRequestJob(URLRequest* request, |
27 NetworkDelegate* network_delegate) | 40 NetworkDelegate* network_delegate) |
28 : request_(request), | 41 : request_(request), |
29 done_(false), | 42 done_(false), |
30 prefilter_bytes_read_(0), | 43 prefilter_bytes_read_(0), |
31 postfilter_bytes_read_(0), | 44 postfilter_bytes_read_(0), |
32 filter_input_byte_count_(0), | 45 filter_input_byte_count_(0), |
33 filter_needs_more_output_space_(false), | 46 filter_needs_more_output_space_(false), |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
417 | 430 |
418 has_handled_response_ = true; | 431 has_handled_response_ = true; |
419 if (request_->status().is_success()) | 432 if (request_->status().is_success()) |
420 filter_.reset(SetupFilter()); | 433 filter_.reset(SetupFilter()); |
421 | 434 |
422 if (!filter_.get()) { | 435 if (!filter_.get()) { |
423 std::string content_length; | 436 std::string content_length; |
424 request_->GetResponseHeaderByName("content-length", &content_length); | 437 request_->GetResponseHeaderByName("content-length", &content_length); |
425 if (!content_length.empty()) | 438 if (!content_length.empty()) |
426 base::StringToInt64(content_length, &expected_content_size_); | 439 base::StringToInt64(content_length, &expected_content_size_); |
| 440 } else { |
| 441 request_->net_log().AddEvent( |
| 442 NetLog::TYPE_URL_REQUEST_FILTERS_SET, |
| 443 base::Bind(&FiltersSetCallback, base::Unretained(filter_.get()))); |
427 } | 444 } |
428 | 445 |
429 // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. | 446 // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. |
430 tracked_objects::ScopedTracker tracking_profile10( | 447 tracked_objects::ScopedTracker tracking_profile10( |
431 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 448 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
432 "423948 URLRequestJob::NotifyHeadersComplete 10")); | 449 "423948 URLRequestJob::NotifyHeadersComplete 10")); |
433 | 450 |
434 request_->NotifyResponseStarted(); | 451 request_->NotifyResponseStarted(); |
435 } | 452 } |
436 | 453 |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
853 !redirect_info.new_url.SchemeIsSecure()) { | 870 !redirect_info.new_url.SchemeIsSecure()) { |
854 redirect_info.new_referrer.clear(); | 871 redirect_info.new_referrer.clear(); |
855 } else { | 872 } else { |
856 redirect_info.new_referrer = request_->referrer(); | 873 redirect_info.new_referrer = request_->referrer(); |
857 } | 874 } |
858 | 875 |
859 return redirect_info; | 876 return redirect_info; |
860 } | 877 } |
861 | 878 |
862 } // namespace net | 879 } // namespace net |
OLD | NEW |