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

Unified Diff: chrome/browser/notifications/extension_welcome_notification.h

Issue 580093003: Factor Google Now welcome notifications out of DesktopNotificationService. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 3 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/notifications/extension_welcome_notification.h
diff --git a/chrome/browser/notifications/extension_welcome_notification.h b/chrome/browser/notifications/extension_welcome_notification.h
index 65bdea032b04c0da634425f3644cc9f585c6525c..b45b0ffaa3b0132e23b7f5c107122b2c943f8a03 100644
--- a/chrome/browser/notifications/extension_welcome_notification.h
+++ b/chrome/browser/notifications/extension_welcome_notification.h
@@ -11,6 +11,7 @@
#include "base/prefs/pref_member.h"
#include "base/timer/timer.h"
#include "chrome/browser/prefs/pref_service_syncable_observer.h"
+#include "components/keyed_service/core/keyed_service.h"
#include "ui/message_center/notifier_settings.h"
namespace base {
@@ -32,14 +33,16 @@ class PrefRegistrySyncable;
class Notification;
class Profile;
-// ExtensionWelcomeNotification is a part of DesktopNotificationService and
-// manages showing and hiding a welcome notification for built-in components
-// that show notifications. The Welcome Notification presumes network
-// connectivity since it relies on synced preferences to work. This is generally
-// fine since the current consumers on the welcome notification also presume
-// network connectivity.
+// ExtensionWelcomeNotification is a keyed service which manages showing and
+// hiding a welcome notification for built-in components that show
+// notifications. The Welcome Notification presumes network connectivity since
+// it relies on synced preferences to work. This is generally fine since the
+// current consumers on the welcome notification also presume network
+// connectivity.
+//
// This class expects to be created and called from the UI thread.
-class ExtensionWelcomeNotification : public PrefServiceSyncableObserver {
+class ExtensionWelcomeNotification : public KeyedService,
+ public PrefServiceSyncableObserver {
public:
// Allows for overriding global calls.
class Delegate {
@@ -58,22 +61,19 @@ class ExtensionWelcomeNotification : public PrefServiceSyncableObserver {
// Requested time from showing the welcome notification to expiration.
static const int kRequestedShowTimeDays;
+ // The extension Id associated with the Google Now extension.
+ static const char kChromeNowExtensionID[];
+
virtual ~ExtensionWelcomeNotification();
// To workaround the lack of delegating constructors prior to C++11, we use
// static Create methods.
- // Creates an ExtensionWelcomeNotification owned by the specified
- // extension id with the default delegate.
- static scoped_ptr<ExtensionWelcomeNotification> Create(
- const std::string& extension_id,
- Profile* const profile);
-
- // Creates an ExtensionWelcomeNotification owned by the specified
- // extension id with the specified delegate.
- static scoped_ptr<ExtensionWelcomeNotification> Create(
- const std::string& extension_id,
- Profile* const profile,
- Delegate* const delegate);
+ // Creates an ExtensionWelcomeNotification with the default delegate.
+ static ExtensionWelcomeNotification* Create(Profile* const profile);
+
+ // Creates an ExtensionWelcomeNotification with the specified delegate.
+ static ExtensionWelcomeNotification* Create(Profile* const profile,
+ Delegate* const delegate);
// PrefServiceSyncableObserver
virtual void OnIsSyncingChanged() OVERRIDE;
@@ -89,7 +89,6 @@ class ExtensionWelcomeNotification : public PrefServiceSyncableObserver {
enum PopUpRequest { POP_UP_HIDDEN = 0, POP_UP_SHOWN = 1, };
ExtensionWelcomeNotification(
- const std::string& extension_id,
Profile* const profile,
ExtensionWelcomeNotification::Delegate* const delegate);

Powered by Google App Engine
This is Rietveld 408576698