Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(466)

Side by Side Diff: chrome/browser/net/predictor_api.cc

Issue 5800004: Migrate HostReferralList and StartupDNSPrefetchList from local_state to user ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 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 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/predictor_api.h" 5 #include "chrome/browser/net/predictor_api.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 126
127 void OnTheRecord(bool enable) { 127 void OnTheRecord(bool enable) {
128 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 128 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
129 if (on_the_record_switch == enable) 129 if (on_the_record_switch == enable)
130 return; 130 return;
131 on_the_record_switch = enable; 131 on_the_record_switch = enable;
132 if (on_the_record_switch) 132 if (on_the_record_switch)
133 g_browser_process->io_thread()->ChangedToOnTheRecord(); 133 g_browser_process->io_thread()->ChangedToOnTheRecord();
134 } 134 }
135 135
136 void RegisterPrefs(PrefService* local_state) {
137 local_state->RegisterListPref(prefs::kDnsStartupPrefetchList);
138 local_state->RegisterListPref(prefs::kDnsHostReferralList);
139 }
140
141 void RegisterUserPrefs(PrefService* user_prefs) { 136 void RegisterUserPrefs(PrefService* user_prefs) {
137 user_prefs->RegisterListPref(prefs::kDnsStartupPrefetchList);
138 user_prefs->RegisterListPref(prefs::kDnsHostReferralList);
142 user_prefs->RegisterBooleanPref(prefs::kDnsPrefetchingEnabled, true); 139 user_prefs->RegisterBooleanPref(prefs::kDnsPrefetchingEnabled, true);
143 } 140 }
144 141
145 // When enabled, we use the following instance to service all requests in the 142 // When enabled, we use the following instance to service all requests in the
146 // browser process. 143 // browser process.
147 // TODO(willchan): Look at killing this. 144 // TODO(willchan): Look at killing this.
148 static Predictor* g_predictor = NULL; 145 static Predictor* g_predictor = NULL;
149 146
150 // This API is only used in the browser process. 147 // This API is only used in the browser process.
151 // It is called from an IPC message originating in the renderer. It currently 148 // It is called from an IPC message originating in the renderer. It currently
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 bool preconnect_enabled) { 382 bool preconnect_enabled) {
386 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 383 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
387 384
388 bool prefetching_enabled = 385 bool prefetching_enabled =
389 user_prefs->GetBoolean(prefs::kDnsPrefetchingEnabled); 386 user_prefs->GetBoolean(prefs::kDnsPrefetchingEnabled);
390 387
391 // Gather the list of hostnames to prefetch on startup. 388 // Gather the list of hostnames to prefetch on startup.
392 UrlList urls = 389 UrlList urls =
393 GetPredictedUrlListAtStartup(user_prefs, local_state); 390 GetPredictedUrlListAtStartup(user_prefs, local_state);
394 391
392 // Migrate HostReferralList from local_state to user prefs if needed.
395 ListValue* referral_list = 393 ListValue* referral_list =
396 static_cast<ListValue*>( 394 (local_state->FindPreference(prefs::kDnsHostReferralList)) ?
jar (doing other things) 2010/12/13 20:27:29 If this is where you migrate the data, perhaps it
Miranda Callahan 2010/12/14 01:03:49 I think everything you say about deleting old data
397 local_state->GetMutableList(prefs::kDnsHostReferralList)->DeepCopy()); 395 static_cast<ListValue*>(
396 local_state->GetMutableList(prefs::kDnsHostReferralList)->DeepCopy()) :
397 static_cast<ListValue*>(
398 user_prefs->GetMutableList(prefs::kDnsHostReferralList)->DeepCopy());
398 399
399 g_browser_process->io_thread()->InitNetworkPredictor( 400 g_browser_process->io_thread()->InitNetworkPredictor(
400 prefetching_enabled, max_dns_queue_delay, max_parallel_resolves, urls, 401 prefetching_enabled, max_dns_queue_delay, max_parallel_resolves, urls,
401 referral_list, preconnect_enabled); 402 referral_list, preconnect_enabled);
402 } 403 }
403 404
404 void FinalizePredictorInitialization( 405 void FinalizePredictorInitialization(
405 Predictor* global_predictor, 406 Predictor* global_predictor,
406 const UrlList& startup_urls, 407 const UrlList& startup_urls,
407 ListValue* referral_list) { 408 ListValue* referral_list) {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 } 473 }
473 474
474 static UrlList GetPredictedUrlListAtStartup(PrefService* user_prefs, 475 static UrlList GetPredictedUrlListAtStartup(PrefService* user_prefs,
475 PrefService* local_state) { 476 PrefService* local_state) {
476 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 477 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
477 UrlList urls; 478 UrlList urls;
478 // Recall list of URLs we learned about during last session. 479 // Recall list of URLs we learned about during last session.
479 // This may catch secondary hostnames, pulled in by the homepages. It will 480 // This may catch secondary hostnames, pulled in by the homepages. It will
480 // also catch more of the "primary" home pages, since that was (presumably) 481 // also catch more of the "primary" home pages, since that was (presumably)
481 // rendered first (and will be rendered first this time too). 482 // rendered first (and will be rendered first this time too).
483 // Migrate StartupPrefetchList from local_state to user prefs if needed.
482 ListValue* startup_list = 484 ListValue* startup_list =
483 local_state->GetMutableList(prefs::kDnsStartupPrefetchList); 485 (local_state->FindPreference(prefs::kDnsStartupPrefetchList)) ?
486 local_state->GetMutableList(prefs::kDnsStartupPrefetchList) :
487 user_prefs->GetMutableList(prefs::kDnsStartupPrefetchList);
488
484 if (startup_list) { 489 if (startup_list) {
485 ListValue::iterator it = startup_list->begin(); 490 ListValue::iterator it = startup_list->begin();
486 int format_version = -1; 491 int format_version = -1;
487 if (it != startup_list->end() && 492 if (it != startup_list->end() &&
488 (*it)->GetAsInteger(&format_version) && 493 (*it)->GetAsInteger(&format_version) &&
489 format_version == kPredictorStartupFormatVersion) { 494 format_version == kPredictorStartupFormatVersion) {
490 ++it; 495 ++it;
491 for (; it != startup_list->end(); ++it) { 496 for (; it != startup_list->end(); ++it) {
492 std::string url_spec; 497 std::string url_spec;
493 if (!(*it)->GetAsString(&url_spec)) { 498 if (!(*it)->GetAsString(&url_spec)) {
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 DCHECK(!g_predictor); 619 DCHECK(!g_predictor);
615 InitNetworkPredictor(max_queueing_delay, max_parallel_resolves, user_prefs, 620 InitNetworkPredictor(max_queueing_delay, max_parallel_resolves, user_prefs,
616 local_state, preconnect_enabled); 621 local_state, preconnect_enabled);
617 } 622 }
618 } 623 }
619 624
620 PredictorInit::~PredictorInit() { 625 PredictorInit::~PredictorInit() {
621 } 626 }
622 627
623 } // namespace chrome_browser_net 628 } // namespace chrome_browser_net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698