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

Unified Diff: chrome/browser/protector/settings_change_global_error.h

Issue 8342049: Added Protector, hooked up DSE verification with error bubble. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Always persist default search provider in db Created 9 years, 2 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/settings_change_global_error.h
diff --git a/chrome/browser/protector/settings_change_global_error.h b/chrome/browser/protector/settings_change_global_error.h
index 9e08df87e1308c5fc2ff50332ea22d01ac7a18d2..6694fe8c794cb330495102e7111228c5b4720c3a 100644
--- a/chrome/browser/protector/settings_change_global_error.h
+++ b/chrome/browser/protector/settings_change_global_error.h
@@ -6,44 +6,38 @@
#define CHROME_BROWSER_PROTECTOR_SETTINGS_CHANGE_GLOBAL_ERROR_H_
#pragma once
-#include <vector>
-
#include "base/basictypes.h"
-#include "base/callback.h"
#include "base/compiler_specific.h"
-#include "base/string16.h"
#include "base/memory/weak_ptr.h"
+#include "chrome/browser/protector/setting_change.h"
#include "chrome/browser/ui/global_error.h"
+class Browser;
class Profile;
+namespace protector {
+
+class SettingsChangeGlobalErrorDelegate;
+
// Global error about unwanted settings changes.
class SettingsChangeGlobalError : public GlobalError {
public:
- enum ChangeType {
- kSearchEngineChanged = 0, // Default search engine has been changed.
- kHomePageChanged, // Home page has been changed.
- };
-
- struct Change {
- ChangeType type; // Which setting has been changed.
- string16 old_setting; // Old setting value or "" if unknown.
- string16 new_setting; // New setting value.
- };
-
- typedef std::vector<Change> ChangesVector;
-
- // Creates new global error about settings changes |changes|.
- // If user decides to apply changes, |apply_changes_cb| is called.
- // If user decides to keep previous settings, |revert_changes_cb| is called.
- SettingsChangeGlobalError(const ChangesVector& changes,
- const base::Closure& apply_changes_cb,
- const base::Closure& revert_changes_cb);
+ // Creates new global error about settings changes |changes|. Takes
+ // ownership over |changes| contents.
+ // Uses |delegate| to notify about user decision.
+ SettingsChangeGlobalError(
+ const SettingChangeVector& changes,
+ SettingsChangeGlobalErrorDelegate* delegate);
virtual ~SettingsChangeGlobalError();
- // Displays a global error bubble for the default browser profile.
+ // Displays a global error bubble for the given browser profile.
// Can be called from any thread.
- void ShowForDefaultProfile();
+ void ShowForProfile(Profile* profile);
+
+ // Browser that the bubble has been last time shown for.
+ Browser* browser() const { return browser_; }
+
+ SettingChangeVector* mutable_changes() { return &changes_; }
// GlobalError implementation.
virtual bool HasBadge() OVERRIDE;
@@ -62,30 +56,36 @@ class SettingsChangeGlobalError : public GlobalError {
virtual void BubbleViewCancelButtonPressed() OVERRIDE;
private:
- ChangesVector changes_;
+ // Helper called on the UI thread to add this global error to the default
+ // profile (stored in |profile_|).
+ void AddToProfile(Profile* profile);
+
+ // Displays global error bubble. Must be called on the UI thread.
+ void Show();
+
+ // Removes global error from its profile and deletes |this| later.
+ void RemoveFromProfile();
- base::Closure apply_changes_cb_;
- base::Closure revert_changes_cb_;
+ // List of changes to show.
+ SettingChangeVector changes_;
+
+ // Delegate to notify about user actions.
+ SettingsChangeGlobalErrorDelegate* delegate_;
// Profile that we have been added to.
Profile* profile_;
+ // Browser that we have been shown for.
+ Browser* browser_;
+
// True if user has dismissed the bubble by clicking on one of the buttons.
bool closed_by_button_;
base::WeakPtrFactory<SettingsChangeGlobalError> weak_factory_;
- // Helper called on the UI thread to add this global error to the default
- // profile (stored in |profile_|).
- void AddToDefaultProfile();
-
- // Displays global error bubble. Must be called on the UI thread.
- void Show();
-
- // Removes global error from its profile and deletes |this| later.
- void RemoveFromProfile();
-
DISALLOW_COPY_AND_ASSIGN(SettingsChangeGlobalError);
};
+} // namespace protector
+
#endif // CHROME_BROWSER_PROTECTOR_SETTINGS_CHANGE_GLOBAL_ERROR_H_

Powered by Google App Engine
This is Rietveld 408576698