Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/dom_ui/options/browser_options_handler.h" | 5 #include "chrome/browser/dom_ui/options/browser_options_handler.h" |
| 6 | 6 |
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/scoped_ptr.h" | 9 #include "base/scoped_ptr.h" |
| 10 #include "base/singleton.h" | 10 #include "base/singleton.h" |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 103 dom_ui_->RegisterMessageCallback( | 103 dom_ui_->RegisterMessageCallback( |
| 104 "setDefaultSearchEngine", | 104 "setDefaultSearchEngine", |
| 105 NewCallback(this, &BrowserOptionsHandler::SetDefaultSearchEngine)); | 105 NewCallback(this, &BrowserOptionsHandler::SetDefaultSearchEngine)); |
| 106 dom_ui_->RegisterMessageCallback( | 106 dom_ui_->RegisterMessageCallback( |
| 107 "removeStartupPages", | 107 "removeStartupPages", |
| 108 NewCallback(this, &BrowserOptionsHandler::RemoveStartupPages)); | 108 NewCallback(this, &BrowserOptionsHandler::RemoveStartupPages)); |
| 109 dom_ui_->RegisterMessageCallback( | 109 dom_ui_->RegisterMessageCallback( |
| 110 "addStartupPage", | 110 "addStartupPage", |
| 111 NewCallback(this, &BrowserOptionsHandler::AddStartupPage)); | 111 NewCallback(this, &BrowserOptionsHandler::AddStartupPage)); |
| 112 dom_ui_->RegisterMessageCallback( | 112 dom_ui_->RegisterMessageCallback( |
| 113 "editStartupPage", | |
| 114 NewCallback(this, &BrowserOptionsHandler::EditStartupPage)); | |
| 115 dom_ui_->RegisterMessageCallback( | |
| 113 "setStartupPagesToCurrentPages", | 116 "setStartupPagesToCurrentPages", |
| 114 NewCallback(this, &BrowserOptionsHandler::SetStartupPagesToCurrentPages)); | 117 NewCallback(this, &BrowserOptionsHandler::SetStartupPagesToCurrentPages)); |
| 115 } | 118 } |
| 116 | 119 |
| 117 void BrowserOptionsHandler::Initialize() { | 120 void BrowserOptionsHandler::Initialize() { |
| 118 // Create our favicon data source. | 121 // Create our favicon data source. |
| 119 BrowserThread::PostTask( | 122 BrowserThread::PostTask( |
| 120 BrowserThread::IO, FROM_HERE, | 123 BrowserThread::IO, FROM_HERE, |
| 121 NewRunnableMethod( | 124 NewRunnableMethod( |
| 122 ChromeURLDataManager::GetInstance(), | 125 ChromeURLDataManager::GetInstance(), |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 278 void BrowserOptionsHandler::OnModelChanged() { | 281 void BrowserOptionsHandler::OnModelChanged() { |
| 279 ListValue startup_pages; | 282 ListValue startup_pages; |
| 280 int page_count = startup_custom_pages_table_model_->RowCount(); | 283 int page_count = startup_custom_pages_table_model_->RowCount(); |
| 281 std::vector<GURL> urls = startup_custom_pages_table_model_->GetURLs(); | 284 std::vector<GURL> urls = startup_custom_pages_table_model_->GetURLs(); |
| 282 for (int i = 0; i < page_count; ++i) { | 285 for (int i = 0; i < page_count; ++i) { |
| 283 DictionaryValue* entry = new DictionaryValue(); | 286 DictionaryValue* entry = new DictionaryValue(); |
| 284 entry->SetString("title", startup_custom_pages_table_model_->GetText(i, 0)); | 287 entry->SetString("title", startup_custom_pages_table_model_->GetText(i, 0)); |
| 285 entry->SetString("url", urls[i].spec()); | 288 entry->SetString("url", urls[i].spec()); |
| 286 entry->SetString("tooltip", | 289 entry->SetString("tooltip", |
| 287 startup_custom_pages_table_model_->GetTooltip(i)); | 290 startup_custom_pages_table_model_->GetTooltip(i)); |
| 291 entry->SetString("modelIndex", base::IntToString(i)); | |
| 288 startup_pages.Append(entry); | 292 startup_pages.Append(entry); |
| 289 } | 293 } |
| 290 | 294 |
| 291 dom_ui_->CallJavascriptFunction(L"BrowserOptions.updateStartupPages", | 295 dom_ui_->CallJavascriptFunction(L"BrowserOptions.updateStartupPages", |
| 292 startup_pages); | 296 startup_pages); |
| 293 } | 297 } |
| 294 | 298 |
| 295 void BrowserOptionsHandler::OnItemsChanged(int start, int length) { | 299 void BrowserOptionsHandler::OnItemsChanged(int start, int length) { |
| 296 OnModelChanged(); | 300 OnModelChanged(); |
| 297 } | 301 } |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 346 index = startup_custom_pages_table_model_->RowCount(); | 350 index = startup_custom_pages_table_model_->RowCount(); |
| 347 else | 351 else |
| 348 ++index; | 352 ++index; |
| 349 | 353 |
| 350 GURL url = URLFixerUpper::FixupURL(url_string, std::string()); | 354 GURL url = URLFixerUpper::FixupURL(url_string, std::string()); |
| 351 | 355 |
| 352 startup_custom_pages_table_model_->Add(index, url); | 356 startup_custom_pages_table_model_->Add(index, url); |
| 353 SaveStartupPagesPref(); | 357 SaveStartupPagesPref(); |
| 354 } | 358 } |
| 355 | 359 |
| 360 void BrowserOptionsHandler::EditStartupPage(const ListValue* args) { | |
| 361 std::string url_string; | |
| 362 std::string index_string; | |
| 363 int index; | |
| 364 if (args->GetSize() != 2 || | |
| 365 !args->GetString(0, &index_string) || | |
| 366 !base::StringToInt(index_string, &index) || | |
| 367 !args->GetString(1, &url_string)) { | |
| 368 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
| |
| 369 return; | |
| 370 }; | |
| 371 | |
| 372 if (index < 0 || index > startup_custom_pages_table_model_->RowCount()) { | |
| 373 NOTREACHED(); | |
| 374 return; | |
| 375 } | |
| 376 | |
| 377 std::vector<GURL> urls = startup_custom_pages_table_model_->GetURLs(); | |
| 378 urls[index] = URLFixerUpper::FixupURL(url_string, std::string()); | |
| 379 startup_custom_pages_table_model_->SetURLs(urls); | |
| 380 } | |
| 381 | |
| 356 void BrowserOptionsHandler::SaveStartupPagesPref() { | 382 void BrowserOptionsHandler::SaveStartupPagesPref() { |
| 357 PrefService* prefs = dom_ui_->GetProfile()->GetPrefs(); | 383 PrefService* prefs = dom_ui_->GetProfile()->GetPrefs(); |
| 358 | 384 |
| 359 SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefs); | 385 SessionStartupPref pref = SessionStartupPref::GetStartupPref(prefs); |
| 360 pref.urls = startup_custom_pages_table_model_->GetURLs(); | 386 pref.urls = startup_custom_pages_table_model_->GetURLs(); |
| 361 | 387 |
| 362 SessionStartupPref::SetStartupPref(prefs, pref); | 388 SessionStartupPref::SetStartupPref(prefs, pref); |
| 363 } | 389 } |
| OLD | NEW |