| Index: content/child/notifications/notification_manager.h
|
| diff --git a/content/child/notifications/notification_manager.h b/content/child/notifications/notification_manager.h
|
| index 47d979d5b2730d1fe5e9c58ad9b7a1ed0a8fb13a..ee64f3c10638cbe1dc88e687ca3b24ff16f9aee5 100644
|
| --- a/content/child/notifications/notification_manager.h
|
| +++ b/content/child/notifications/notification_manager.h
|
| @@ -8,21 +8,15 @@
|
| #include <map>
|
| #include <set>
|
|
|
| -#include "base/id_map.h"
|
| #include "base/memory/ref_counted.h"
|
| -#include "base/memory/weak_ptr.h"
|
| #include "base/single_thread_task_runner.h"
|
| #include "content/child/notifications/notification_dispatcher.h"
|
| -#include "content/child/notifications/notification_image_loader.h"
|
| +#include "content/child/notifications/pending_notifications_tracker.h"
|
| #include "content/child/worker_task_runner.h"
|
| #include "third_party/WebKit/public/platform/modules/notifications/WebNotificationManager.h"
|
|
|
| class SkBitmap;
|
|
|
| -namespace blink {
|
| -class WebURL;
|
| -}
|
| -
|
| namespace content {
|
|
|
| class ThreadSafeSender;
|
| @@ -73,56 +67,36 @@ class NotificationManager : public blink::WebNotificationManager,
|
| void OnDidClose(int notification_id);
|
| void OnDidClick(int notification_id);
|
|
|
| - // Asynchronously starts loading |image_url| on the main thread and returns a
|
| - // reference to the notification image loaded responsible for this. |callback|
|
| - // will be invoked on the calling thread when the load is complete.
|
| - scoped_refptr<NotificationImageLoader> CreateImageLoader(
|
| - const blink::WebURL& image_url,
|
| - const NotificationImageLoadedCallback& callback) const;
|
| -
|
| - // Sends an IPC to the browser process to display the notification,
|
| - // accompanied by the downloaded icon.
|
| - void DisplayNotification(const blink::WebSerializedOrigin& origin,
|
| - const blink::WebNotificationData& notification_data,
|
| - blink::WebNotificationDelegate* delegate,
|
| - scoped_refptr<NotificationImageLoader> image_loader);
|
| -
|
| - // Sends an IPC to the browser process to display the persistent notification,
|
| - // accompanied by the downloaded icon.
|
| + // To be called when a page notification is ready to be displayed. Will
|
| + // inform the browser process about all available data. The |delegate|,
|
| + // owned by Blink, will be used to feed back events associated with the
|
| + // notification to the JavaScript object.
|
| + void DisplayPageNotification(
|
| + const blink::WebSerializedOrigin& origin,
|
| + const blink::WebNotificationData& notification_data,
|
| + blink::WebNotificationDelegate* delegate,
|
| + const SkBitmap& icon);
|
| +
|
| + // To be called when a persistent notification is ready to be displayed. Will
|
| + // inform the browser process about all available data. The |callbacks| will
|
| + // be used to inform the Promise pending in Blink that the notification has
|
| + // been send to the browser process to be displayed.
|
| void DisplayPersistentNotification(
|
| const blink::WebSerializedOrigin& origin,
|
| const blink::WebNotificationData& notification_data,
|
| int64 service_worker_registration_id,
|
| - int request_id,
|
| - scoped_refptr<NotificationImageLoader> image_loader);
|
| -
|
| - // Removes the notification identified by |delegate| from the set of
|
| - // pending notifications, and returns whether it could be found.
|
| - bool RemovePendingPageNotification(blink::WebNotificationDelegate* delegate);
|
| + scoped_ptr<blink::WebNotificationShowCallbacks> callbacks,
|
| + const SkBitmap& icon);
|
|
|
| scoped_refptr<ThreadSafeSender> thread_safe_sender_;
|
| - scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_;
|
| scoped_refptr<NotificationDispatcher> notification_dispatcher_;
|
|
|
| - // Tracking display requests for persistent notifications.
|
| - IDMap<blink::WebNotificationShowCallbacks, IDMapOwnPointer>
|
| - persistent_notification_requests_;
|
| -
|
| - // A map tracking Page-bound notifications whose icon is still being
|
| - // downloaded. These downloads can be cancelled by the developer.
|
| - std::map<blink::WebNotificationDelegate*,
|
| - scoped_refptr<NotificationImageLoader>>
|
| - pending_page_notifications_;
|
| -
|
| - // A set tracking Persistent notifications whose icon is still being
|
| - // downloaded. These downloads cannot be cancelled by the developer.
|
| - std::set<scoped_refptr<NotificationImageLoader>>
|
| - pending_persistent_notifications_;
|
| + // Tracker which stores all pending Notifications, both page and persistent
|
| + // ones, until all their associated resources have been fetched.
|
| + PendingNotificationsTracker pending_notifications_;
|
|
|
| // Map to store the delegate associated with a notification request Id.
|
| - std::map<int, blink::WebNotificationDelegate*> active_notifications_;
|
| -
|
| - base::WeakPtrFactory<NotificationManager> weak_factory_;
|
| + std::map<int, blink::WebNotificationDelegate*> active_page_notifications_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(NotificationManager);
|
| };
|
|
|