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
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_NET_NET_PREF_OBSERVER_H_
6 #define CHROME_BROWSER_NET_NET_PREF_OBSERVER_H_
8 #include "base/basictypes.h"
9 #include "base/prefs/pref_member.h"
13 namespace chrome_browser_net
{
18 class PrerenderManager
;
21 namespace user_prefs
{
22 class PrefRegistrySyncable
;
25 // Monitors network-related preferences for changes and applies them.
26 // The supplied PrefService must outlive this NetPrefObserver.
27 // Must be used only on the UI thread.
28 class NetPrefObserver
{
30 // |prefs| must be non-NULL and |*prefs| must outlive this.
31 // |prerender_manager| may be NULL. If not, |*prerender_manager| must
33 NetPrefObserver(PrefService
* prefs
,
34 prerender::PrerenderManager
* prerender_manager
,
35 chrome_browser_net::Predictor
* predictor
);
36 virtual ~NetPrefObserver();
38 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable
* registry
);
43 BooleanPrefMember network_prediction_enabled_
;
44 BooleanPrefMember spdy_disabled_
;
45 prerender::PrerenderManager
* prerender_manager_
;
46 chrome_browser_net::Predictor
* predictor_
;
48 DISALLOW_COPY_AND_ASSIGN(NetPrefObserver
);
51 #endif // CHROME_BROWSER_NET_NET_PREF_OBSERVER_H_