| 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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |