1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Use of this source code is governed by a BSD-style license that can be 3731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// found in the LICENSE file. 4731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#ifndef CHROME_BROWSER_NET_NET_PREF_OBSERVER_H_ 6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#define CHROME_BROWSER_NET_NET_PREF_OBSERVER_H_ 7731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#pragma once 8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include <string> 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 11731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/basictypes.h" 12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/prefs/pref_member.h" 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/notification_observer.h" 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass Profile; 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace prerender { 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass PrerenderManager; 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 20731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Monitors network-related preferences for changes and applies them. 22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// The supplied PrefService must outlive this NetPrefObserver. 23731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Must be used only on the UI thread. 24731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass NetPrefObserver : public NotificationObserver { 25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick public: 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // |prefs| must outlive this NetPrefObserver. A reference is 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // held to |prerender_manager| if it is non-NULL. 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen NetPrefObserver(PrefService* prefs, 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prerender::PrerenderManager* prerender_manager); 30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ~NetPrefObserver(); 31731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 32731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // NotificationObserver 33731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual void Observe(NotificationType type, 34731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const NotificationSource& source, 35731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const NotificationDetails& details); 36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 37731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick static void RegisterPrefs(PrefService* prefs); 38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick private: 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // If |pref_name| is NULL, all monitored preferences will be applied. 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void ApplySettings(const std::string* pref_name); 42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen BooleanPrefMember network_prediction_enabled_; 44731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick BooleanPrefMember spdy_disabled_; 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen BooleanPrefMember http_throttling_enabled_; 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen scoped_refptr<prerender::PrerenderManager> prerender_manager_; 47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 48731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick DISALLOW_COPY_AND_ASSIGN(NetPrefObserver); 49731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 50731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 51731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#endif // CHROME_BROWSER_NET_NET_PREF_OBSERVER_H_ 52731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 53