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

Unified Diff: content/child/notifications/notification_image_loader.h

Issue 939513002: Factor out a PendingNotificationTracker from the NotificationManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@n-sounds
Patch Set: Created 5 years, 10 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: content/child/notifications/notification_image_loader.h
diff --git a/content/child/notifications/notification_image_loader.h b/content/child/notifications/notification_image_loader.h
index 14a36dafa72c4398e7a47f0d99b654a034ef52b9..1cbfff73fc2df0e2b58e03e468bc9b438d17d8ac 100644
--- a/content/child/notifications/notification_image_loader.h
+++ b/content/child/notifications/notification_image_loader.h
@@ -12,6 +12,7 @@
#include "base/memory/scoped_ptr.h"
#include "third_party/WebKit/public/platform/WebURLLoaderClient.h"
+class GURL;
class SkBitmap;
namespace base {
@@ -26,12 +27,6 @@ class WebURLLoader;
namespace content {
-class NotificationImageLoader;
-
-// Callback to be invoked when an image load has been completed.
-using NotificationImageLoadedCallback =
- base::Callback<void(scoped_refptr<NotificationImageLoader>)>;
-
// Downloads the image associated with a notification and decodes the received
// image. This must be completed before notifications are shown to the user.
// Image downloaders must not be re-used for multiple notifications. The image
@@ -40,19 +35,16 @@ using NotificationImageLoadedCallback =
class NotificationImageLoader
: public blink::WebURLLoaderClient,
public base::RefCountedThreadSafe<NotificationImageLoader> {
+ using ImageLoadCompletedCallback = base::Callback<void(int, const SkBitmap&)>;
+
public:
- explicit NotificationImageLoader(
- const NotificationImageLoadedCallback& callback);
-
- // Asynchronously starts loading |image_url|.
- // Must be called on the main thread. The callback should be executed by
- // |worker_task_runner|.
- void StartOnMainThread(
- const blink::WebURL& image_url,
+ NotificationImageLoader(
+ const ImageLoadCompletedCallback& callback,
const scoped_refptr<base::SingleThreadTaskRunner>& worker_task_runner);
- // Returns the SkBitmap resulting from decoding the loaded buffer.
- SkBitmap GetDecodedImage() const;
+ // Asynchronously starts loading |image_url| using a Blink WebURLLoader. Must
+ // only be called on the main thread.
+ void StartOnMainThread(int notification_id, const GURL& image_url);
// blink::WebURLLoaderClient implementation.
virtual void didReceiveData(blink::WebURLLoader* loader,
@@ -74,13 +66,16 @@ class NotificationImageLoader
// For all other threads a task will be posted to the appropriate task runner.
void RunCallbackOnWorkerThread();
- NotificationImageLoadedCallback callback_;
+ ImageLoadCompletedCallback callback_;
- scoped_ptr<blink::WebURLLoader> url_loader_;
scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner_;
scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_;
+
+ int notification_id_;
bool completed_;
+ scoped_ptr<blink::WebURLLoader> url_loader_;
+
std::vector<uint8_t> buffer_;
DISALLOW_COPY_AND_ASSIGN(NotificationImageLoader);

Powered by Google App Engine
This is Rietveld 408576698