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 |
deleted file mode 100644 |
index 65bdea032b04c0da634425f3644cc9f585c6525c..0000000000000000000000000000000000000000 |
--- a/chrome/browser/notifications/extension_welcome_notification.h |
+++ /dev/null |
@@ -1,165 +0,0 @@ |
-// Copyright 2014 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. |
- |
-#ifndef CHROME_BROWSER_NOTIFICATIONS_EXTENSION_WELCOME_NOTIFICATION_H_ |
-#define CHROME_BROWSER_NOTIFICATIONS_EXTENSION_WELCOME_NOTIFICATION_H_ |
- |
-#include <string> |
- |
-#include "base/memory/scoped_ptr.h" |
-#include "base/prefs/pref_member.h" |
-#include "base/timer/timer.h" |
-#include "chrome/browser/prefs/pref_service_syncable_observer.h" |
-#include "ui/message_center/notifier_settings.h" |
- |
-namespace base { |
-typedef Callback<void(void)> Closure; |
-} |
- |
-namespace message_center { |
-class MessageCenter; |
-} |
- |
-namespace tracked_objects { |
-class Location; |
-} |
- |
-namespace user_prefs { |
-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. |
-// This class expects to be created and called from the UI thread. |
-class ExtensionWelcomeNotification : public PrefServiceSyncableObserver { |
- public: |
- // Allows for overriding global calls. |
- class Delegate { |
- public: |
- Delegate() {} |
- virtual ~Delegate() {} |
- virtual message_center::MessageCenter* GetMessageCenter() = 0; |
- virtual base::Time GetCurrentTime() = 0; |
- virtual void PostTask( |
- const tracked_objects::Location& from_here, |
- const base::Closure& task) = 0; |
- private: |
- DISALLOW_COPY_AND_ASSIGN(Delegate); |
- }; |
- |
- // Requested time from showing the welcome notification to expiration. |
- static const int kRequestedShowTimeDays; |
- |
- 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); |
- |
- // PrefServiceSyncableObserver |
- virtual void OnIsSyncingChanged() OVERRIDE; |
- |
- // Adds in the welcome notification if required for components built |
- // into Chrome that show notifications like Chrome Now. |
- void ShowWelcomeNotificationIfNecessary(const Notification& notification); |
- |
- // Handles Preference Registration for the Welcome Notification. |
- static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* prefs); |
- |
- private: |
- enum PopUpRequest { POP_UP_HIDDEN = 0, POP_UP_SHOWN = 1, }; |
- |
- ExtensionWelcomeNotification( |
- const std::string& extension_id, |
- Profile* const profile, |
- ExtensionWelcomeNotification::Delegate* const delegate); |
- |
- // Gets the message center from the delegate. |
- message_center::MessageCenter* GetMessageCenter() const; |
- |
- // Unconditionally shows the welcome notification. |
- void ShowWelcomeNotification(const base::string16& display_source, |
- const PopUpRequest pop_up_request); |
- |
- // Hides the welcome notification. |
- void HideWelcomeNotification(); |
- |
- // Whether the notification has been dismissed. |
- bool UserHasDismissedWelcomeNotification() const; |
- |
- // Called when the Welcome Notification Dismissed pref has been changed. |
- void OnWelcomeNotificationDismissedChanged(); |
- |
- // Starts the welcome notification expiration timer. |
- void StartExpirationTimer(); |
- |
- // Stops the welcome notification expiration timer. |
- void StopExpirationTimer(); |
- |
- // Expires the welcome notification by hiding it and marking it dismissed. |
- void ExpireWelcomeNotification(); |
- |
- // Gets the expiration timestamp or a null time is there is none. |
- base::Time GetExpirationTimestamp() const; |
- |
- // Sets the expiration timestamp from now. |
- void SetExpirationTimestampFromNow(); |
- |
- // True if the welcome notification has expired, false otherwise. |
- bool IsWelcomeNotificationExpired() const; |
- |
- // Prefs listener for welcome_notification_dismissed. |
- BooleanPrefMember welcome_notification_dismissed_pref_; |
- |
- // Prefs listener for welcome_notification_dismissed_local. |
- // Dismissal flag migrated from a synced pref to a local one. |
- BooleanPrefMember welcome_notification_dismissed_local_pref_; |
- |
- // The notifier for the extension that we're listening for. |
- message_center::NotifierId notifier_id_; |
- |
- // The profile which owns this object. |
- Profile* profile_; |
- |
- // Notification ID of the Welcome Notification. |
- std::string welcome_notification_id_; |
- |
- // If the preferences are still syncing, store the last notification here |
- // so we can replay ShowWelcomeNotificationIfNecessary once the sync finishes. |
- // Simplifying Assumption: The delayed notification has passed the |
- // extension ID check. This means we do not need to store all of the |
- // notifications that may also show a welcome notification. |
- scoped_ptr<Notification> delayed_notification_; |
- |
- // If the welcome notification is shown, this timer tracks when to hide the |
- // welcome notification. |
- scoped_ptr<base::OneShotTimer<ExtensionWelcomeNotification> > |
- expiration_timer_; |
- |
- // Delegate for Chrome global calls like base::Time::GetTime() for |
- // testability. |
- scoped_ptr<Delegate> delegate_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ExtensionWelcomeNotification); |
-}; |
- |
-#endif // CHROME_BROWSER_NOTIFICATIONS_EXTENSION_WELCOME_NOTIFICATION_H_ |