diff options
author | finnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-30 05:58:17 +0000 |
---|---|---|
committer | finnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-30 05:58:17 +0000 |
commit | 2baf83d75ea5d1233d3ddcf8e28aa4f4466c115c (patch) | |
tree | 617cf49b21490c8e7b2e3c5a821c5d72c5735894 /chrome/browser/views/options | |
parent | 492399e06e64635ca8e3191f0653a8b081863b33 (diff) | |
download | chromium_src-2baf83d75ea5d1233d3ddcf8e28aa4f4466c115c.zip chromium_src-2baf83d75ea5d1233d3ddcf8e28aa4f4466c115c.tar.gz chromium_src-2baf83d75ea5d1233d3ddcf8e28aa4f4466c115c.tar.bz2 |
Fix 1295677: REGRESSION: Import SETS startup page to imported home page.
We had only kHomePage pref before, which if blank/set to chrome-internal: meant that the New Tab page should be shown when Home is pressed. Now we add a pref called kHomePageIsNewTabPage for this purpose, which allows us to set the kHomePage value during import without actually using it as the HomePage (effectively importing home page becomes importing a default suggestion for when the users want a home page instead of the New Tab page).
BUG=1295677
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/options')
-rw-r--r-- | chrome/browser/views/options/advanced_page_view.cc | 1 | ||||
-rw-r--r-- | chrome/browser/views/options/general_page_view.cc | 35 | ||||
-rw-r--r-- | chrome/browser/views/options/general_page_view.h | 13 |
3 files changed, 34 insertions, 15 deletions
diff --git a/chrome/browser/views/options/advanced_page_view.cc b/chrome/browser/views/options/advanced_page_view.cc index 37c6936..baf721d 100644 --- a/chrome/browser/views/options/advanced_page_view.cc +++ b/chrome/browser/views/options/advanced_page_view.cc @@ -136,6 +136,7 @@ void AdvancedPageView::ResetToDefaults() { prefs::kDownloadDefaultDirectory, prefs::kDownloadExtensionsToOpen, prefs::kHomePage, + prefs::kHomePageIsNewTabPage, prefs::kMixedContentFiltering, prefs::kPromptForDownload, prefs::kPasswordManagerEnabled, diff --git a/chrome/browser/views/options/general_page_view.cc b/chrome/browser/views/options/general_page_view.cc index 4544e67..cccc7db 100644 --- a/chrome/browser/views/options/general_page_view.cc +++ b/chrome/browser/views/options/general_page_view.cc @@ -578,15 +578,12 @@ void GeneralPageView::ButtonPressed(ChromeViews::NativeButton* sender) { } else if (sender == homepage_use_newtab_radio_) { UserMetricsRecordAction(L"Options_Homepage_UseNewTab", profile()->GetPrefs()); - homepage_.SetValue(GetNewTabUIURLString()); + SetHomepage(GetNewTabUIURLString()); EnableHomepageURLField(false); } else if (sender == homepage_use_url_radio_) { UserMetricsRecordAction(L"Options_Homepage_UseURL", profile()->GetPrefs()); - std::wstring home_page_url = homepage_use_url_textfield_->GetText(); - if (home_page_url.empty()) - home_page_url = GetNewTabUIURLString(); - homepage_.SetValue(home_page_url); + SetHomepage(homepage_use_url_textfield_->GetText()); EnableHomepageURLField(true); } else if (sender == homepage_show_home_button_checkbox_) { bool show_button = homepage_show_home_button_checkbox_->IsSelected(); @@ -630,7 +627,7 @@ void GeneralPageView::ContentsChanged(ChromeViews::TextField* sender, std::wstring url_string = URLFixerUpper::FixupURL( homepage_use_url_textfield_->GetText(), std::wstring()); if (GURL(url_string).is_valid()) - homepage_.SetValue(url_string); + SetHomepage(url_string); } } @@ -679,6 +676,8 @@ void GeneralPageView::InitControlLayout() { profile()->GetPrefs()->AddPrefObserver(prefs::kRestoreOnStartup, this); profile()->GetPrefs()->AddPrefObserver(prefs::kURLsToRestoreOnStartup, this); + new_tab_page_is_home_page_.Init(prefs::kHomePageIsNewTabPage, + profile()->GetPrefs(), this); homepage_.Init(prefs::kHomePage, profile()->GetPrefs(), this); show_home_button_.Init(prefs::kShowHomeButton, profile()->GetPrefs(), this); } @@ -719,15 +718,18 @@ void GeneralPageView::NotifyPrefChanged(const std::wstring* pref_name) { startup_custom_pages_table_model_->SetURLs(startup_pref.urls); } + if (!pref_name || *pref_name == prefs::kHomePageIsNewTabPage) { + if (new_tab_page_is_home_page_.GetValue()) + homepage_use_newtab_radio_->SetIsSelected(true); + else + homepage_use_url_radio_->SetIsSelected(true); + } + if (!pref_name || *pref_name == prefs::kHomePage) { bool enabled = homepage_.GetValue() != GetNewTabUIURLString(); - if (enabled) { - homepage_use_url_radio_->SetIsSelected(true); + if (enabled) homepage_use_url_textfield_->SetText(homepage_.GetValue()); - } else { - homepage_use_newtab_radio_->SetIsSelected(true); - } - EnableHomepageURLField(enabled); + EnableHomepageURLField(!new_tab_page_is_home_page_.GetValue()); } if (!pref_name || *pref_name == prefs::kShowHomeButton) { @@ -1072,6 +1074,15 @@ void GeneralPageView::AddBookmark(ShelfItemDialog* dialog, SaveStartupPref(); } +void GeneralPageView::SetHomepage(const std::wstring& homepage) { + if (homepage.empty() || homepage == GetNewTabUIURLString()) { + new_tab_page_is_home_page_.SetValue(true); + } else { + new_tab_page_is_home_page_.SetValue(false); + homepage_.SetValue(homepage); + } +} + void GeneralPageView::OnSelectionChanged() { startup_remove_custom_page_button_->SetEnabled( startup_custom_pages_table_->SelectedRowCount() > 0); diff --git a/chrome/browser/views/options/general_page_view.h b/chrome/browser/views/options/general_page_view.h index 597db44..1ea1ae1 100644 --- a/chrome/browser/views/options/general_page_view.h +++ b/chrome/browser/views/options/general_page_view.h @@ -27,8 +27,8 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#ifndef CHROME_BROWSER_VIEWS_OPTIONS_GENERAL_PAGE_VIEW_H__ -#define CHROME_BROWSER_VIEWS_OPTIONS_GENERAL_PAGE_VIEW_H__ +#ifndef CHROME_BROWSER_VIEWS_OPTIONS_GENERAL_PAGE_VIEW_H_ +#define CHROME_BROWSER_VIEWS_OPTIONS_GENERAL_PAGE_VIEW_H_ #include "chrome/browser/views/options/options_page_view.h" #include "chrome/browser/views/shelf_item_dialog.h" @@ -126,6 +126,12 @@ class GeneralPageView : public OptionsPageView, const std::wstring& title, const GURL& url); + // Sets the home page preferences for kNewTabPageIsHomePage and kHomePage. + // If a blank string is passed in we revert to using NewTab page as the Home + // page. When setting the Home Page to NewTab page, we preserve the old value + // of kHomePage (we don't overwrite it). + void SetHomepage(const std::wstring& homepage); + // Invoked when the selection of the table view changes. Updates the enabled // property of the remove button. virtual void OnSelectionChanged(); @@ -153,6 +159,7 @@ class GeneralPageView : public OptionsPageView, ChromeViews::RadioButton* homepage_use_url_radio_; ChromeViews::TextField* homepage_use_url_textfield_; ChromeViews::CheckBox* homepage_show_home_button_checkbox_; + BooleanPrefMember new_tab_page_is_home_page_; StringPrefMember homepage_; BooleanPrefMember show_home_button_; @@ -175,4 +182,4 @@ class GeneralPageView : public OptionsPageView, DISALLOW_EVIL_CONSTRUCTORS(GeneralPageView); }; -#endif // #ifndef CHROME_BROWSER_VIEWS_OPTIONS_GENERAL_PAGE_VIEW_H__ +#endif // CHROME_BROWSER_VIEWS_OPTIONS_GENERAL_PAGE_VIEW_H_ |