| 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..e83b408eb287563670dcae2276bde73ebf23fbc2 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);
|
| }
|
|
|
| @@ -314,8 +318,7 @@ void BrowserOptionsHandler::RemoveStartupPages(const ListValue* args) {
|
| for (int i = args->GetSize() - 1; i >= 0; --i) {
|
| std::string string_value;
|
| if (!args->GetString(i, &string_value)) {
|
| - NOTREACHED();
|
| - return;
|
| + CHECK(false);
|
| }
|
| int selected_index;
|
| base::StringToInt(string_value, &selected_index);
|
| @@ -338,8 +341,7 @@ void BrowserOptionsHandler::AddStartupPage(const ListValue* args) {
|
| !args->GetString(0, &url_string) ||
|
| !args->GetString(1, &index_string) ||
|
| !base::StringToInt(index_string, &index)) {
|
| - NOTREACHED();
|
| - return;
|
| + CHECK(false);
|
| };
|
|
|
| if (index == -1)
|
| @@ -353,6 +355,27 @@ 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)) {
|
| + CHECK(false);
|
| + };
|
| +
|
| + 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();
|
|
|
|
|