Chromium Code Reviews| 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 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading | 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading |
| 6 | 6 |
| 7 #include "content/browser/loader/resource_dispatcher_host_impl.h" | 7 #include "content/browser/loader/resource_dispatcher_host_impl.h" |
| 8 | 8 |
| 9 #include <stddef.h> | 9 #include <stddef.h> |
| 10 | 10 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 93 #include "ipc/ipc_message_start.h" | 93 #include "ipc/ipc_message_start.h" |
| 94 #include "net/base/auth.h" | 94 #include "net/base/auth.h" |
| 95 #include "net/base/load_flags.h" | 95 #include "net/base/load_flags.h" |
| 96 #include "net/base/mime_util.h" | 96 #include "net/base/mime_util.h" |
| 97 #include "net/base/net_errors.h" | 97 #include "net/base/net_errors.h" |
| 98 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 98 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
| 99 #include "net/base/request_priority.h" | 99 #include "net/base/request_priority.h" |
| 100 #include "net/base/upload_data_stream.h" | 100 #include "net/base/upload_data_stream.h" |
| 101 #include "net/cert/cert_status_flags.h" | 101 #include "net/cert/cert_status_flags.h" |
| 102 #include "net/cookies/cookie_monster.h" | 102 #include "net/cookies/cookie_monster.h" |
| 103 #include "net/http/http_request_headers.h" | |
| 103 #include "net/http/http_response_headers.h" | 104 #include "net/http/http_response_headers.h" |
| 104 #include "net/http/http_response_info.h" | 105 #include "net/http/http_response_info.h" |
| 105 #include "net/ssl/client_cert_store.h" | 106 #include "net/ssl/client_cert_store.h" |
| 106 #include "net/ssl/ssl_cert_request_info.h" | 107 #include "net/ssl/ssl_cert_request_info.h" |
| 107 #include "net/url_request/url_request.h" | 108 #include "net/url_request/url_request.h" |
| 108 #include "net/url_request/url_request_context.h" | 109 #include "net/url_request/url_request_context.h" |
| 109 #include "net/url_request/url_request_job_factory.h" | 110 #include "net/url_request/url_request_job_factory.h" |
| 110 #include "storage/browser/blob/blob_data_handle.h" | 111 #include "storage/browser/blob/blob_data_handle.h" |
| 111 #include "storage/browser/blob/blob_storage_context.h" | 112 #include "storage/browser/blob/blob_storage_context.h" |
| 112 #include "storage/browser/blob/blob_url_request_job_factory.h" | 113 #include "storage/browser/blob/blob_url_request_job_factory.h" |
| 113 #include "storage/browser/blob/shareable_file_reference.h" | 114 #include "storage/browser/blob/shareable_file_reference.h" |
| 114 #include "storage/browser/fileapi/file_permission_policy.h" | 115 #include "storage/browser/fileapi/file_permission_policy.h" |
| 115 #include "storage/browser/fileapi/file_system_context.h" | 116 #include "storage/browser/fileapi/file_system_context.h" |
| 117 #include "url/third_party/mozilla/url_parse.h" | |
| 116 #include "url/url_constants.h" | 118 #include "url/url_constants.h" |
| 117 | 119 |
| 118 using base::Time; | 120 using base::Time; |
| 119 using base::TimeDelta; | 121 using base::TimeDelta; |
| 120 using base::TimeTicks; | 122 using base::TimeTicks; |
| 121 using storage::ShareableFileReference; | 123 using storage::ShareableFileReference; |
| 122 using SyncLoadResultCallback = | 124 using SyncLoadResultCallback = |
| 123 content::ResourceDispatcherHostImpl::SyncLoadResultCallback; | 125 content::ResourceDispatcherHostImpl::SyncLoadResultCallback; |
| 124 | 126 |
| 125 // ---------------------------------------------------------------------------- | 127 // ---------------------------------------------------------------------------- |
| (...skipping 2197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2323 nullptr, nullptr); | 2325 nullptr, nullptr); |
| 2324 filter_ = nullptr; | 2326 filter_ = nullptr; |
| 2325 } | 2327 } |
| 2326 | 2328 |
| 2327 // static | 2329 // static |
| 2328 int ResourceDispatcherHostImpl::CalculateApproximateMemoryCost( | 2330 int ResourceDispatcherHostImpl::CalculateApproximateMemoryCost( |
| 2329 net::URLRequest* request) { | 2331 net::URLRequest* request) { |
| 2330 // The following fields should be a minor size contribution (experimentally | 2332 // The following fields should be a minor size contribution (experimentally |
| 2331 // on the order of 100). However since they are variable length, it could | 2333 // on the order of 100). However since they are variable length, it could |
| 2332 // in theory be a sizeable contribution. | 2334 // in theory be a sizeable contribution. |
| 2333 int strings_cost = request->extra_request_headers().ToString().size() + | 2335 int header_length = 0; |
|
Randy Smith (Not in Mondays)
2016/11/16 13:07:04
Suggestion: Make this declaration string_cost and
Charlie Harrison
2016/11/16 13:55:44
Done.
| |
| 2334 request->original_url().spec().size() + | 2336 for (net::HttpRequestHeaders::Iterator it(request->extra_request_headers()); |
| 2335 request->referrer().size() + | 2337 it.GetNext();) { |
| 2336 request->method().size(); | 2338 header_length += it.name().length() + it.value().length(); |
| 2339 } | |
| 2340 int strings_cost = | |
| 2341 header_length + | |
| 2342 request->original_url().parsed_for_possibly_invalid_spec().Length() + | |
| 2343 request->referrer().size() + request->method().size(); | |
| 2337 | 2344 |
| 2338 // Note that this expression will typically be dominated by: | 2345 // Note that this expression will typically be dominated by: |
| 2339 // |kAvgBytesPerOutstandingRequest|. | 2346 // |kAvgBytesPerOutstandingRequest|. |
| 2340 return kAvgBytesPerOutstandingRequest + strings_cost; | 2347 return kAvgBytesPerOutstandingRequest + strings_cost; |
| 2341 } | 2348 } |
| 2342 | 2349 |
| 2343 void ResourceDispatcherHostImpl::BeginRequestInternal( | 2350 void ResourceDispatcherHostImpl::BeginRequestInternal( |
| 2344 std::unique_ptr<net::URLRequest> request, | 2351 std::unique_ptr<net::URLRequest> request, |
| 2345 std::unique_ptr<ResourceHandler> handler) { | 2352 std::unique_ptr<ResourceHandler> handler) { |
| 2346 DCHECK(!request->is_pending()); | 2353 DCHECK(!request->is_pending()); |
| (...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2791 &throttles); | 2798 &throttles); |
| 2792 if (!throttles.empty()) { | 2799 if (!throttles.empty()) { |
| 2793 handler.reset(new ThrottlingResourceHandler(std::move(handler), request, | 2800 handler.reset(new ThrottlingResourceHandler(std::move(handler), request, |
| 2794 std::move(throttles))); | 2801 std::move(throttles))); |
| 2795 } | 2802 } |
| 2796 } | 2803 } |
| 2797 return handler; | 2804 return handler; |
| 2798 } | 2805 } |
| 2799 | 2806 |
| 2800 } // namespace content | 2807 } // namespace content |
| OLD | NEW |