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

Side by Side Diff: content/browser/renderer_host/resource_dispatcher_host.cc

Issue 6990058: Switch to the new CustomHistogram::ArrayToCustomRanges() utility (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/renderer_host/resource_dispatcher_host.h" 7 #include "content/browser/renderer_host/resource_dispatcher_host.h"
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 116
117 // Maximum number of pending data messages sent to the renderer at any 117 // Maximum number of pending data messages sent to the renderer at any
118 // given time for a given request. 118 // given time for a given request.
119 const int kMaxPendingDataMessages = 20; 119 const int kMaxPendingDataMessages = 20;
120 120
121 // Maximum byte "cost" of all the outstanding requests for a renderer. 121 // Maximum byte "cost" of all the outstanding requests for a renderer.
122 // See delcaration of |max_outstanding_requests_cost_per_process_| for details. 122 // See delcaration of |max_outstanding_requests_cost_per_process_| for details.
123 // This bound is 25MB, which allows for around 6000 outstanding requests. 123 // This bound is 25MB, which allows for around 6000 outstanding requests.
124 const int kMaxOutstandingRequestsCostPerProcess = 26214400; 124 const int kMaxOutstandingRequestsCostPerProcess = 26214400;
125 125
126 // All possible error codes from the network module. Note that the error codes
127 // are all positive (since histograms expect positive sample values).
128 const int kAllNetErrorCodes[] = {
129 #define NET_ERROR(label, value) -(value),
130 #include "net/base/net_error_list.h"
131 #undef NET_ERROR
132 };
133
126 // Aborts a request before an URLRequest has actually been created. 134 // Aborts a request before an URLRequest has actually been created.
127 void AbortRequestBeforeItStarts(ResourceMessageFilter* filter, 135 void AbortRequestBeforeItStarts(ResourceMessageFilter* filter,
128 IPC::Message* sync_result, 136 IPC::Message* sync_result,
129 int route_id, 137 int route_id,
130 int request_id) { 138 int request_id) {
131 net::URLRequestStatus status(net::URLRequestStatus::FAILED, 139 net::URLRequestStatus status(net::URLRequestStatus::FAILED,
132 net::ERR_ABORTED); 140 net::ERR_ABORTED);
133 if (sync_result) { 141 if (sync_result) {
134 SyncLoadResult result; 142 SyncLoadResult result;
135 result.status = status; 143 result.status = status;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 response->response_head.was_npn_negotiated = request->was_npn_negotiated(); 212 response->response_head.was_npn_negotiated = request->was_npn_negotiated();
205 response->response_head.was_fetched_via_proxy = 213 response->response_head.was_fetched_via_proxy =
206 request->was_fetched_via_proxy(); 214 request->was_fetched_via_proxy();
207 response->response_head.socket_address = request->GetSocketAddress(); 215 response->response_head.socket_address = request->GetSocketAddress();
208 appcache::AppCacheInterceptor::GetExtraResponseInfo( 216 appcache::AppCacheInterceptor::GetExtraResponseInfo(
209 request, 217 request,
210 &response->response_head.appcache_id, 218 &response->response_head.appcache_id,
211 &response->response_head.appcache_manifest_url); 219 &response->response_head.appcache_manifest_url);
212 } 220 }
213 221
214 // Returns a list of all the possible error codes from the network module.
215 // Note that the error codes are all positive (since histograms expect positive
216 // sample values).
217 std::vector<int> GetAllNetErrorCodes() {
218 std::vector<int> all_error_codes;
219 #define NET_ERROR(label, value) all_error_codes.push_back(-(value));
220 #include "net/base/net_error_list.h"
221 #undef NET_ERROR
222 return all_error_codes;
223 }
224
225 void RemoveDownloadFileFromChildSecurityPolicy(int child_id, 222 void RemoveDownloadFileFromChildSecurityPolicy(int child_id,
226 const FilePath& path) { 223 const FilePath& path) {
227 ChildProcessSecurityPolicy::GetInstance()->RevokeAllPermissionsForFile( 224 ChildProcessSecurityPolicy::GetInstance()->RevokeAllPermissionsForFile(
228 child_id, path); 225 child_id, path);
229 } 226 }
230 227
231 #if defined(OS_WIN) 228 #if defined(OS_WIN)
232 #pragma warning(disable: 4748) 229 #pragma warning(disable: 4748)
233 #pragma optimize("", off) 230 #pragma optimize("", off)
234 #endif 231 #endif
(...skipping 1365 matching lines...) Expand 10 before | Expand all | Expand 10 after
1600 1597
1601 void ResourceDispatcherHost::OnResponseCompleted(net::URLRequest* request) { 1598 void ResourceDispatcherHost::OnResponseCompleted(net::URLRequest* request) {
1602 VLOG(1) << "OnResponseCompleted: " << request->url().spec(); 1599 VLOG(1) << "OnResponseCompleted: " << request->url().spec();
1603 ResourceDispatcherHostRequestInfo* info = InfoForRequest(request); 1600 ResourceDispatcherHostRequestInfo* info = InfoForRequest(request);
1604 1601
1605 // If the load for a main frame has failed, track it in a histogram, 1602 // If the load for a main frame has failed, track it in a histogram,
1606 // since it will probably cause the user to see an error page. 1603 // since it will probably cause the user to see an error page.
1607 if (!request->status().is_success() && 1604 if (!request->status().is_success() &&
1608 info->resource_type() == ResourceType::MAIN_FRAME && 1605 info->resource_type() == ResourceType::MAIN_FRAME &&
1609 request->status().os_error() != net::ERR_ABORTED) { 1606 request->status().os_error() != net::ERR_ABORTED) {
1610 UMA_HISTOGRAM_CUSTOM_ENUMERATION("Net.ErrorCodesForMainFrame", 1607 // This enumeration has "2" appended to its name to distinguish it from
1611 -request->status().os_error(), 1608 // its original version. We changed the buckets at one point (added
1612 GetAllNetErrorCodes()); 1609 // guard buckets by using CustomHistogram::ArrayToCustomRanges).
1610 UMA_HISTOGRAM_CUSTOM_ENUMERATION(
1611 "Net.ErrorCodesForMainFrame2",
jar (doing other things) 2011/05/24 18:10:07 Be sure to submit a related addition to histograms
Jói 2011/05/24 18:27:31 Thanks for the reminder; preparing that now.
1612 -request->status().os_error(),
1613 base::CustomHistogram::ArrayToCustomRanges(
1614 kAllNetErrorCodes, arraysize(kAllNetErrorCodes)));
1613 } 1615 }
1614 1616
1615 std::string security_info; 1617 std::string security_info;
1616 const net::SSLInfo& ssl_info = request->ssl_info(); 1618 const net::SSLInfo& ssl_info = request->ssl_info();
1617 if (ssl_info.cert != NULL) { 1619 if (ssl_info.cert != NULL) {
1618 int cert_id = CertStore::GetInstance()->StoreCert(ssl_info.cert, 1620 int cert_id = CertStore::GetInstance()->StoreCert(ssl_info.cert,
1619 info->child_id()); 1621 info->child_id());
1620 security_info = SSLManager::SerializeSecurityInfo( 1622 security_info = SSLManager::SerializeSecurityInfo(
1621 cert_id, ssl_info.cert_status, ssl_info.security_bits, 1623 cert_id, ssl_info.cert_status, ssl_info.security_bits,
1622 ssl_info.connection_status); 1624 ssl_info.connection_status);
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
2039 return is_prefetch_enabled_; 2041 return is_prefetch_enabled_;
2040 } 2042 }
2041 2043
2042 // static 2044 // static
2043 void ResourceDispatcherHost::set_is_prefetch_enabled(bool value) { 2045 void ResourceDispatcherHost::set_is_prefetch_enabled(bool value) {
2044 is_prefetch_enabled_ = value; 2046 is_prefetch_enabled_ = value;
2045 } 2047 }
2046 2048
2047 // static 2049 // static
2048 bool ResourceDispatcherHost::is_prefetch_enabled_ = false; 2050 bool ResourceDispatcherHost::is_prefetch_enabled_ = false;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698