Chromium Code Reviews| 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 6d9a9620c87b6bb765613adefae391005fbe42d4..f72c9ceab70a6b9b730f0ea517980f5221308b7b 100644 |
| --- a/chrome/browser/dom_ui/options/browser_options_handler.cc |
| +++ b/chrome/browser/dom_ui/options/browser_options_handler.cc |
| @@ -110,6 +110,9 @@ void BrowserOptionsHandler::RegisterMessages() { |
| "addStartupPage", |
| NewCallback(this, &BrowserOptionsHandler::AddStartupPage)); |
| dom_ui_->RegisterMessageCallback( |
| + "editStartupPage", |
| + NewCallback(this, &BrowserOptionsHandler::EditStartupPage)); |
| + dom_ui_->RegisterMessageCallback( |
| "setStartupPagesToCurrentPages", |
| NewCallback(this, &BrowserOptionsHandler::SetStartupPagesToCurrentPages)); |
| } |
| @@ -285,6 +288,7 @@ void BrowserOptionsHandler::OnModelChanged() { |
| 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); |
| } |
| @@ -353,6 +357,28 @@ void BrowserOptionsHandler::AddStartupPage(const ListValue* args) { |
| SaveStartupPagesPref(); |
| } |
| +void BrowserOptionsHandler::EditStartupPage(const ListValue* args) { |
| + std::string url_string; |
| + std::string index_string; |
| + int index; |
| + if (args->GetSize() != 2 || |
| + !args->GetString(0, &index_string) || |
| + !base::StringToInt(index_string, &index) || |
| + !args->GetString(1, &url_string)) { |
| + NOTREACHED(); |
|
Evan Stade
2011/01/13 23:12:46
imo these should be CHECKs. Who actually builds an
stuartmorgan
2011/01/13 23:35:37
Done for all the argument parsing. For the bounds
|
| + return; |
| + }; |
| + |
| + 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); |
| +} |
| + |
| void BrowserOptionsHandler::SaveStartupPagesPref() { |
| PrefService* prefs = dom_ui_->GetProfile()->GetPrefs(); |