Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: chrome/browser/views/options/general_page_view.cc

Issue 2102019: Invalid URLs are no longer mangled when reopening the Options window (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/views/options/general_page_view.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/views/options/general_page_view.h" 5 #include "chrome/browser/views/options/general_page_view.h"
6 6
7 #include "app/combobox_model.h" 7 #include "app/combobox_model.h"
8 #include "app/l10n_util.h" 8 #include "app/l10n_util.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 225 }
226 } else if (sender == startup_add_custom_page_button_) { 226 } else if (sender == startup_add_custom_page_button_) {
227 AddURLToStartupURLs(); 227 AddURLToStartupURLs();
228 } else if (sender == startup_remove_custom_page_button_) { 228 } else if (sender == startup_remove_custom_page_button_) {
229 RemoveURLsFromStartupURLs(); 229 RemoveURLsFromStartupURLs();
230 } else if (sender == startup_use_current_page_button_) { 230 } else if (sender == startup_use_current_page_button_) {
231 SetStartupURLToCurrentPage(); 231 SetStartupURLToCurrentPage();
232 } else if (sender == homepage_use_newtab_radio_) { 232 } else if (sender == homepage_use_newtab_radio_) {
233 UserMetricsRecordAction(UserMetricsAction("Options_Homepage_UseNewTab"), 233 UserMetricsRecordAction(UserMetricsAction("Options_Homepage_UseNewTab"),
234 profile()->GetPrefs()); 234 profile()->GetPrefs());
235 SetHomepage(GetNewTabUIURLString()); 235 SetHomepage(GURL());
236 EnableHomepageURLField(false); 236 EnableHomepageURLField(false);
237 } else if (sender == homepage_use_url_radio_) { 237 } else if (sender == homepage_use_url_radio_) {
238 UserMetricsRecordAction(UserMetricsAction("Options_Homepage_UseURL"), 238 UserMetricsRecordAction(UserMetricsAction("Options_Homepage_UseURL"),
239 profile()->GetPrefs()); 239 profile()->GetPrefs());
240 SetHomepage(homepage_use_url_textfield_->text()); 240 SetHomepage(GURL(homepage_use_url_textfield_->text()));
241 EnableHomepageURLField(true); 241 EnableHomepageURLField(true);
242 } else if (sender == homepage_show_home_button_checkbox_) { 242 } else if (sender == homepage_show_home_button_checkbox_) {
243 bool show_button = homepage_show_home_button_checkbox_->checked(); 243 bool show_button = homepage_show_home_button_checkbox_->checked();
244 if (show_button) { 244 if (show_button) {
245 UserMetricsRecordAction( 245 UserMetricsRecordAction(
246 UserMetricsAction("Options_Homepage_ShowHomeButton"), 246 UserMetricsAction("Options_Homepage_ShowHomeButton"),
247 profile()->GetPrefs()); 247 profile()->GetPrefs());
248 } else { 248 } else {
249 UserMetricsRecordAction( 249 UserMetricsRecordAction(
250 UserMetricsAction("Options_Homepage_HideHomeButton"), 250 UserMetricsAction("Options_Homepage_HideHomeButton"),
(...skipping 27 matching lines...) Expand all
278 } 278 }
279 279
280 /////////////////////////////////////////////////////////////////////////////// 280 ///////////////////////////////////////////////////////////////////////////////
281 // GeneralPageView, views::Textfield::Controller implementation: 281 // GeneralPageView, views::Textfield::Controller implementation:
282 282
283 void GeneralPageView::ContentsChanged(views::Textfield* sender, 283 void GeneralPageView::ContentsChanged(views::Textfield* sender,
284 const std::wstring& new_contents) { 284 const std::wstring& new_contents) {
285 if (sender == homepage_use_url_textfield_) { 285 if (sender == homepage_use_url_textfield_) {
286 // If the text field contains a valid URL, sync it to prefs. We run it 286 // If the text field contains a valid URL, sync it to prefs. We run it
287 // through the fixer upper to allow input like "google.com" to be converted 287 // through the fixer upper to allow input like "google.com" to be converted
288 // to something valid ("http://google.com"). 288 // to something valid ("http://google.com"). If the field contains an
289 std::string url_string = URLFixerUpper::FixupURL( 289 // empty or null-host URL, a blank homepage is synced to prefs.
290 UTF16ToUTF8(homepage_use_url_textfield_->text()), std::string()); 290 SetHomepage(GURL(URLFixerUpper::FixupURL(
291 if (GURL(url_string).is_valid()) 291 UTF16ToUTF8(homepage_use_url_textfield_->text()), std::string())));
292 SetHomepage(UTF8ToWide(url_string));
293 } 292 }
294 } 293 }
295 294
296 bool GeneralPageView::HandleKeystroke(views::Textfield* sender, 295 bool GeneralPageView::HandleKeystroke(views::Textfield* sender,
297 const views::Textfield::Keystroke&) { 296 const views::Textfield::Keystroke&) {
298 return false; 297 return false;
299 } 298 }
300 299
301 /////////////////////////////////////////////////////////////////////////////// 300 ///////////////////////////////////////////////////////////////////////////////
302 // GeneralPageView, OptionsPageView implementation: 301 // GeneralPageView, OptionsPageView implementation:
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 if (index == -1) 737 if (index == -1)
739 index = startup_custom_pages_table_model_->RowCount(); 738 index = startup_custom_pages_table_model_->RowCount();
740 else 739 else
741 index++; 740 index++;
742 startup_custom_pages_table_model_->Add(index, url); 741 startup_custom_pages_table_model_->Add(index, url);
743 startup_custom_pages_table_->Select(index); 742 startup_custom_pages_table_->Select(index);
744 743
745 SaveStartupPref(); 744 SaveStartupPref();
746 } 745 }
747 746
748 void GeneralPageView::SetHomepage(const std::wstring& homepage) { 747 void GeneralPageView::SetHomepage(const GURL& homepage) {
749 if (homepage.empty() || homepage == GetNewTabUIURLString()) { 748 if (!homepage.is_valid() ||
749 UTF8ToWide(homepage.spec()) == GetNewTabUIURLString()) {
750 new_tab_page_is_home_page_.SetValue(true); 750 new_tab_page_is_home_page_.SetValue(true);
751 if (!homepage.has_host())
752 homepage_.SetValue(std::wstring());
751 } else { 753 } else {
752 new_tab_page_is_home_page_.SetValue(false); 754 new_tab_page_is_home_page_.SetValue(false);
753 homepage_.SetValue(homepage); 755 homepage_.SetValue(UTF8ToWide(homepage.spec()));
754 } 756 }
755 } 757 }
756 758
757 void GeneralPageView::OnSelectionChanged() { 759 void GeneralPageView::OnSelectionChanged() {
758 startup_remove_custom_page_button_->SetEnabled( 760 startup_remove_custom_page_button_->SetEnabled(
759 startup_custom_pages_table_->SelectedRowCount() > 0); 761 startup_custom_pages_table_->SelectedRowCount() > 0);
760 } 762 }
761 763
762 void GeneralPageView::EnableHomepageURLField(bool enabled) { 764 void GeneralPageView::EnableHomepageURLField(bool enabled) {
763 if (enabled) { 765 if (enabled) {
764 homepage_use_url_textfield_->SetEnabled(true); 766 homepage_use_url_textfield_->SetEnabled(true);
765 homepage_use_url_textfield_->SetReadOnly(false); 767 homepage_use_url_textfield_->SetReadOnly(false);
766 } else { 768 } else {
767 homepage_use_url_textfield_->SetEnabled(false); 769 homepage_use_url_textfield_->SetEnabled(false);
768 homepage_use_url_textfield_->SetReadOnly(true); 770 homepage_use_url_textfield_->SetReadOnly(true);
769 } 771 }
770 } 772 }
771 773
772 void GeneralPageView::SetDefaultSearchProvider() { 774 void GeneralPageView::SetDefaultSearchProvider() {
773 const int index = default_search_engine_combobox_->selected_item(); 775 const int index = default_search_engine_combobox_->selected_item();
774 default_search_engines_model_->model()->SetDefaultSearchProvider( 776 default_search_engines_model_->model()->SetDefaultSearchProvider(
775 default_search_engines_model_->GetTemplateURLAt(index)); 777 default_search_engines_model_->GetTemplateURLAt(index));
776 } 778 }
OLDNEW
« no previous file with comments | « chrome/browser/views/options/general_page_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698