| OLD | NEW | 
|   1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |   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 |   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/net_pref_observer.h" |   5 #include "chrome/browser/net/net_pref_observer.h" | 
|   6  |   6  | 
|   7 #include "chrome/browser/net/predictor.h" |   7 #include "chrome/browser/net/predictor.h" | 
|   8 #include "chrome/browser/prefs/pref_service.h" |   8 #include "chrome/browser/prefs/pref_service.h" | 
|   9 #include "chrome/browser/prerender/prerender_manager.h" |   9 #include "chrome/browser/prerender/prerender_manager.h" | 
|  10 #include "chrome/common/chrome_notification_types.h" |  10 #include "chrome/common/chrome_notification_types.h" | 
|  11 #include "chrome/common/pref_names.h" |  11 #include "chrome/common/pref_names.h" | 
|  12 #include "content/public/browser/browser_thread.h" |  12 #include "content/public/browser/browser_thread.h" | 
|  13 #include "net/http/http_stream_factory.h" |  13 #include "net/http/http_stream_factory.h" | 
|  14  |  14  | 
|  15 using content::BrowserThread; |  15 using content::BrowserThread; | 
|  16  |  16  | 
|  17 NetPrefObserver::NetPrefObserver(PrefService* prefs, |  17 NetPrefObserver::NetPrefObserver(PrefService* prefs, | 
|  18                                  prerender::PrerenderManager* prerender_manager, |  18                                  prerender::PrerenderManager* prerender_manager, | 
|  19                                  chrome_browser_net::Predictor* predictor) |  19                                  chrome_browser_net::Predictor* predictor) | 
|  20     : prerender_manager_(prerender_manager), |  20     : prerender_manager_(prerender_manager), | 
|  21       predictor_(predictor) { |  21       predictor_(predictor) { | 
|  22   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |  22   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
|  23   DCHECK(prefs); |  23   DCHECK(prefs); | 
|  24   DCHECK(predictor); |  24   DCHECK(predictor); | 
|  25  |  25  | 
 |  26   base::Closure prefs_callback = base::Bind(&NetPrefObserver::ApplySettings, | 
 |  27                                             base::Unretained(this)); | 
|  26   network_prediction_enabled_.Init(prefs::kNetworkPredictionEnabled, prefs, |  28   network_prediction_enabled_.Init(prefs::kNetworkPredictionEnabled, prefs, | 
|  27                                    this); |  29                                    prefs_callback); | 
|  28   spdy_disabled_.Init(prefs::kDisableSpdy, prefs, this); |  30   spdy_disabled_.Init(prefs::kDisableSpdy, prefs, prefs_callback); | 
|  29  |  31  | 
|  30   ApplySettings(); |  32   ApplySettings(); | 
|  31 } |  33 } | 
|  32  |  34  | 
|  33 NetPrefObserver::~NetPrefObserver() { |  35 NetPrefObserver::~NetPrefObserver() { | 
|  34   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |  36   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
|  35 } |  37 } | 
|  36  |  38  | 
|  37 void NetPrefObserver::OnPreferenceChanged(PrefServiceBase* service, |  | 
|  38                                           const std::string& pref_name) { |  | 
|  39   ApplySettings(); |  | 
|  40 } |  | 
|  41  |  | 
|  42 void NetPrefObserver::ApplySettings() { |  39 void NetPrefObserver::ApplySettings() { | 
|  43   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |  40   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
|  44  |  41  | 
|  45   predictor_->EnablePredictor(*network_prediction_enabled_); |  42   predictor_->EnablePredictor(*network_prediction_enabled_); | 
|  46   if (prerender_manager_) |  43   if (prerender_manager_) | 
|  47     prerender_manager_->set_enabled(*network_prediction_enabled_); |  44     prerender_manager_->set_enabled(*network_prediction_enabled_); | 
|  48   if (spdy_disabled_.IsManaged()) |  45   if (spdy_disabled_.IsManaged()) | 
|  49     net::HttpStreamFactory::set_spdy_enabled(!*spdy_disabled_); |  46     net::HttpStreamFactory::set_spdy_enabled(!*spdy_disabled_); | 
|  50 } |  47 } | 
|  51  |  48  | 
|  52 // static |  49 // static | 
|  53 void NetPrefObserver::RegisterPrefs(PrefService* prefs) { |  50 void NetPrefObserver::RegisterPrefs(PrefService* prefs) { | 
|  54   prefs->RegisterBooleanPref(prefs::kNetworkPredictionEnabled, |  51   prefs->RegisterBooleanPref(prefs::kNetworkPredictionEnabled, | 
|  55                              true, |  52                              true, | 
|  56                              PrefService::SYNCABLE_PREF); |  53                              PrefService::SYNCABLE_PREF); | 
|  57   prefs->RegisterBooleanPref(prefs::kDisableSpdy, |  54   prefs->RegisterBooleanPref(prefs::kDisableSpdy, | 
|  58                              false, |  55                              false, | 
|  59                              PrefService::UNSYNCABLE_PREF); |  56                              PrefService::UNSYNCABLE_PREF); | 
|  60 } |  57 } | 
| OLD | NEW |