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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/views/options/general_page_view.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/views/options/general_page_view.cc
===================================================================
--- chrome/browser/views/options/general_page_view.cc (revision 47986)
+++ chrome/browser/views/options/general_page_view.cc (working copy)
@@ -232,12 +232,12 @@
} else if (sender == homepage_use_newtab_radio_) {
UserMetricsRecordAction(UserMetricsAction("Options_Homepage_UseNewTab"),
profile()->GetPrefs());
- SetHomepage(GetNewTabUIURLString());
+ SetHomepage(GURL());
EnableHomepageURLField(false);
} else if (sender == homepage_use_url_radio_) {
UserMetricsRecordAction(UserMetricsAction("Options_Homepage_UseURL"),
profile()->GetPrefs());
- SetHomepage(homepage_use_url_textfield_->text());
+ SetHomepage(GURL(homepage_use_url_textfield_->text()));
EnableHomepageURLField(true);
} else if (sender == homepage_show_home_button_checkbox_) {
bool show_button = homepage_show_home_button_checkbox_->checked();
@@ -285,11 +285,10 @@
if (sender == homepage_use_url_textfield_) {
// If the text field contains a valid URL, sync it to prefs. We run it
// through the fixer upper to allow input like "google.com" to be converted
- // to something valid ("http://google.com").
- std::string url_string = URLFixerUpper::FixupURL(
- UTF16ToUTF8(homepage_use_url_textfield_->text()), std::string());
- if (GURL(url_string).is_valid())
- SetHomepage(UTF8ToWide(url_string));
+ // to something valid ("http://google.com"). If the field contains an
+ // empty or null-host URL, a blank homepage is synced to prefs.
+ SetHomepage(GURL(URLFixerUpper::FixupURL(
+ UTF16ToUTF8(homepage_use_url_textfield_->text()), std::string())));
}
}
@@ -745,12 +744,15 @@
SaveStartupPref();
}
-void GeneralPageView::SetHomepage(const std::wstring& homepage) {
- if (homepage.empty() || homepage == GetNewTabUIURLString()) {
+void GeneralPageView::SetHomepage(const GURL& homepage) {
+ if (!homepage.is_valid() ||
+ UTF8ToWide(homepage.spec()) == GetNewTabUIURLString()) {
new_tab_page_is_home_page_.SetValue(true);
+ if (!homepage.has_host())
+ homepage_.SetValue(std::wstring());
} else {
new_tab_page_is_home_page_.SetValue(false);
- homepage_.SetValue(homepage);
+ homepage_.SetValue(UTF8ToWide(homepage.spec()));
}
}
« 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