| Index: chrome/browser/dom_ui/options/browser_options_handler.cc
|
| diff --git a/chrome/browser/dom_ui/options/browser_options_handler.cc b/chrome/browser/dom_ui/options/browser_options_handler.cc
|
| index e83b408eb287563670dcae2276bde73ebf23fbc2..91136135412d677c2983434d0de5d09848258591 100644
|
| --- a/chrome/browser/dom_ui/options/browser_options_handler.cc
|
| +++ b/chrome/browser/dom_ui/options/browser_options_handler.cc
|
| @@ -24,6 +24,7 @@
|
| #include "chrome/browser/search_engines/template_url.h"
|
| #include "chrome/browser/search_engines/template_url_model.h"
|
| #include "chrome/browser/ui/options/options_window.h"
|
| +#include "chrome/common/pref_names.h"
|
| #include "chrome/installer/util/browser_distribution.h"
|
| #include "grit/chromium_strings.h"
|
| #include "grit/generated_resources.h"
|
| @@ -98,6 +99,9 @@ void BrowserOptionsHandler::GetLocalizedValues(
|
|
|
| void BrowserOptionsHandler::RegisterMessages() {
|
| dom_ui_->RegisterMessageCallback(
|
| + "setHomePage",
|
| + NewCallback(this, &BrowserOptionsHandler::SetHomePage));
|
| + dom_ui_->RegisterMessageCallback(
|
| "becomeDefaultBrowser",
|
| NewCallback(this, &BrowserOptionsHandler::BecomeDefaultBrowser));
|
| dom_ui_->RegisterMessageCallback(
|
| @@ -118,14 +122,17 @@ void BrowserOptionsHandler::RegisterMessages() {
|
| }
|
|
|
| void BrowserOptionsHandler::Initialize() {
|
| + Profile* profile = dom_ui_->GetProfile();
|
| +
|
| // Create our favicon data source.
|
| BrowserThread::PostTask(
|
| BrowserThread::IO, FROM_HERE,
|
| NewRunnableMethod(
|
| ChromeURLDataManager::GetInstance(),
|
| &ChromeURLDataManager::AddDataSource,
|
| - make_scoped_refptr(new DOMUIFavIconSource(dom_ui_->GetProfile()))));
|
| + make_scoped_refptr(new DOMUIFavIconSource(profile))));
|
|
|
| + homepage_.Init(prefs::kHomePage, profile->GetPrefs(), NULL);
|
| UpdateDefaultBrowserState();
|
| UpdateStartupPages();
|
| UpdateSearchEngines();
|
| @@ -135,6 +142,24 @@ void BrowserOptionsHandler::Initialize() {
|
| OPTIONS_PAGE_GENERAL));
|
| }
|
|
|
| +void BrowserOptionsHandler::SetHomePage(const ListValue* args) {
|
| + std::string url_string;
|
| + std::string do_fixup_string;
|
| + int do_fixup;
|
| + if (args->GetSize() != 2 ||
|
| + !args->GetString(0, &url_string) ||
|
| + !args->GetString(1, &do_fixup_string) ||
|
| + !base::StringToInt(do_fixup_string, &do_fixup)) {
|
| + CHECK(false);
|
| + };
|
| +
|
| + if (do_fixup) {
|
| + GURL fixed_url = URLFixerUpper::FixupURL(url_string, std::string());
|
| + url_string = fixed_url.spec();
|
| + }
|
| + homepage_.SetValueIfNotManaged(url_string);
|
| +}
|
| +
|
| void BrowserOptionsHandler::UpdateDefaultBrowserState() {
|
| #if defined(OS_WIN)
|
| // Check for side-by-side first.
|
|
|