summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_bookmarks_module.h
diff options
context:
space:
mode:
authormpcomplete@google.com <mpcomplete@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-05 19:07:01 +0000
committermpcomplete@google.com <mpcomplete@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-05 19:07:01 +0000
commit32dda3615ecec2a9f0ce3318658588b4103d997d (patch)
tree0705a3eeb8f48c52329a1dcc5804aee59d80966a /chrome/browser/extensions/extension_bookmarks_module.h
parentc2f5dd7f69af7a59321e5acd1aa39fea5b2b2bfd (diff)
downloadchromium_src-32dda3615ecec2a9f0ce3318658588b4103d997d.zip
chromium_src-32dda3615ecec2a9f0ce3318658588b4103d997d.tar.gz
chromium_src-32dda3615ecec2a9f0ce3318658588b4103d997d.tar.bz2
Make AsyncExtensionFunction possible.
Change the bookmarks API to be async functions, so that they can delay their response until the bookmark system is loaded. BUG=12353 TEST=none Review URL: http://codereview.chromium.org/114079 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17751 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_bookmarks_module.h')
-rw-r--r--chrome/browser/extensions/extension_bookmarks_module.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/chrome/browser/extensions/extension_bookmarks_module.h b/chrome/browser/extensions/extension_bookmarks_module.h
index a2b6a084..5a22f58 100644
--- a/chrome/browser/extensions/extension_bookmarks_module.h
+++ b/chrome/browser/extensions/extension_bookmarks_module.h
@@ -12,6 +12,7 @@
#include "chrome/browser/bookmarks/bookmark_model.h"
#include "chrome/browser/extensions/extension_function.h"
#include "chrome/browser/extensions/extension_tabs_module.h"
+#include "chrome/common/notification_registrar.h"
// Observes BookmarkModel and then routes the notifications as events to
// the extension system.
@@ -68,8 +69,16 @@ class ExtensionBookmarkEventRouter : public BookmarkModelObserver {
DISALLOW_COPY_AND_ASSIGN(ExtensionBookmarkEventRouter);
};
-class BookmarksFunction : public SyncExtensionFunction {
+class BookmarksFunction : public AsyncExtensionFunction,
+ public NotificationObserver {
virtual void Run();
+ virtual bool RunImpl() = 0;
+
+ private:
+ virtual void Observe(NotificationType type,
+ const NotificationSource& source,
+ const NotificationDetails& details);
+ NotificationRegistrar registrar_;
};
class GetBookmarksFunction : public BookmarksFunction {