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

Unified Diff: chrome/browser/protector/prefs_backup_invalid_change.cc

Issue 9748016: [protector] Added UI for invalid Preferences backup case. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix unit-test. Created 8 years, 9 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
Index: chrome/browser/protector/prefs_backup_invalid_change.cc
diff --git a/chrome/browser/protector/prefs_backup_invalid_change.cc b/chrome/browser/protector/prefs_backup_invalid_change.cc
new file mode 100644
index 0000000000000000000000000000000000000000..cc3e5c6f3d33c9d98081f1130068c0fbd3b81345
--- /dev/null
+++ b/chrome/browser/protector/prefs_backup_invalid_change.cc
@@ -0,0 +1,130 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "base/logging.h"
+#include "base/metrics/histogram.h"
+#include "base/utf_string_conversions.h"
+#include "chrome/browser/prefs/session_startup_pref.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/protector/base_prefs_change.h"
+#include "chrome/browser/protector/histograms.h"
+#include "chrome/browser/protector/protector_service.h"
+#include "chrome/browser/protector/protector_service_factory.h"
+#include "chrome/common/pref_names.h"
+#include "chrome/common/url_constants.h"
+#include "googleurl/src/gurl.h"
+#include "grit/chromium_strings.h"
+#include "grit/generated_resources.h"
+#include "grit/theme_resources.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace protector {
+
+// Unknown change to Preferences with invalid backup.
+class PrefsBackupInvalidChange : public BasePrefsChange {
+ public:
+ PrefsBackupInvalidChange();
+
+ // BasePrefsChange overrides:
+ virtual bool Init(Profile* profile) OVERRIDE;
+ virtual void Apply(Browser* browser) OVERRIDE;
+ virtual void Discard(Browser* browser) OVERRIDE;
+ virtual void Timeout() OVERRIDE;
+ virtual int GetBadgeIconID() const OVERRIDE;
+ virtual int GetMenuItemIconID() const OVERRIDE;
+ virtual int GetBubbleIconID() const OVERRIDE;
+ virtual string16 GetBubbleTitle() const OVERRIDE;
+ virtual string16 GetBubbleMessage() const OVERRIDE;
+ virtual string16 GetApplyButtonText() const OVERRIDE;
+ virtual string16 GetDiscardButtonText() const OVERRIDE;
+
+ private:
+ virtual ~PrefsBackupInvalidChange();
+
+ // Applies default settings values when appropriate.
+ void ApplyDefaults(Profile* profile);
+
+ DISALLOW_COPY_AND_ASSIGN(PrefsBackupInvalidChange);
+};
+
+PrefsBackupInvalidChange::PrefsBackupInvalidChange() {
+}
+
+PrefsBackupInvalidChange::~PrefsBackupInvalidChange() {
+}
+
+bool PrefsBackupInvalidChange::Init(Profile* profile) {
+ if (!BasePrefsChange::Init(profile))
+ return false;
+ ApplyDefaults(profile);
+ DismissOnPrefChange(prefs::kHomePageIsNewTabPage);
+ DismissOnPrefChange(prefs::kHomePage);
+ DismissOnPrefChange(prefs::kShowHomeButton);
+ DismissOnPrefChange(prefs::kRestoreOnStartup);
+ DismissOnPrefChange(prefs::kURLsToRestoreOnStartup);
+ return true;
+}
+
+void PrefsBackupInvalidChange::Apply(Browser* browser) {
+ NOTREACHED();
+}
+
+void PrefsBackupInvalidChange::Discard(Browser* browser) {
+ // TODO(ivankr): highlight the protected prefs on the settings page
+ // (http://crbug.com/119088).
+ ProtectorServiceFactory::GetForProfile(profile())->OpenTab(
+ GURL(chrome::kChromeUISettingsURL), browser);
+}
+
+void PrefsBackupInvalidChange::Timeout() {
+}
+
+int PrefsBackupInvalidChange::GetBadgeIconID() const {
+ // Use icons for startup settings change.
+ return IDR_HOMEPAGE_CHANGE_BADGE;
+}
+
+int PrefsBackupInvalidChange::GetMenuItemIconID() const {
+ return IDR_HOMEPAGE_CHANGE_MENU;
+}
+
+int PrefsBackupInvalidChange::GetBubbleIconID() const {
+ return IDR_HOMEPAGE_CHANGE_ALERT;
+}
+
+string16 PrefsBackupInvalidChange::GetBubbleTitle() const {
+ return l10n_util::GetStringUTF16(IDS_SETTING_CHANGE_NO_BACKUP_TITLE);
+}
+
+string16 PrefsBackupInvalidChange::GetBubbleMessage() const {
+ return l10n_util::GetStringUTF16(IDS_SETTING_CHANGE_NO_BACKUP_BUBBLE_MESSAGE);
+}
+
+string16 PrefsBackupInvalidChange::GetApplyButtonText() const {
+ // Don't show this button.
+ return string16();
+}
+
+string16 PrefsBackupInvalidChange::GetDiscardButtonText() const {
+ return l10n_util::GetStringUTF16(IDS_EDIT_SETTINGS);
+}
+
+void PrefsBackupInvalidChange::ApplyDefaults(Profile* profile) {
+ PrefService* prefs = profile->GetPrefs();
+ SessionStartupPref startup_pref = SessionStartupPref::GetStartupPref(prefs);
+ if (startup_pref.type != SessionStartupPref::LAST) {
+ // If startup type is LAST, resetting it is dangerous (the whole previous
+ // session will be lost).
+ startup_pref.type = SessionStartupPref::GetDefaultStartupType();
+ SessionStartupPref::SetStartupPref(prefs, startup_pref);
+ }
+}
+
+BaseSettingChange* CreatePrefsBackupInvalidChange() {
+ return new PrefsBackupInvalidChange();
+}
+
+} // namespace protector
« no previous file with comments | « chrome/browser/protector/base_setting_change.h ('k') | chrome/browser/protector/prefs_backup_invalid_change_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698