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

Side by Side Diff: chrome/browser/extensions/extension_webrequest_time_tracker.cc

Issue 8205001: (Owner approval for) Delay network requests on startup if any webRequest ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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 #include "chrome/browser/extensions/extension_webrequest_time_tracker.h" 5 #include "chrome/browser/extensions/extension_webrequest_time_tracker.h"
6 6
7 #include "base/metrics/histogram.h" 7 #include "base/metrics/histogram.h"
8 8
9 // TODO(mpcomplete): tweak all these constants. 9 // TODO(mpcomplete): tweak all these constants.
10 namespace { 10 namespace {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 RequestTimeLog& log = request_time_logs_[request_id]; 74 RequestTimeLog& log = request_time_logs_[request_id];
75 if (log.completed) 75 if (log.completed)
76 return; 76 return;
77 77
78 log.request_duration = end_time - log.request_start_time; 78 log.request_duration = end_time - log.request_start_time;
79 log.completed = true; 79 log.completed = true;
80 80
81 if (log.extension_block_durations.empty()) 81 if (log.extension_block_durations.empty())
82 return; 82 return;
83 83
84 HISTOGRAM_TIMES("Extensions.NetworkDelay", log.block_duration); 84 UMA_HISTOGRAM_TIMES("Extensions.NetworkDelay", log.block_duration);
85 85
86 Analyze(request_id); 86 Analyze(request_id);
87 } 87 }
88 88
89 void ExtensionWebRequestTimeTracker::Analyze(int64 request_id) { 89 void ExtensionWebRequestTimeTracker::Analyze(int64 request_id) {
90 RequestTimeLog& log = request_time_logs_[request_id]; 90 RequestTimeLog& log = request_time_logs_[request_id];
91 91
92 // Ignore really short requests. Time spent on these is negligible, and any 92 // Ignore really short requests. Time spent on these is negligible, and any
93 // extra delay the extension adds is likely to be noise. 93 // extra delay the extension adds is likely to be noise.
94 if (log.request_duration.InMilliseconds() < kMinRequestTimeToCareMs) 94 if (log.request_duration.InMilliseconds() < kMinRequestTimeToCareMs)
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 // might average out to only being "25% slow". 145 // might average out to only being "25% slow".
146 request_time_logs_.erase(request_id); 146 request_time_logs_.erase(request_id);
147 } 147 }
148 148
149 void ExtensionWebRequestTimeTracker::SetRequestRedirected(int64 request_id) { 149 void ExtensionWebRequestTimeTracker::SetRequestRedirected(int64 request_id) {
150 // When a request is redirected, we have no way of knowing how long the 150 // When a request is redirected, we have no way of knowing how long the
151 // request would have taken, so we can't say how much an extension slowed 151 // request would have taken, so we can't say how much an extension slowed
152 // down this request. Just ignore it. 152 // down this request. Just ignore it.
153 request_time_logs_.erase(request_id); 153 request_time_logs_.erase(request_id);
154 } 154 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698