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

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: 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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 web_ui_->RegisterMessageCallback( 95 web_ui_->RegisterMessageCallback(
96 "setHomePage", 96 "setHomePage",
97 NewCallback(this, &BrowserOptionsHandler::SetHomePage)); 97 NewCallback(this, &BrowserOptionsHandler::SetHomePage));
98 web_ui_->RegisterMessageCallback( 98 web_ui_->RegisterMessageCallback(
99 "becomeDefaultBrowser", 99 "becomeDefaultBrowser",
100 NewCallback(this, &BrowserOptionsHandler::BecomeDefaultBrowser)); 100 NewCallback(this, &BrowserOptionsHandler::BecomeDefaultBrowser));
101 web_ui_->RegisterMessageCallback( 101 web_ui_->RegisterMessageCallback(
102 "setDefaultSearchEngine", 102 "setDefaultSearchEngine",
103 NewCallback(this, &BrowserOptionsHandler::SetDefaultSearchEngine)); 103 NewCallback(this, &BrowserOptionsHandler::SetDefaultSearchEngine));
104 web_ui_->RegisterMessageCallback( 104 web_ui_->RegisterMessageCallback(
105 "setRestoreOnStartup",
106 NewCallback(this, &BrowserOptionsHandler::SetRestoreOnStartup));
107 web_ui_->RegisterMessageCallback(
105 "removeStartupPages", 108 "removeStartupPages",
106 NewCallback(this, &BrowserOptionsHandler::RemoveStartupPages)); 109 NewCallback(this, &BrowserOptionsHandler::RemoveStartupPages));
107 web_ui_->RegisterMessageCallback( 110 web_ui_->RegisterMessageCallback(
108 "addStartupPage", 111 "addStartupPage",
109 NewCallback(this, &BrowserOptionsHandler::AddStartupPage)); 112 NewCallback(this, &BrowserOptionsHandler::AddStartupPage));
110 web_ui_->RegisterMessageCallback( 113 web_ui_->RegisterMessageCallback(
111 "editStartupPage", 114 "editStartupPage",
112 NewCallback(this, &BrowserOptionsHandler::EditStartupPage)); 115 NewCallback(this, &BrowserOptionsHandler::EditStartupPage));
113 web_ui_->RegisterMessageCallback( 116 web_ui_->RegisterMessageCallback(
114 "setStartupPagesToCurrentPages", 117 "setStartupPagesToCurrentPages",
(...skipping 22 matching lines...) Expand all
137 // Create our favicon data source. 140 // Create our favicon data source.
138 profile->GetChromeURLDataManager()->AddDataSource( 141 profile->GetChromeURLDataManager()->AddDataSource(
139 new FaviconSource(profile, FaviconSource::FAVICON)); 142 new FaviconSource(profile, FaviconSource::FAVICON));
140 143
141 homepage_.Init(prefs::kHomePage, profile->GetPrefs(), NULL); 144 homepage_.Init(prefs::kHomePage, profile->GetPrefs(), NULL);
142 default_browser_policy_.Init(prefs::kDefaultBrowserSettingEnabled, 145 default_browser_policy_.Init(prefs::kDefaultBrowserSettingEnabled,
143 g_browser_process->local_state(), 146 g_browser_process->local_state(),
144 this); 147 this);
145 UpdateDefaultBrowserState(); 148 UpdateDefaultBrowserState();
146 149
150 UpdateRestoreOnStartup();
147 startup_custom_pages_table_model_.reset( 151 startup_custom_pages_table_model_.reset(
148 new CustomHomePagesTableModel(profile)); 152 new CustomHomePagesTableModel(profile));
149 startup_custom_pages_table_model_->SetObserver(this); 153 startup_custom_pages_table_model_->SetObserver(this);
150 UpdateStartupPages(); 154 UpdateStartupPages();
151 155
152 pref_change_registrar_.Init(profile->GetPrefs()); 156 pref_change_registrar_.Init(profile->GetPrefs());
153 pref_change_registrar_.Add(prefs::kURLsToRestoreOnStartup, this); 157 pref_change_registrar_.Add(prefs::kURLsToRestoreOnStartup, this);
154 158
155 UpdateSearchEngines(); 159 UpdateSearchEngines();
156 160
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 void BrowserOptionsHandler::UpdateSearchEngines() { 314 void BrowserOptionsHandler::UpdateSearchEngines() {
311 template_url_service_ = TemplateURLServiceFactory::GetForProfile( 315 template_url_service_ = TemplateURLServiceFactory::GetForProfile(
312 web_ui_->GetProfile()); 316 web_ui_->GetProfile());
313 if (template_url_service_) { 317 if (template_url_service_) {
314 template_url_service_->Load(); 318 template_url_service_->Load();
315 template_url_service_->AddObserver(this); 319 template_url_service_->AddObserver(this);
316 OnTemplateURLServiceChanged(); 320 OnTemplateURLServiceChanged();
317 } 321 }
318 } 322 }
319 323
324 void BrowserOptionsHandler::UpdateRestoreOnStartup() {
325 Profile* profile = web_ui_->GetProfile();
326 const SessionStartupPref startup_pref =
327 SessionStartupPref::GetStartupPref(profile->GetPrefs());
328 FundamentalValue restore_on_startup(startup_pref.type);
329 web_ui_->CallJavascriptFunction("BrowserOptions.updateRestoreOnStartup",
330 restore_on_startup);
331 }
332
320 void BrowserOptionsHandler::UpdateStartupPages() { 333 void BrowserOptionsHandler::UpdateStartupPages() {
321 Profile* profile = web_ui_->GetProfile(); 334 Profile* profile = web_ui_->GetProfile();
322 const SessionStartupPref startup_pref = 335 const SessionStartupPref startup_pref =
323 SessionStartupPref::GetStartupPref(profile->GetPrefs()); 336 SessionStartupPref::GetStartupPref(profile->GetPrefs());
324 startup_custom_pages_table_model_->SetURLs(startup_pref.urls); 337 startup_custom_pages_table_model_->SetURLs(startup_pref.urls);
325 } 338 }
326 339
327 void BrowserOptionsHandler::OnModelChanged() { 340 void BrowserOptionsHandler::OnModelChanged() {
328 ListValue startup_pages; 341 ListValue startup_pages;
329 int page_count = startup_custom_pages_table_model_->RowCount(); 342 int page_count = startup_custom_pages_table_model_->RowCount();
(...skipping 24 matching lines...) Expand all
354 OnModelChanged(); 367 OnModelChanged();
355 } 368 }
356 369
357 void BrowserOptionsHandler::Observe(int type, 370 void BrowserOptionsHandler::Observe(int type,
358 const NotificationSource& source, 371 const NotificationSource& source,
359 const NotificationDetails& details) { 372 const NotificationDetails& details) {
360 if (type == chrome::NOTIFICATION_PREF_CHANGED) { 373 if (type == chrome::NOTIFICATION_PREF_CHANGED) {
361 std::string* pref = Details<std::string>(details).ptr(); 374 std::string* pref = Details<std::string>(details).ptr();
362 if (*pref == prefs::kDefaultBrowserSettingEnabled) { 375 if (*pref == prefs::kDefaultBrowserSettingEnabled) {
363 UpdateDefaultBrowserState(); 376 UpdateDefaultBrowserState();
377 } else if (*pref == prefs::kRestoreOnStartup) {
378 UpdateRestoreOnStartup();
364 } else if (*pref == prefs::kURLsToRestoreOnStartup) { 379 } else if (*pref == prefs::kURLsToRestoreOnStartup) {
365 UpdateStartupPages(); 380 UpdateStartupPages();
366 } else { 381 } else {
367 NOTREACHED(); 382 NOTREACHED();
368 } 383 }
369 } else { 384 } else {
370 NOTREACHED(); 385 NOTREACHED();
371 } 386 }
372 } 387 }
373 388
374 void BrowserOptionsHandler::SetStartupPagesToCurrentPages( 389 void BrowserOptionsHandler::SetStartupPagesToCurrentPages(
375 const ListValue* args) { 390 const ListValue* args) {
376 startup_custom_pages_table_model_->SetToCurrentlyOpenPages(); 391 startup_custom_pages_table_model_->SetToCurrentlyOpenPages();
377 SaveStartupPagesPref(); 392 SaveStartupPagesPref();
378 } 393 }
379 394
395 void BrowserOptionsHandler::SetRestoreOnStartup(const ListValue* args) {
396 std::string pref_string;
397 CHECK_EQ(args->GetSize(), 1UL);
398 CHECK(args->GetString(0, &pref_string));
399
400 PrefService* prefs = web_ui_->GetProfile()->GetPrefs();
401
402 SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefs);
403 if (pref_string == "0") {
404 pref.type = SessionStartupPref::DEFAULT;
405 } else if (pref_string == "1") {
406 pref.type = SessionStartupPref::LAST;
407 } else if (pref_string == "2") {
408 pref.type = SessionStartupPref::URLS;
409 } else {
410 NOTREACHED();
411 return;
412 }
413
414 SessionStartupPref::SetStartupPref(prefs, pref);
415 }
416
380 void BrowserOptionsHandler::RemoveStartupPages(const ListValue* args) { 417 void BrowserOptionsHandler::RemoveStartupPages(const ListValue* args) {
381 for (int i = args->GetSize() - 1; i >= 0; --i) { 418 for (int i = args->GetSize() - 1; i >= 0; --i) {
382 std::string string_value; 419 std::string string_value;
383 CHECK(args->GetString(i, &string_value)); 420 CHECK(args->GetString(i, &string_value));
384 421
385 int selected_index; 422 int selected_index;
386 base::StringToInt(string_value, &selected_index); 423 base::StringToInt(string_value, &selected_index);
387 if (selected_index < 0 || 424 if (selected_index < 0 ||
388 selected_index >= startup_custom_pages_table_model_->RowCount()) { 425 selected_index >= startup_custom_pages_table_model_->RowCount()) {
389 NOTREACHED(); 426 NOTREACHED();
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 DictionaryValue* entry = new DictionaryValue(); 536 DictionaryValue* entry = new DictionaryValue();
500 entry->SetString("title", match.description); 537 entry->SetString("title", match.description);
501 entry->SetString("displayURL", match.contents); 538 entry->SetString("displayURL", match.contents);
502 entry->SetString("url", match.destination_url.spec()); 539 entry->SetString("url", match.destination_url.spec());
503 suggestions.Append(entry); 540 suggestions.Append(entry);
504 } 541 }
505 542
506 web_ui_->CallJavascriptFunction( 543 web_ui_->CallJavascriptFunction(
507 "BrowserOptions.updateAutocompleteSuggestions", suggestions); 544 "BrowserOptions.updateAutocompleteSuggestions", suggestions);
508 } 545 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698