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 17342b6645927c8ab392abe015bd099380acb116..53632f817b7fbc0930f4bc7b5b89a452cf25b84a 100644 |
--- a/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc |
+++ b/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc |
@@ -30,6 +30,9 @@ void StartupPagesHandler::RegisterMessages() { |
web_ui()->RegisterMessageCallback("addStartupPage", |
base::Bind(&StartupPagesHandler::HandleAddStartupPage, |
base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback("editStartupPage", |
+ base::Bind(&StartupPagesHandler::HandleEditStartupPage, |
+ base::Unretained(this))); |
web_ui()->RegisterMessageCallback("onStartupPrefsPageLoad", |
base::Bind(&StartupPagesHandler::HandleOnStartupPrefsPageLoad, |
base::Unretained(this))); |
@@ -105,6 +108,33 @@ void StartupPagesHandler::HandleAddStartupPage(const base::ListValue* args) { |
ResolveJavascriptCallback(*callback_id, base::FundamentalValue(true)); |
} |
+void StartupPagesHandler::HandleEditStartupPage(const base::ListValue* args) { |
+ CHECK_EQ(args->GetSize(), 3U); |
+ const base::Value* callback_id; |
+ CHECK(args->Get(0, &callback_id)); |
+ int index; |
Dan Beam
2016/04/12 04:37:47
all numbers in javascript are doubles
i honestly
dpapad
2016/04/12 17:52:54
This logic is mostly copied from the equivalent co
Dan Beam
2016/04/12 18:08:53
Acknowledged.
|
+ CHECK(args->GetInteger(1, &index)); |
+ |
+ if (index < 0 || index > startup_custom_pages_table_model_.RowCount()) { |
+ RejectJavascriptCallback(*callback_id, *base::Value::CreateNullValue()); |
+ NOTREACHED(); |
+ return; |
+ } |
+ |
+ std::string url_string; |
+ CHECK(args->GetString(2, &url_string)); |
+ |
+ GURL fixed_url; |
+ if (settings_utils::FixupAndValidateStartupPage(url_string, &fixed_url)) { |
+ std::vector<GURL> urls = startup_custom_pages_table_model_.GetURLs(); |
+ urls[index] = fixed_url; |
+ startup_custom_pages_table_model_.SetURLs(urls); |
+ ResolveJavascriptCallback(*callback_id, base::FundamentalValue(true)); |
+ } else { |
+ ResolveJavascriptCallback(*callback_id, base::FundamentalValue(false)); |
+ } |
+} |
Dan Beam
2016/04/12 04:39:13
it might be worthwhile to test any of these callba
dpapad
2016/04/12 17:52:54
Agreed. C++ test coverage would be nice for this (
Dan Beam
2016/04/12 18:08:53
Acknowledged.
|
+ |
void StartupPagesHandler::HandleOnStartupPrefsPageLoad( |
const base::ListValue* args) { |
startup_custom_pages_table_model_.SetObserver(this); |