Chromium Code Reviews| Index: chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc |
| diff --git a/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc b/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc |
| index 0fcece322fb77c58643fd1a7d394c17cd22de013..b4733763df432eb4799a031208450b04bd1fb913 100644 |
| --- a/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc |
| +++ b/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc |
| @@ -9,9 +9,10 @@ |
| #include "chrome/browser/prefs/session_startup_pref.h" |
| #include "chrome/browser/profiles/profile.h" |
| +#include "chrome/browser/ui/webui/settings_utils.h" |
| #include "chrome/common/pref_names.h" |
| -#include "components/url_formatter/url_fixer.h" |
| #include "content/public/browser/web_ui.h" |
| +#include "url/gurl.h" |
| namespace settings { |
| @@ -38,6 +39,9 @@ void StartupPagesHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback("setStartupPagesToCurrentPages", |
| base::Bind(&StartupPagesHandler::HandleSetStartupPagesToCurrentPages, |
| base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback("validateStartupPage", |
| + base::Bind(&StartupPagesHandler::HandleValidateStartupPage, |
| + base::Unretained(this))); |
| } |
| void StartupPagesHandler::RenderViewReused() { |
| @@ -79,13 +83,13 @@ void StartupPagesHandler::OnItemsRemoved(int start, int length) { |
| void StartupPagesHandler::HandleAddStartupPage(const base::ListValue* args) { |
| std::string url_string; |
| if (!args->GetString(0, &url_string)) { |
| - DLOG(ERROR) << "Missing URL string parameter"; |
| + NOTREACHED(); |
| return; |
| } |
| - GURL url = url_formatter::FixupURL(url_string, std::string()); |
| - if (!url.is_valid()) { |
| - LOG(ERROR) << "FixupURL failed on " << url_string; |
| + GURL url; |
| + if (!settings_utils::FixupAndValidateStartupPage(url_string, &url)) { |
| + NOTREACHED(); |
| return; |
| } |
| @@ -124,13 +128,13 @@ void StartupPagesHandler::HandleOnStartupPrefsPageLoad( |
| void StartupPagesHandler::HandleRemoveStartupPage(const base::ListValue* args) { |
| int selected_index; |
| if (!args->GetInteger(0, &selected_index)) { |
| - DLOG(ERROR) << "Missing index parameter"; |
| + NOTREACHED(); |
| return; |
| } |
| if (selected_index < 0 || |
| selected_index >= startup_custom_pages_table_model_.RowCount()) { |
| - LOG(ERROR) << "Index out of range " << selected_index; |
| + NOTREACHED(); |
| return; |
| } |
| @@ -144,6 +148,18 @@ void StartupPagesHandler::HandleSetStartupPagesToCurrentPages( |
| SaveStartupPagesPref(); |
| } |
| +void StartupPagesHandler::HandleValidateStartupPage( |
| + const base::ListValue* args) { |
|
dpapad
2016/03/31 18:39:56
CHECK_EQ(2U, args->GetSize()); (and possibly in ot
Dan Beam
2016/03/31 22:06:55
ehhhhhhhhhhhhhhhhh, i'll add it here
|
| + const base::Value* callback_id; |
| + CHECK(args->Get(0, &callback_id)); |
| + |
| + std::string url_string; |
| + args->GetString(1, &url_string); |
|
dpapad
2016/03/31 18:39:56
CHECK(args->GetString(1, &url_string));
^This is
Dan Beam
2016/03/31 22:06:55
ehhhhhhhhhh, ok
|
| + |
| + bool valid = settings_utils::FixupAndValidateStartupPage(url_string, nullptr); |
| + ResolveJavascriptCallback(*callback_id, base::FundamentalValue(valid)); |
| +} |
| + |
| void StartupPagesHandler::SaveStartupPagesPref() { |
| PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); |