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

Unified Diff: chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h

Issue 11535008: Implement mediaGalleriesPrivate api to notify extensions about gallery changed events. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed review comments Created 8 years 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/extensions/api/media_galleries_private/media_galleries_private_api.h
diff --git a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h
index 454bf4f6122ec15a17f73ffb5f90ceb7a82c0d45..44f0f907d0dae7b596a61684bb4dcfa107fba6f0 100644
--- a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h
+++ b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h
@@ -5,15 +5,25 @@
#ifndef CHROME_BROWSER_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_MEDIA_GALLERIES_PRIVATE_API_H_
#define CHROME_BROWSER_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_MEDIA_GALLERIES_PRIVATE_API_H_
+#include <string>
+
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/extensions/event_router.h"
+#include "chrome/browser/extensions/extension_function.h"
#include "chrome/browser/profiles/profile_keyed_service.h"
+class FilePath;
+class Profile;
+
namespace extensions {
+
+class MediaGalleryExtensionNotificationObserver;
class MediaGalleriesPrivateEventRouter;
+// The profile-keyed service that manages the media galleries private extension
+// API.
class MediaGalleriesPrivateAPI : public ProfileKeyedService,
- public extensions::EventRouter::Observer {
+ public EventRouter::Observer {
public:
explicit MediaGalleriesPrivateAPI(Profile* profile);
virtual ~MediaGalleriesPrivateAPI();
@@ -22,14 +32,54 @@ class MediaGalleriesPrivateAPI : public ProfileKeyedService,
virtual void Shutdown() OVERRIDE;
// EventRouter::Observer implementation.
- virtual void OnListenerAdded(const extensions::EventListenerInfo& details)
- OVERRIDE;
+ virtual void OnListenerAdded(const EventListenerInfo& details) OVERRIDE;
+
+ MediaGalleriesPrivateEventRouter* event_router() const {
+ return media_galleries_private_event_router_.get();
+ }
private:
+ // Current profile.
Profile* profile_;
+ scoped_ptr<MediaGalleryExtensionNotificationObserver>
+ extension_notification_observer_;
+
+ // Created lazily on first access.
scoped_ptr<MediaGalleriesPrivateEventRouter>
media_galleries_private_event_router_;
+
+ DISALLOW_COPY_AND_ASSIGN(MediaGalleriesPrivateAPI);
+};
+
+// Implements the chrome.mediaGalleriesPrivate.addGalleryWatch method.
+class MediaGalleriesPrivateAddGalleryWatchFunction
+ : public AsyncExtensionFunction {
+ public:
+ DECLARE_EXTENSION_FUNCTION_NAME("mediaGalleriesPrivate.addGalleryWatch");
+
+ protected:
+ virtual ~MediaGalleriesPrivateAddGalleryWatchFunction() {}
Lei Zhang 2012/12/18 00:47:01 Put the implementation in the .cc file. Same for r
kmadhusu 2012/12/18 21:32:39 Done.
+
+ // AsyncExtensionFunction overrides.
+ virtual bool RunImpl() OVERRIDE;
+
+ // Gallery watch request handler.
+ void HandleResponse(const std::string& gallery_id,
Lei Zhang 2012/12/18 00:47:01 This can be private I think.
kmadhusu 2012/12/18 21:32:39 Done.
+ bool success);
+};
+
+// Implements the chrome.mediaGalleriesPrivate.removeGalleryWatch method.
+class MediaGalleriesPrivateRemoveGalleryWatchFunction
+ : public SyncExtensionFunction {
+ public:
+ DECLARE_EXTENSION_FUNCTION_NAME("mediaGalleriesPrivate.removeGalleryWatch");
+
+ protected:
+ virtual ~MediaGalleriesPrivateRemoveGalleryWatchFunction() {}
+
+ // SyncExtensionFunction overrides.
+ virtual bool RunImpl() OVERRIDE;
};
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698