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.
4
5#ifndef CHROME_BROWSER_NET_NET_PREF_OBSERVER_H_
6#define CHROME_BROWSER_NET_NET_PREF_OBSERVER_H_
7
8#include "base/macros.h"
9#include "base/prefs/pref_member.h"
10
11class PrefService;
12
13namespace user_prefs {
14class PrefRegistrySyncable;
15}
16
17// Monitors network-related preferences for changes and applies them.
18// The supplied PrefService must outlive this NetPrefObserver.
19// Must be used only on the UI thread.
20class NetPrefObserver {
21 public:
22  // |prefs| must be non-NULL and |*prefs| must outlive this.
23  explicit NetPrefObserver(PrefService* prefs);
24  virtual ~NetPrefObserver();
25
26  static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
27
28 private:
29  void ApplySettings();
30
31  BooleanPrefMember spdy_disabled_;
32
33  DISALLOW_COPY_AND_ASSIGN(NetPrefObserver);
34};
35
36#endif  // CHROME_BROWSER_NET_NET_PREF_OBSERVER_H_
37