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

Side by Side Diff: chrome/browser/ui/webui/options/browser_options_handler.cc

Issue 7522025: Turn on session restore by default for mac on Lion (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: JS nits and comment correction Created 9 years, 4 months 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/ui/webui/options/browser_options_handler.h" 5 #include "chrome/browser/ui/webui/options/browser_options_handler.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/singleton.h" 9 #include "base/memory/singleton.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 web_ui_->RegisterMessageCallback( 96 web_ui_->RegisterMessageCallback(
97 "setHomePage", 97 "setHomePage",
98 NewCallback(this, &BrowserOptionsHandler::SetHomePage)); 98 NewCallback(this, &BrowserOptionsHandler::SetHomePage));
99 web_ui_->RegisterMessageCallback( 99 web_ui_->RegisterMessageCallback(
100 "becomeDefaultBrowser", 100 "becomeDefaultBrowser",
101 NewCallback(this, &BrowserOptionsHandler::BecomeDefaultBrowser)); 101 NewCallback(this, &BrowserOptionsHandler::BecomeDefaultBrowser));
102 web_ui_->RegisterMessageCallback( 102 web_ui_->RegisterMessageCallback(
103 "setDefaultSearchEngine", 103 "setDefaultSearchEngine",
104 NewCallback(this, &BrowserOptionsHandler::SetDefaultSearchEngine)); 104 NewCallback(this, &BrowserOptionsHandler::SetDefaultSearchEngine));
105 web_ui_->RegisterMessageCallback( 105 web_ui_->RegisterMessageCallback(
106 "setRestoreOnStartup",
107 NewCallback(this, &BrowserOptionsHandler::SetRestoreOnStartup));
108 web_ui_->RegisterMessageCallback(
106 "removeStartupPages", 109 "removeStartupPages",
107 NewCallback(this, &BrowserOptionsHandler::RemoveStartupPages)); 110 NewCallback(this, &BrowserOptionsHandler::RemoveStartupPages));
108 web_ui_->RegisterMessageCallback( 111 web_ui_->RegisterMessageCallback(
109 "addStartupPage", 112 "addStartupPage",
110 NewCallback(this, &BrowserOptionsHandler::AddStartupPage)); 113 NewCallback(this, &BrowserOptionsHandler::AddStartupPage));
111 web_ui_->RegisterMessageCallback( 114 web_ui_->RegisterMessageCallback(
112 "editStartupPage", 115 "editStartupPage",
113 NewCallback(this, &BrowserOptionsHandler::EditStartupPage)); 116 NewCallback(this, &BrowserOptionsHandler::EditStartupPage));
114 web_ui_->RegisterMessageCallback( 117 web_ui_->RegisterMessageCallback(
115 "setStartupPagesToCurrentPages", 118 "setStartupPagesToCurrentPages",
(...skipping 25 matching lines...) Expand all
141 // Create our favicon data source. 144 // Create our favicon data source.
142 profile->GetChromeURLDataManager()->AddDataSource( 145 profile->GetChromeURLDataManager()->AddDataSource(
143 new FaviconSource(profile, FaviconSource::FAVICON)); 146 new FaviconSource(profile, FaviconSource::FAVICON));
144 147
145 homepage_.Init(prefs::kHomePage, profile->GetPrefs(), NULL); 148 homepage_.Init(prefs::kHomePage, profile->GetPrefs(), NULL);
146 default_browser_policy_.Init(prefs::kDefaultBrowserSettingEnabled, 149 default_browser_policy_.Init(prefs::kDefaultBrowserSettingEnabled,
147 g_browser_process->local_state(), 150 g_browser_process->local_state(),
148 this); 151 this);
149 UpdateDefaultBrowserState(); 152 UpdateDefaultBrowserState();
150 153
154 UpdateRestoreOnStartup();
151 startup_custom_pages_table_model_.reset( 155 startup_custom_pages_table_model_.reset(
152 new CustomHomePagesTableModel(profile)); 156 new CustomHomePagesTableModel(profile));
153 startup_custom_pages_table_model_->SetObserver(this); 157 startup_custom_pages_table_model_->SetObserver(this);
154 UpdateStartupPages(); 158 UpdateStartupPages();
155 159
156 pref_change_registrar_.Init(profile->GetPrefs()); 160 pref_change_registrar_.Init(profile->GetPrefs());
157 pref_change_registrar_.Add(prefs::kURLsToRestoreOnStartup, this); 161 pref_change_registrar_.Add(prefs::kURLsToRestoreOnStartup, this);
158 162
159 UpdateSearchEngines(); 163 UpdateSearchEngines();
160 164
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 void BrowserOptionsHandler::UpdateSearchEngines() { 318 void BrowserOptionsHandler::UpdateSearchEngines() {
315 template_url_service_ = TemplateURLServiceFactory::GetForProfile( 319 template_url_service_ = TemplateURLServiceFactory::GetForProfile(
316 web_ui_->GetProfile()); 320 web_ui_->GetProfile());
317 if (template_url_service_) { 321 if (template_url_service_) {
318 template_url_service_->Load(); 322 template_url_service_->Load();
319 template_url_service_->AddObserver(this); 323 template_url_service_->AddObserver(this);
320 OnTemplateURLServiceChanged(); 324 OnTemplateURLServiceChanged();
321 } 325 }
322 } 326 }
323 327
328 void BrowserOptionsHandler::UpdateRestoreOnStartup() {
329 Profile* profile = web_ui_->GetProfile();
330 const SessionStartupPref startup_pref =
331 SessionStartupPref::GetStartupPref(profile->GetPrefs());
332 FundamentalValue restore_on_startup(startup_pref.type);
333 web_ui_->CallJavascriptFunction("BrowserOptions.updateRestoreOnStartup",
334 restore_on_startup);
335 }
336
324 void BrowserOptionsHandler::UpdateStartupPages() { 337 void BrowserOptionsHandler::UpdateStartupPages() {
325 Profile* profile = web_ui_->GetProfile(); 338 Profile* profile = web_ui_->GetProfile();
326 const SessionStartupPref startup_pref = 339 const SessionStartupPref startup_pref =
327 SessionStartupPref::GetStartupPref(profile->GetPrefs()); 340 SessionStartupPref::GetStartupPref(profile->GetPrefs());
328 startup_custom_pages_table_model_->SetURLs(startup_pref.urls); 341 startup_custom_pages_table_model_->SetURLs(startup_pref.urls);
329 } 342 }
330 343
331 void BrowserOptionsHandler::OnModelChanged() { 344 void BrowserOptionsHandler::OnModelChanged() {
332 ListValue startup_pages; 345 ListValue startup_pages;
333 int page_count = startup_custom_pages_table_model_->RowCount(); 346 int page_count = startup_custom_pages_table_model_->RowCount();
(...skipping 24 matching lines...) Expand all
358 OnModelChanged(); 371 OnModelChanged();
359 } 372 }
360 373
361 void BrowserOptionsHandler::Observe(int type, 374 void BrowserOptionsHandler::Observe(int type,
362 const NotificationSource& source, 375 const NotificationSource& source,
363 const NotificationDetails& details) { 376 const NotificationDetails& details) {
364 if (type == chrome::NOTIFICATION_PREF_CHANGED) { 377 if (type == chrome::NOTIFICATION_PREF_CHANGED) {
365 std::string* pref = Details<std::string>(details).ptr(); 378 std::string* pref = Details<std::string>(details).ptr();
366 if (*pref == prefs::kDefaultBrowserSettingEnabled) { 379 if (*pref == prefs::kDefaultBrowserSettingEnabled) {
367 UpdateDefaultBrowserState(); 380 UpdateDefaultBrowserState();
381 } else if (*pref == prefs::kRestoreOnStartup) {
382 UpdateRestoreOnStartup();
368 } else if (*pref == prefs::kURLsToRestoreOnStartup) { 383 } else if (*pref == prefs::kURLsToRestoreOnStartup) {
369 UpdateStartupPages(); 384 UpdateStartupPages();
370 } else { 385 } else {
371 NOTREACHED(); 386 NOTREACHED();
372 } 387 }
373 } else { 388 } else {
374 NOTREACHED(); 389 NOTREACHED();
375 } 390 }
376 } 391 }
377 392
378 void BrowserOptionsHandler::SetStartupPagesToCurrentPages( 393 void BrowserOptionsHandler::SetStartupPagesToCurrentPages(
379 const ListValue* args) { 394 const ListValue* args) {
380 startup_custom_pages_table_model_->SetToCurrentlyOpenPages(); 395 startup_custom_pages_table_model_->SetToCurrentlyOpenPages();
381 SaveStartupPagesPref(); 396 SaveStartupPagesPref();
382 } 397 }
383 398
399 void BrowserOptionsHandler::SetRestoreOnStartup(const ListValue* args) {
400 std::string pref_string;
401 CHECK_EQ(args->GetSize(), 1UL);
402 CHECK(args->GetString(0, &pref_string));
403
404 PrefService* prefs = web_ui_->GetProfile()->GetPrefs();
405
406 SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefs);
407 if (pref_string == "0") {
408 pref.type = SessionStartupPref::DEFAULT;
409 } else if (pref_string == "1") {
410 pref.type = SessionStartupPref::LAST;
411 } else if (pref_string == "2") {
412 pref.type = SessionStartupPref::URLS;
413 } else {
414 NOTREACHED();
415 return;
416 }
417
418 SessionStartupPref::SetStartupPref(prefs, pref);
419 }
420
384 void BrowserOptionsHandler::RemoveStartupPages(const ListValue* args) { 421 void BrowserOptionsHandler::RemoveStartupPages(const ListValue* args) {
385 for (int i = args->GetSize() - 1; i >= 0; --i) { 422 for (int i = args->GetSize() - 1; i >= 0; --i) {
386 std::string string_value; 423 std::string string_value;
387 CHECK(args->GetString(i, &string_value)); 424 CHECK(args->GetString(i, &string_value));
388 425
389 int selected_index; 426 int selected_index;
390 base::StringToInt(string_value, &selected_index); 427 base::StringToInt(string_value, &selected_index);
391 if (selected_index < 0 || 428 if (selected_index < 0 ||
392 selected_index >= startup_custom_pages_table_model_->RowCount()) { 429 selected_index >= startup_custom_pages_table_model_->RowCount()) {
393 NOTREACHED(); 430 NOTREACHED();
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 DictionaryValue* entry = new DictionaryValue(); 547 DictionaryValue* entry = new DictionaryValue();
511 entry->SetString("title", match.description); 548 entry->SetString("title", match.description);
512 entry->SetString("displayURL", match.contents); 549 entry->SetString("displayURL", match.contents);
513 entry->SetString("url", match.destination_url.spec()); 550 entry->SetString("url", match.destination_url.spec());
514 suggestions.Append(entry); 551 suggestions.Append(entry);
515 } 552 }
516 553
517 web_ui_->CallJavascriptFunction( 554 web_ui_->CallJavascriptFunction(
518 "BrowserOptions.updateAutocompleteSuggestions", suggestions); 555 "BrowserOptions.updateAutocompleteSuggestions", suggestions);
519 } 556 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698