Index: chrome/browser/ui/webui/options/browser_options_handler.cc |
diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc |
deleted file mode 100644 |
index 1e642167c5c76d8515e5bd835c37d0243b8ca1d9..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc |
+++ /dev/null |
@@ -1,586 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/ui/webui/options/browser_options_handler.h" |
- |
-#include "base/basictypes.h" |
-#include "base/bind.h" |
-#include "base/bind_helpers.h" |
-#include "base/command_line.h" |
-#include "base/memory/singleton.h" |
-#include "base/path_service.h" |
-#include "base/string_number_conversions.h" |
-#include "base/utf_string_conversions.h" |
-#include "base/values.h" |
-#include "chrome/browser/auto_launch_trial.h" |
-#include "chrome/browser/autocomplete/autocomplete.h" |
-#include "chrome/browser/autocomplete/autocomplete_match.h" |
-#include "chrome/browser/browser_process.h" |
-#include "chrome/browser/custom_home_pages_table_model.h" |
-#include "chrome/browser/instant/instant_confirm_dialog.h" |
-#include "chrome/browser/instant/instant_controller.h" |
-#include "chrome/browser/instant/instant_field_trial.h" |
-#include "chrome/browser/net/url_fixer_upper.h" |
-#include "chrome/browser/prefs/pref_service.h" |
-#include "chrome/browser/prefs/session_startup_pref.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/search_engines/template_url.h" |
-#include "chrome/browser/search_engines/template_url_service.h" |
-#include "chrome/browser/search_engines/template_url_service_factory.h" |
-#include "chrome/browser/ui/webui/favicon_source.h" |
-#include "chrome/common/chrome_constants.h" |
-#include "chrome/common/chrome_notification_types.h" |
-#include "chrome/common/chrome_switches.h" |
-#include "chrome/common/pref_names.h" |
-#include "chrome/common/url_constants.h" |
-#include "content/public/browser/browser_thread.h" |
-#include "content/public/browser/notification_details.h" |
-#include "content/public/browser/notification_source.h" |
-#include "content/public/browser/user_metrics.h" |
-#include "content/public/browser/web_ui.h" |
-#include "grit/chromium_strings.h" |
-#include "grit/generated_resources.h" |
-#include "ui/base/l10n/l10n_util.h" |
- |
-#if defined(OS_WIN) |
-#include "chrome/installer/util/auto_launch_util.h" |
-#endif |
- |
-using content::BrowserThread; |
-using content::UserMetricsAction; |
- |
-BrowserOptionsHandler::BrowserOptionsHandler() |
- : template_url_service_(NULL), |
- startup_custom_pages_table_model_(NULL), |
- ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_for_file_(this)), |
- ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_for_ui_(this)) { |
-#if !defined(OS_MACOSX) |
- default_browser_worker_ = new ShellIntegration::DefaultBrowserWorker(this); |
-#endif |
-} |
- |
-BrowserOptionsHandler::~BrowserOptionsHandler() { |
- if (default_browser_worker_.get()) |
- default_browser_worker_->ObserverDestroyed(); |
- if (template_url_service_) |
- template_url_service_->RemoveObserver(this); |
-} |
- |
-void BrowserOptionsHandler::GetLocalizedValues( |
- DictionaryValue* localized_strings) { |
- DCHECK(localized_strings); |
- |
- static OptionsStringResource resources[] = { |
- { "startupGroupName", IDS_OPTIONS_STARTUP_GROUP_NAME }, |
- { "startupShowDefaultAndNewTab", |
- IDS_OPTIONS_STARTUP_SHOW_DEFAULT_AND_NEWTAB}, |
- { "startupShowLastSession", IDS_OPTIONS_STARTUP_SHOW_LAST_SESSION }, |
- { "startupShowPages", IDS_OPTIONS_STARTUP_SHOW_PAGES }, |
- { "startupAddLabel", IDS_OPTIONS_STARTUP_ADD_LABEL }, |
- { "startupUseCurrent", IDS_OPTIONS_STARTUP_USE_CURRENT }, |
- { "homepageGroupName", IDS_OPTIONS_HOMEPAGE_GROUP_NAME }, |
- { "homepageUseNewTab", IDS_OPTIONS_HOMEPAGE_USE_NEWTAB }, |
- { "homepageUseURL", IDS_OPTIONS_HOMEPAGE_USE_URL }, |
- { "toolbarGroupName", IDS_OPTIONS_TOOLBAR_GROUP_NAME }, |
- { "toolbarShowHomeButton", IDS_OPTIONS_TOOLBAR_SHOW_HOME_BUTTON }, |
- { "toolbarShowBookmarksBar", IDS_OPTIONS_TOOLBAR_SHOW_BOOKMARKS_BAR }, |
- { "defaultSearchGroupName", IDS_OPTIONS_DEFAULTSEARCH_GROUP_NAME }, |
- { "defaultSearchManageEngines", IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES }, |
- { "instantName", IDS_INSTANT_PREF }, |
- { "instantWarningText", IDS_INSTANT_PREF_WARNING }, |
- { "instantConfirmTitle", IDS_INSTANT_OPT_IN_TITLE }, |
- { "instantConfirmMessage", IDS_INSTANT_OPT_IN_MESSAGE }, |
- { "defaultBrowserGroupName", IDS_OPTIONS_DEFAULTBROWSER_GROUP_NAME }, |
- }; |
- |
- RegisterStrings(localized_strings, resources, arraysize(resources)); |
- RegisterTitle(localized_strings, "browserPage", |
- IDS_OPTIONS_GENERAL_TAB_LABEL); |
- |
- localized_strings->SetString("instantLearnMoreLink", |
- ASCIIToUTF16(chrome::kInstantLearnMoreURL)); |
- localized_strings->SetString("defaultBrowserUnknown", |
- l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN, |
- l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); |
- localized_strings->SetString("defaultBrowserUseAsDefault", |
- l10n_util::GetStringFUTF16(IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT, |
- l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); |
- localized_strings->SetString("autoLaunchText", |
- l10n_util::GetStringFUTF16(IDS_AUTOLAUNCH_TEXT, |
- l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); |
-} |
- |
-void BrowserOptionsHandler::RegisterMessages() { |
- web_ui()->RegisterMessageCallback("becomeDefaultBrowser", |
- base::Bind(&BrowserOptionsHandler::BecomeDefaultBrowser, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("setDefaultSearchEngine", |
- base::Bind(&BrowserOptionsHandler::SetDefaultSearchEngine, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("removeStartupPages", |
- base::Bind(&BrowserOptionsHandler::RemoveStartupPages, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("addStartupPage", |
- base::Bind(&BrowserOptionsHandler::AddStartupPage, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("editStartupPage", |
- base::Bind(&BrowserOptionsHandler::EditStartupPage, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("setStartupPagesToCurrentPages", |
- base::Bind(&BrowserOptionsHandler::SetStartupPagesToCurrentPages, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("dragDropStartupPage", |
- base::Bind(&BrowserOptionsHandler::DragDropStartupPage, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("requestAutocompleteSuggestions", |
- base::Bind(&BrowserOptionsHandler::RequestAutocompleteSuggestions, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("enableInstant", |
- base::Bind(&BrowserOptionsHandler::EnableInstant, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("disableInstant", |
- base::Bind(&BrowserOptionsHandler::DisableInstant, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("getInstantFieldTrialStatus", |
- base::Bind(&BrowserOptionsHandler::GetInstantFieldTrialStatus, |
- base::Unretained(this))); |
-} |
- |
-void BrowserOptionsHandler::InitializeHandler() { |
- Profile* profile = Profile::FromWebUI(web_ui()); |
- |
- // Create our favicon data source. |
- profile->GetChromeURLDataManager()->AddDataSource( |
- new FaviconSource(profile, FaviconSource::FAVICON)); |
- |
- homepage_.Init(prefs::kHomePage, profile->GetPrefs(), NULL); |
- default_browser_policy_.Init(prefs::kDefaultBrowserSettingEnabled, |
- g_browser_process->local_state(), |
- this); |
- UpdateDefaultBrowserState(); |
- |
- startup_custom_pages_table_model_.reset( |
- new CustomHomePagesTableModel(profile)); |
- startup_custom_pages_table_model_->SetObserver(this); |
- UpdateStartupPages(); |
- |
- pref_change_registrar_.Init(profile->GetPrefs()); |
- pref_change_registrar_.Add(prefs::kURLsToRestoreOnStartup, this); |
- |
- UpdateSearchEngines(); |
- |
- autocomplete_controller_.reset(new AutocompleteController(profile, this)); |
- |
-#if defined(OS_WIN) |
- const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
- if (!command_line.HasSwitch(switches::kChromeFrame) && |
- !command_line.HasSwitch(switches::kUserDataDir)) { |
- BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, |
- base::Bind(&BrowserOptionsHandler::CheckAutoLaunch, |
- weak_ptr_factory_for_ui_.GetWeakPtr(), |
- weak_ptr_factory_for_file_.GetWeakPtr(), |
- profile->GetPath())); |
- weak_ptr_factory_for_ui_.DetachFromThread(); |
- } |
-#endif |
-} |
- |
-void BrowserOptionsHandler::CheckAutoLaunch( |
- base::WeakPtr<BrowserOptionsHandler> weak_this, |
- const FilePath& profile_path) { |
-#if defined(OS_WIN) |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
- |
- // Auto-launch is not supported for secondary profiles yet. |
- if (profile_path.BaseName().value() != ASCIIToUTF16(chrome::kInitialProfile)) |
- return; |
- |
- // Pass in weak pointer to this to avoid race if BrowserOptionsHandler is |
- // deleted. |
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
- base::Bind(&BrowserOptionsHandler::CheckAutoLaunchCallback, |
- weak_this, |
- auto_launch_trial::IsInAutoLaunchGroup(), |
- auto_launch_util::WillLaunchAtLogin( |
- FilePath(), |
- profile_path.BaseName().value()))); |
-#endif |
-} |
- |
-void BrowserOptionsHandler::CheckAutoLaunchCallback( |
- bool is_in_auto_launch_group, |
- bool will_launch_at_login) { |
-#if defined(OS_WIN) |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- |
- if (is_in_auto_launch_group) { |
- web_ui()->RegisterMessageCallback("toggleAutoLaunch", |
- base::Bind(&BrowserOptionsHandler::ToggleAutoLaunch, |
- base::Unretained(this))); |
- |
- base::FundamentalValue enabled(will_launch_at_login); |
- web_ui()->CallJavascriptFunction("BrowserOptions.updateAutoLaunchState", |
- enabled); |
- } |
-#endif |
-} |
- |
-void BrowserOptionsHandler::UpdateDefaultBrowserState() { |
- // Check for side-by-side first. |
- if (!ShellIntegration::CanSetAsDefaultBrowser()) { |
- SetDefaultBrowserUIString(IDS_OPTIONS_DEFAULTBROWSER_SXS); |
- return; |
- } |
- |
-#if defined(OS_MACOSX) |
- ShellIntegration::DefaultWebClientState state = |
- ShellIntegration::IsDefaultBrowser(); |
- int status_string_id; |
- if (state == ShellIntegration::IS_DEFAULT_WEB_CLIENT) |
- status_string_id = IDS_OPTIONS_DEFAULTBROWSER_DEFAULT; |
- else if (state == ShellIntegration::NOT_DEFAULT_WEB_CLIENT) |
- status_string_id = IDS_OPTIONS_DEFAULTBROWSER_NOTDEFAULT; |
- else |
- status_string_id = IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN; |
- |
- SetDefaultBrowserUIString(status_string_id); |
-#else |
- default_browser_worker_->StartCheckIsDefault(); |
-#endif |
-} |
- |
-void BrowserOptionsHandler::BecomeDefaultBrowser(const ListValue* args) { |
- // If the default browser setting is managed then we should not be able to |
- // call this function. |
- if (default_browser_policy_.IsManaged()) |
- return; |
- |
- content::RecordAction(UserMetricsAction("Options_SetAsDefaultBrowser")); |
-#if defined(OS_MACOSX) |
- if (ShellIntegration::SetAsDefaultBrowser()) |
- UpdateDefaultBrowserState(); |
-#else |
- default_browser_worker_->StartSetAsDefault(); |
- // Callback takes care of updating UI. |
-#endif |
- |
- // If the user attempted to make Chrome the default browser, then he/she |
- // arguably wants to be notified when that changes. |
- PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); |
- prefs->SetBoolean(prefs::kCheckDefaultBrowser, true); |
-} |
- |
-int BrowserOptionsHandler::StatusStringIdForState( |
- ShellIntegration::DefaultWebClientState state) { |
- if (state == ShellIntegration::IS_DEFAULT_WEB_CLIENT) |
- return IDS_OPTIONS_DEFAULTBROWSER_DEFAULT; |
- if (state == ShellIntegration::NOT_DEFAULT_WEB_CLIENT) |
- return IDS_OPTIONS_DEFAULTBROWSER_NOTDEFAULT; |
- return IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN; |
-} |
- |
-void BrowserOptionsHandler::SetDefaultWebClientUIState( |
- ShellIntegration::DefaultWebClientUIState state) { |
- int status_string_id; |
- if (state == ShellIntegration::STATE_IS_DEFAULT) |
- status_string_id = IDS_OPTIONS_DEFAULTBROWSER_DEFAULT; |
- else if (state == ShellIntegration::STATE_NOT_DEFAULT) |
- status_string_id = IDS_OPTIONS_DEFAULTBROWSER_NOTDEFAULT; |
- else if (state == ShellIntegration::STATE_UNKNOWN) |
- status_string_id = IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN; |
- else |
- return; // Still processing. |
- |
- SetDefaultBrowserUIString(status_string_id); |
-} |
- |
-void BrowserOptionsHandler::SetDefaultBrowserUIString(int status_string_id) { |
- scoped_ptr<Value> status_string(Value::CreateStringValue( |
- l10n_util::GetStringFUTF16(status_string_id, |
- l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)))); |
- |
- scoped_ptr<Value> is_default(Value::CreateBooleanValue( |
- status_string_id == IDS_OPTIONS_DEFAULTBROWSER_DEFAULT)); |
- |
- scoped_ptr<Value> can_be_default(Value::CreateBooleanValue( |
- !default_browser_policy_.IsManaged() && |
- (status_string_id == IDS_OPTIONS_DEFAULTBROWSER_DEFAULT || |
- status_string_id == IDS_OPTIONS_DEFAULTBROWSER_NOTDEFAULT))); |
- |
- web_ui()->CallJavascriptFunction( |
- "BrowserOptions.updateDefaultBrowserState", |
- *status_string, *is_default, *can_be_default); |
-} |
- |
-void BrowserOptionsHandler::OnTemplateURLServiceChanged() { |
- if (!template_url_service_ || !template_url_service_->loaded()) |
- return; |
- |
- const TemplateURL* default_url = |
- template_url_service_->GetDefaultSearchProvider(); |
- |
- int default_index = 0; |
- ListValue search_engines; |
- TemplateURLService::TemplateURLVector model_urls( |
- template_url_service_->GetTemplateURLs()); |
- for (size_t i = 0; i < model_urls.size(); ++i) { |
- if (!model_urls[i]->ShowInDefaultList()) |
- continue; |
- |
- DictionaryValue* entry = new DictionaryValue(); |
- entry->SetString("name", model_urls[i]->short_name()); |
- entry->SetInteger("index", i); |
- search_engines.Append(entry); |
- if (model_urls[i] == default_url) |
- default_index = i; |
- } |
- |
- scoped_ptr<Value> default_value(Value::CreateIntegerValue(default_index)); |
- scoped_ptr<Value> default_managed(Value::CreateBooleanValue( |
- template_url_service_->is_default_search_managed())); |
- |
- web_ui()->CallJavascriptFunction("BrowserOptions.updateSearchEngines", |
- search_engines, *default_value, |
- *default_managed); |
-} |
- |
-void BrowserOptionsHandler::SetDefaultSearchEngine(const ListValue* args) { |
- int selected_index = -1; |
- if (!ExtractIntegerValue(args, &selected_index)) { |
- NOTREACHED(); |
- return; |
- } |
- |
- TemplateURLService::TemplateURLVector model_urls( |
- template_url_service_->GetTemplateURLs()); |
- if (selected_index >= 0 && |
- selected_index < static_cast<int>(model_urls.size())) |
- template_url_service_->SetDefaultSearchProvider(model_urls[selected_index]); |
- |
- content::RecordAction(UserMetricsAction("Options_SearchEngineChanged")); |
-} |
- |
-void BrowserOptionsHandler::UpdateSearchEngines() { |
- template_url_service_ = |
- TemplateURLServiceFactory::GetForProfile(Profile::FromWebUI(web_ui())); |
- if (template_url_service_) { |
- template_url_service_->Load(); |
- template_url_service_->AddObserver(this); |
- OnTemplateURLServiceChanged(); |
- } |
-} |
- |
-void BrowserOptionsHandler::UpdateStartupPages() { |
- Profile* profile = Profile::FromWebUI(web_ui()); |
- const SessionStartupPref startup_pref = |
- SessionStartupPref::GetStartupPref(profile->GetPrefs()); |
- startup_custom_pages_table_model_->SetURLs(startup_pref.urls); |
-} |
- |
-void BrowserOptionsHandler::OnModelChanged() { |
- ListValue startup_pages; |
- int page_count = startup_custom_pages_table_model_->RowCount(); |
- std::vector<GURL> urls = startup_custom_pages_table_model_->GetURLs(); |
- for (int i = 0; i < page_count; ++i) { |
- DictionaryValue* entry = new DictionaryValue(); |
- entry->SetString("title", startup_custom_pages_table_model_->GetText(i, 0)); |
- entry->SetString("url", urls[i].spec()); |
- entry->SetString("tooltip", |
- startup_custom_pages_table_model_->GetTooltip(i)); |
- entry->SetString("modelIndex", base::IntToString(i)); |
- startup_pages.Append(entry); |
- } |
- |
- web_ui()->CallJavascriptFunction("BrowserOptions.updateStartupPages", |
- startup_pages); |
-} |
- |
-void BrowserOptionsHandler::OnItemsChanged(int start, int length) { |
- OnModelChanged(); |
-} |
- |
-void BrowserOptionsHandler::OnItemsAdded(int start, int length) { |
- OnModelChanged(); |
-} |
- |
-void BrowserOptionsHandler::OnItemsRemoved(int start, int length) { |
- OnModelChanged(); |
-} |
- |
-void BrowserOptionsHandler::Observe( |
- int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- if (type == chrome::NOTIFICATION_PREF_CHANGED) { |
- std::string* pref = content::Details<std::string>(details).ptr(); |
- if (*pref == prefs::kDefaultBrowserSettingEnabled) { |
- UpdateDefaultBrowserState(); |
- } else if (*pref == prefs::kURLsToRestoreOnStartup) { |
- UpdateStartupPages(); |
- } else { |
- NOTREACHED(); |
- } |
- } else { |
- NOTREACHED(); |
- } |
-} |
- |
-void BrowserOptionsHandler::SetStartupPagesToCurrentPages( |
- const ListValue* args) { |
- startup_custom_pages_table_model_->SetToCurrentlyOpenPages(); |
- SaveStartupPagesPref(); |
-} |
- |
-void BrowserOptionsHandler::RemoveStartupPages(const ListValue* args) { |
- for (int i = args->GetSize() - 1; i >= 0; --i) { |
- std::string string_value; |
- CHECK(args->GetString(i, &string_value)); |
- |
- int selected_index; |
- base::StringToInt(string_value, &selected_index); |
- if (selected_index < 0 || |
- selected_index >= startup_custom_pages_table_model_->RowCount()) { |
- NOTREACHED(); |
- return; |
- } |
- startup_custom_pages_table_model_->Remove(selected_index); |
- } |
- |
- SaveStartupPagesPref(); |
-} |
- |
-void BrowserOptionsHandler::AddStartupPage(const ListValue* args) { |
- std::string url_string; |
- CHECK_EQ(args->GetSize(), 1U); |
- CHECK(args->GetString(0, &url_string)); |
- |
- GURL url = URLFixerUpper::FixupURL(url_string, std::string()); |
- if (!url.is_valid()) |
- return; |
- int index = startup_custom_pages_table_model_->RowCount(); |
- startup_custom_pages_table_model_->Add(index, url); |
- SaveStartupPagesPref(); |
-} |
- |
-void BrowserOptionsHandler::EditStartupPage(const ListValue* args) { |
- std::string url_string; |
- std::string index_string; |
- int index; |
- CHECK_EQ(args->GetSize(), 2U); |
- CHECK(args->GetString(0, &index_string)); |
- CHECK(base::StringToInt(index_string, &index)); |
- CHECK(args->GetString(1, &url_string)); |
- |
- if (index < 0 || index > startup_custom_pages_table_model_->RowCount()) { |
- NOTREACHED(); |
- return; |
- } |
- |
- std::vector<GURL> urls = startup_custom_pages_table_model_->GetURLs(); |
- urls[index] = URLFixerUpper::FixupURL(url_string, std::string()); |
- startup_custom_pages_table_model_->SetURLs(urls); |
- SaveStartupPagesPref(); |
-} |
- |
-void BrowserOptionsHandler::DragDropStartupPage(const ListValue* args) { |
- CHECK_EQ(args->GetSize(), 2U); |
- |
- std::string value; |
- int to_index; |
- |
- CHECK(args->GetString(0, &value)); |
- base::StringToInt(value, &to_index); |
- |
- ListValue* selected; |
- CHECK(args->GetList(1, &selected)); |
- |
- std::vector<int> index_list; |
- for (size_t i = 0; i < selected->GetSize(); ++i) { |
- int index; |
- CHECK(selected->GetString(i, &value)); |
- base::StringToInt(value, &index); |
- index_list.push_back(index); |
- } |
- |
- startup_custom_pages_table_model_->MoveURLs(to_index, index_list); |
- SaveStartupPagesPref(); |
-} |
- |
-void BrowserOptionsHandler::SaveStartupPagesPref() { |
- PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); |
- |
- SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefs); |
- pref.urls = startup_custom_pages_table_model_->GetURLs(); |
- |
- SessionStartupPref::SetStartupPref(prefs, pref); |
-} |
- |
-void BrowserOptionsHandler::RequestAutocompleteSuggestions( |
- const ListValue* args) { |
- string16 input; |
- CHECK_EQ(args->GetSize(), 1U); |
- CHECK(args->GetString(0, &input)); |
- |
- autocomplete_controller_->Start(input, string16(), true, false, false, |
- AutocompleteInput::ALL_MATCHES); |
-} |
- |
-void BrowserOptionsHandler::EnableInstant(const ListValue* args) { |
- InstantController::Enable(Profile::FromWebUI(web_ui())); |
-} |
- |
-void BrowserOptionsHandler::DisableInstant(const ListValue* args) { |
- InstantController::Disable(Profile::FromWebUI(web_ui())); |
-} |
- |
-void BrowserOptionsHandler::ToggleAutoLaunch(const ListValue* args) { |
-#if defined(OS_WIN) |
- if (!auto_launch_trial::IsInAutoLaunchGroup()) |
- return; |
- |
- bool enable; |
- CHECK_EQ(args->GetSize(), 1U); |
- CHECK(args->GetBoolean(0, &enable)); |
- |
- // Make sure we keep track of how many disable and how many enable. |
- auto_launch_trial::UpdateToggleAutoLaunchMetric(enable); |
- Profile* profile = Profile::FromWebUI(web_ui()); |
- content::BrowserThread::PostTask( |
- content::BrowserThread::FILE, FROM_HERE, |
- base::Bind(&auto_launch_util::SetWillLaunchAtLogin, enable, |
- FilePath(), profile->GetPath().BaseName().value())); |
-#endif // OS_WIN |
-} |
- |
-void BrowserOptionsHandler::GetInstantFieldTrialStatus(const ListValue* args) { |
- Profile* profile = Profile::FromWebUI(web_ui()); |
- base::FundamentalValue enabled( |
- InstantFieldTrial::IsInstantExperiment(profile) && |
- !InstantFieldTrial::IsHiddenExperiment(profile)); |
- web_ui()->CallJavascriptFunction("BrowserOptions.setInstantFieldTrialStatus", |
- enabled); |
-} |
- |
-void BrowserOptionsHandler::OnResultChanged(bool default_match_changed) { |
- const AutocompleteResult& result = autocomplete_controller_->result(); |
- ListValue suggestions; |
- for (size_t i = 0; i < result.size(); ++i) { |
- const AutocompleteMatch& match = result.match_at(i); |
- AutocompleteMatch::Type type = match.type; |
- if (type != AutocompleteMatch::HISTORY_URL && |
- type != AutocompleteMatch::HISTORY_TITLE && |
- type != AutocompleteMatch::HISTORY_BODY && |
- type != AutocompleteMatch::HISTORY_KEYWORD && |
- type != AutocompleteMatch::NAVSUGGEST) |
- continue; |
- DictionaryValue* entry = new DictionaryValue(); |
- entry->SetString("title", match.description); |
- entry->SetString("displayURL", match.contents); |
- entry->SetString("url", match.destination_url.spec()); |
- suggestions.Append(entry); |
- } |
- |
- web_ui()->CallJavascriptFunction( |
- "BrowserOptions.updateAutocompleteSuggestions", suggestions); |
-} |