net_pref_observer.cc revision 21d179b334e59e9a3bfcaed4c4430bef1bc5759d
1// Copyright (c) 2010 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#include "chrome/browser/net/net_pref_observer.h" 6 7#include "chrome/browser/browser_thread.h" 8#include "chrome/browser/net/predictor_api.h" 9#include "chrome/browser/prefs/pref_service.h" 10#include "chrome/common/notification_type.h" 11#include "chrome/common/pref_names.h" 12#include "net/http/http_stream_factory.h" 13 14NetPrefObserver::NetPrefObserver(PrefService* prefs) { 15 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 16 17 dns_prefetching_enabled_.Init(prefs::kDnsPrefetchingEnabled, prefs, this); 18 spdy_disabled_.Init(prefs::kDisableSpdy, prefs, this); 19 20 ApplySettings(); 21} 22 23NetPrefObserver::~NetPrefObserver() { 24 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 25} 26 27void NetPrefObserver::Observe(NotificationType type, 28 const NotificationSource& source, 29 const NotificationDetails& details) { 30 ApplySettings(); 31} 32 33void NetPrefObserver::ApplySettings() { 34 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 35 chrome_browser_net::EnablePredictor(*dns_prefetching_enabled_); 36 net::HttpStreamFactory::set_spdy_enabled(!*spdy_disabled_); 37} 38 39// static 40void NetPrefObserver::RegisterPrefs(PrefService* prefs) { 41 prefs->RegisterBooleanPref(prefs::kDisableSpdy, false); 42} 43