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

Side by Side Diff: chrome/browser/net/pref_proxy_config_tracker_impl.cc

Issue 900793009: Adding instrumentation to locate the source of jankiness. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
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/net/pref_proxy_config_tracker_impl.h" 5 #include "chrome/browser/net/pref_proxy_config_tracker_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/prefs/pref_registry_simple.h" 8 #include "base/prefs/pref_registry_simple.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "base/profiler/scoped_tracker.h"
10 #include "base/values.h" 11 #include "base/values.h"
11 #include "chrome/browser/chrome_notification_types.h" 12 #include "chrome/browser/chrome_notification_types.h"
12 #include "chrome/browser/prefs/proxy_config_dictionary.h" 13 #include "chrome/browser/prefs/proxy_config_dictionary.h"
13 #include "chrome/common/pref_names.h" 14 #include "chrome/common/pref_names.h"
14 #include "components/pref_registry/pref_registry_syncable.h" 15 #include "components/pref_registry/pref_registry_syncable.h"
15 #include "content/public/browser/browser_thread.h" 16 #include "content/public/browser/browser_thread.h"
16 #include "content/public/browser/notification_details.h" 17 #include "content/public/browser/notification_details.h"
17 #include "content/public/browser/notification_source.h" 18 #include "content/public/browser/notification_source.h"
18 19
19 using content::BrowserThread; 20 using content::BrowserThread;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 ConfigAvailability availability = GetLatestProxyConfig(&new_config); 95 ConfigAvailability availability = GetLatestProxyConfig(&new_config);
95 if (availability != CONFIG_PENDING) { 96 if (availability != CONFIG_PENDING) {
96 FOR_EACH_OBSERVER(net::ProxyConfigService::Observer, observers_, 97 FOR_EACH_OBSERVER(net::ProxyConfigService::Observer, observers_,
97 OnProxyConfigChanged(new_config, availability)); 98 OnProxyConfigChanged(new_config, availability));
98 } 99 }
99 } 100 }
100 101
101 void ChromeProxyConfigService::OnProxyConfigChanged( 102 void ChromeProxyConfigService::OnProxyConfigChanged(
102 const net::ProxyConfig& config, 103 const net::ProxyConfig& config,
103 ConfigAvailability availability) { 104 ConfigAvailability availability) {
105 // TODO(pkasting): Remove ScopedTracker below once crbug.com/455942 is fixed.
106 tracked_objects::ScopedTracker tracking_profile(
107 FROM_HERE_WITH_EXPLICIT_FUNCTION(
108 "455942 ChromeProxyConfigService::OnProxyConfigChanged"));
104 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 109 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
105 110
106 // Check whether there is a proxy configuration defined by preferences. In 111 // Check whether there is a proxy configuration defined by preferences. In
107 // this case that proxy configuration takes precedence and the change event 112 // this case that proxy configuration takes precedence and the change event
108 // from the delegate proxy service can be disregarded. 113 // from the delegate proxy service can be disregarded.
109 if (!PrefProxyConfigTrackerImpl::PrefPrecedes(pref_config_state_)) { 114 if (!PrefProxyConfigTrackerImpl::PrefPrecedes(pref_config_state_)) {
110 net::ProxyConfig actual_config; 115 net::ProxyConfig actual_config;
111 availability = GetLatestProxyConfig(&actual_config); 116 availability = GetLatestProxyConfig(&actual_config);
112 FOR_EACH_OBSERVER(net::ProxyConfigService::Observer, observers_, 117 FOR_EACH_OBSERVER(net::ProxyConfigService::Observer, observers_,
113 OnProxyConfigChanged(actual_config, availability)); 118 OnProxyConfigChanged(actual_config, availability));
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 (config_state_ != ProxyPrefs::CONFIG_UNSET && 353 (config_state_ != ProxyPrefs::CONFIG_UNSET &&
349 !pref_config_.Equals(new_config))) { 354 !pref_config_.Equals(new_config))) {
350 config_state_ = config_state; 355 config_state_ = config_state;
351 if (config_state_ != ProxyPrefs::CONFIG_UNSET) 356 if (config_state_ != ProxyPrefs::CONFIG_UNSET)
352 pref_config_ = new_config; 357 pref_config_ = new_config;
353 update_pending_ = true; 358 update_pending_ = true;
354 } 359 }
355 if (update_pending_) 360 if (update_pending_)
356 OnProxyConfigChanged(config_state, new_config); 361 OnProxyConfigChanged(config_state, new_config);
357 } 362 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698