| OLD | NEW |
| 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/dom_ui/options/browser_options_handler.h" | 5 #include "chrome/browser/dom_ui/options/browser_options_handler.h" |
| 6 | 6 |
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/scoped_ptr.h" | 9 #include "base/scoped_ptr.h" |
| 10 #include "base/singleton.h" | 10 #include "base/singleton.h" |
| 11 #include "base/string_number_conversions.h" | 11 #include "base/string_number_conversions.h" |
| 12 #include "base/utf_string_conversions.h" | 12 #include "base/utf_string_conversions.h" |
| 13 #include "base/values.h" | 13 #include "base/values.h" |
| 14 #include "chrome/browser/browser_thread.h" | 14 #include "chrome/browser/browser_thread.h" |
| 15 #include "chrome/browser/custom_home_pages_table_model.h" | 15 #include "chrome/browser/custom_home_pages_table_model.h" |
| 16 #include "chrome/browser/dom_ui/dom_ui_favicon_source.h" | 16 #include "chrome/browser/dom_ui/dom_ui_favicon_source.h" |
| 17 #include "chrome/browser/dom_ui/options/dom_options_util.h" | 17 #include "chrome/browser/dom_ui/options/dom_options_util.h" |
| 18 #include "chrome/browser/dom_ui/options/options_managed_banner_handler.h" | 18 #include "chrome/browser/dom_ui/options/options_managed_banner_handler.h" |
| 19 #include "chrome/browser/instant/instant_confirm_dialog.h" | 19 #include "chrome/browser/instant/instant_confirm_dialog.h" |
| 20 #include "chrome/browser/metrics/user_metrics.h" | 20 #include "chrome/browser/metrics/user_metrics.h" |
| 21 #include "chrome/browser/net/url_fixer_upper.h" | 21 #include "chrome/browser/net/url_fixer_upper.h" |
| 22 #include "chrome/browser/prefs/session_startup_pref.h" | 22 #include "chrome/browser/prefs/session_startup_pref.h" |
| 23 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
| 24 #include "chrome/browser/search_engines/template_url.h" | 24 #include "chrome/browser/search_engines/template_url.h" |
| 25 #include "chrome/browser/search_engines/template_url_model.h" | 25 #include "chrome/browser/search_engines/template_url_model.h" |
| 26 #include "chrome/browser/ui/options/options_window.h" | 26 #include "chrome/browser/ui/options/options_window.h" |
| 27 #include "chrome/common/pref_names.h" |
| 27 #include "chrome/installer/util/browser_distribution.h" | 28 #include "chrome/installer/util/browser_distribution.h" |
| 28 #include "grit/chromium_strings.h" | 29 #include "grit/chromium_strings.h" |
| 29 #include "grit/generated_resources.h" | 30 #include "grit/generated_resources.h" |
| 30 | 31 |
| 31 BrowserOptionsHandler::BrowserOptionsHandler() | 32 BrowserOptionsHandler::BrowserOptionsHandler() |
| 32 : template_url_model_(NULL), startup_custom_pages_table_model_(NULL) { | 33 : template_url_model_(NULL), startup_custom_pages_table_model_(NULL) { |
| 33 #if !defined(OS_MACOSX) | 34 #if !defined(OS_MACOSX) |
| 34 default_browser_worker_ = new ShellIntegration::DefaultBrowserWorker(this); | 35 default_browser_worker_ = new ShellIntegration::DefaultBrowserWorker(this); |
| 35 #endif | 36 #endif |
| 36 } | 37 } |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 localized_strings->SetString("defaultBrowserUnknown", | 92 localized_strings->SetString("defaultBrowserUnknown", |
| 92 l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN, | 93 l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN, |
| 93 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); | 94 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); |
| 94 localized_strings->SetString("defaultBrowserUseAsDefault", | 95 localized_strings->SetString("defaultBrowserUseAsDefault", |
| 95 l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT, | 96 l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT, |
| 96 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); | 97 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); |
| 97 } | 98 } |
| 98 | 99 |
| 99 void BrowserOptionsHandler::RegisterMessages() { | 100 void BrowserOptionsHandler::RegisterMessages() { |
| 100 dom_ui_->RegisterMessageCallback( | 101 dom_ui_->RegisterMessageCallback( |
| 102 "setHomePage", |
| 103 NewCallback(this, &BrowserOptionsHandler::SetHomePage)); |
| 104 dom_ui_->RegisterMessageCallback( |
| 101 "becomeDefaultBrowser", | 105 "becomeDefaultBrowser", |
| 102 NewCallback(this, &BrowserOptionsHandler::BecomeDefaultBrowser)); | 106 NewCallback(this, &BrowserOptionsHandler::BecomeDefaultBrowser)); |
| 103 dom_ui_->RegisterMessageCallback( | 107 dom_ui_->RegisterMessageCallback( |
| 104 "setDefaultSearchEngine", | 108 "setDefaultSearchEngine", |
| 105 NewCallback(this, &BrowserOptionsHandler::SetDefaultSearchEngine)); | 109 NewCallback(this, &BrowserOptionsHandler::SetDefaultSearchEngine)); |
| 106 dom_ui_->RegisterMessageCallback( | 110 dom_ui_->RegisterMessageCallback( |
| 107 "removeStartupPages", | 111 "removeStartupPages", |
| 108 NewCallback(this, &BrowserOptionsHandler::RemoveStartupPages)); | 112 NewCallback(this, &BrowserOptionsHandler::RemoveStartupPages)); |
| 109 dom_ui_->RegisterMessageCallback( | 113 dom_ui_->RegisterMessageCallback( |
| 110 "addStartupPage", | 114 "addStartupPage", |
| 111 NewCallback(this, &BrowserOptionsHandler::AddStartupPage)); | 115 NewCallback(this, &BrowserOptionsHandler::AddStartupPage)); |
| 112 dom_ui_->RegisterMessageCallback( | 116 dom_ui_->RegisterMessageCallback( |
| 113 "editStartupPage", | 117 "editStartupPage", |
| 114 NewCallback(this, &BrowserOptionsHandler::EditStartupPage)); | 118 NewCallback(this, &BrowserOptionsHandler::EditStartupPage)); |
| 115 dom_ui_->RegisterMessageCallback( | 119 dom_ui_->RegisterMessageCallback( |
| 116 "setStartupPagesToCurrentPages", | 120 "setStartupPagesToCurrentPages", |
| 117 NewCallback(this, &BrowserOptionsHandler::SetStartupPagesToCurrentPages)); | 121 NewCallback(this, &BrowserOptionsHandler::SetStartupPagesToCurrentPages)); |
| 118 } | 122 } |
| 119 | 123 |
| 120 void BrowserOptionsHandler::Initialize() { | 124 void BrowserOptionsHandler::Initialize() { |
| 125 Profile* profile = dom_ui_->GetProfile(); |
| 126 |
| 121 // Create our favicon data source. | 127 // Create our favicon data source. |
| 122 BrowserThread::PostTask( | 128 BrowserThread::PostTask( |
| 123 BrowserThread::IO, FROM_HERE, | 129 BrowserThread::IO, FROM_HERE, |
| 124 NewRunnableMethod( | 130 NewRunnableMethod( |
| 125 ChromeURLDataManager::GetInstance(), | 131 ChromeURLDataManager::GetInstance(), |
| 126 &ChromeURLDataManager::AddDataSource, | 132 &ChromeURLDataManager::AddDataSource, |
| 127 make_scoped_refptr(new DOMUIFavIconSource(dom_ui_->GetProfile())))); | 133 make_scoped_refptr(new DOMUIFavIconSource(profile)))); |
| 128 | 134 |
| 135 homepage_.Init(prefs::kHomePage, profile->GetPrefs(), NULL); |
| 129 UpdateDefaultBrowserState(); | 136 UpdateDefaultBrowserState(); |
| 130 UpdateStartupPages(); | 137 UpdateStartupPages(); |
| 131 UpdateSearchEngines(); | 138 UpdateSearchEngines(); |
| 132 banner_handler_.reset( | 139 banner_handler_.reset( |
| 133 new OptionsManagedBannerHandler(dom_ui_, | 140 new OptionsManagedBannerHandler(dom_ui_, |
| 134 ASCIIToUTF16("BrowserOptions"), | 141 ASCIIToUTF16("BrowserOptions"), |
| 135 OPTIONS_PAGE_GENERAL)); | 142 OPTIONS_PAGE_GENERAL)); |
| 136 } | 143 } |
| 137 | 144 |
| 145 void BrowserOptionsHandler::SetHomePage(const ListValue* args) { |
| 146 std::string url_string; |
| 147 std::string do_fixup_string; |
| 148 int do_fixup; |
| 149 if (args->GetSize() != 2 || |
| 150 !args->GetString(0, &url_string) || |
| 151 !args->GetString(1, &do_fixup_string) || |
| 152 !base::StringToInt(do_fixup_string, &do_fixup)) { |
| 153 CHECK(false); |
| 154 }; |
| 155 |
| 156 if (do_fixup) { |
| 157 GURL fixed_url = URLFixerUpper::FixupURL(url_string, std::string()); |
| 158 url_string = fixed_url.spec(); |
| 159 } |
| 160 homepage_.SetValueIfNotManaged(url_string); |
| 161 } |
| 162 |
| 138 void BrowserOptionsHandler::UpdateDefaultBrowserState() { | 163 void BrowserOptionsHandler::UpdateDefaultBrowserState() { |
| 139 #if defined(OS_WIN) | 164 #if defined(OS_WIN) |
| 140 // Check for side-by-side first. | 165 // Check for side-by-side first. |
| 141 if (!BrowserDistribution::GetDistribution()->CanSetAsDefault()) { | 166 if (!BrowserDistribution::GetDistribution()->CanSetAsDefault()) { |
| 142 SetDefaultBrowserUIString(IDS_OPTIONS_DEFAULTBROWSER_SXS); | 167 SetDefaultBrowserUIString(IDS_OPTIONS_DEFAULTBROWSER_SXS); |
| 143 return; | 168 return; |
| 144 } | 169 } |
| 145 #endif | 170 #endif |
| 146 | 171 |
| 147 #if defined(OS_MACOSX) | 172 #if defined(OS_MACOSX) |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 } | 402 } |
| 378 | 403 |
| 379 void BrowserOptionsHandler::SaveStartupPagesPref() { | 404 void BrowserOptionsHandler::SaveStartupPagesPref() { |
| 380 PrefService* prefs = dom_ui_->GetProfile()->GetPrefs(); | 405 PrefService* prefs = dom_ui_->GetProfile()->GetPrefs(); |
| 381 | 406 |
| 382 SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefs); | 407 SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefs); |
| 383 pref.urls = startup_custom_pages_table_model_->GetURLs(); | 408 pref.urls = startup_custom_pages_table_model_->GetURLs(); |
| 384 | 409 |
| 385 SessionStartupPref::SetStartupPref(prefs, pref); | 410 SessionStartupPref::SetStartupPref(prefs, pref); |
| 386 } | 411 } |
| OLD | NEW |