| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |