| Index: chrome/browser/extensions/extension_bookmarks_module.h
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_bookmarks_module.h (revision 14841)
|
| +++ chrome/browser/extensions/extension_bookmarks_module.h (working copy)
|
| @@ -2,34 +2,105 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARKS_MODULE_H__
|
| -#define CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARKS_MODULE_H__
|
| +#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARKS_MODULE_H_
|
| +#define CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARKS_MODULE_H_
|
|
|
| +#include <string>
|
| +#include <vector>
|
| +
|
| +#include "base/singleton.h"
|
| +#include "chrome/browser/bookmarks/bookmark_model.h"
|
| #include "chrome/browser/extensions/extension_function.h"
|
|
|
| -class GetBookmarksFunction : public SyncExtensionFunction {
|
| +// Observes BookmarkModel and then routes the notifications as events to
|
| +// the extension system.
|
| +class ExtensionBookmarkEventRouter : public BookmarkModelObserver {
|
| + public:
|
| + static ExtensionBookmarkEventRouter* GetSingleton();
|
| + virtual ~ExtensionBookmarkEventRouter();
|
| +
|
| + // Call this for each model to observe. Safe to call multiple times per
|
| + // model.
|
| + void Observe(BookmarkModel* model);
|
| +
|
| + // BookmarkModelObserver
|
| + virtual void Loaded(BookmarkModel* model);
|
| + virtual void BookmarkModelBeingDeleted(BookmarkModel* model) { }
|
| + virtual void BookmarkNodeMoved(BookmarkModel* model,
|
| + BookmarkNode* old_parent,
|
| + int old_index,
|
| + BookmarkNode* new_parent,
|
| + int new_index);
|
| + virtual void BookmarkNodeAdded(BookmarkModel* model,
|
| + BookmarkNode* parent,
|
| + int index);
|
| + virtual void BookmarkNodeRemoved(BookmarkModel* model,
|
| + BookmarkNode* parent,
|
| + int index);
|
| + virtual void BookmarkNodeRemoved(BookmarkModel* model,
|
| + BookmarkNode* parent,
|
| + int old_index,
|
| + BookmarkNode* node) {
|
| + BookmarkNodeRemoved(model, parent, old_index);
|
| + }
|
| + virtual void BookmarkNodeChanged(BookmarkModel* model,
|
| + BookmarkNode* node);
|
| + virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model,
|
| + BookmarkNode* node);
|
| + virtual void BookmarkNodeChildrenReordered(BookmarkModel* model,
|
| + BookmarkNode* node);
|
| +
|
| + private:
|
| + ExtensionBookmarkEventRouter();
|
| + friend struct DefaultSingletonTraits<ExtensionBookmarkEventRouter>;
|
| +
|
| + // Helper to actually dispatch an event to extension listeners.
|
| + void DispatchEvent(Profile* profile,
|
| + const char* event_name,
|
| + const std::string json_args);
|
| +
|
| + // These are stored so that Observe can be called multiple times safely.
|
| + // This way the caller doesn't have to know whether it's already observing
|
| + // a particular model or not. The pointers are not owned by this object.
|
| + std::set<BookmarkModel*> models_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ExtensionBookmarkEventRouter);
|
| +};
|
| +
|
| +class BookmarksFunction : public SyncExtensionFunction {
|
| + virtual void Run();
|
| +};
|
| +
|
| +class GetBookmarksFunction : public BookmarksFunction {
|
| virtual bool RunImpl();
|
| };
|
|
|
| -class SearchBookmarksFunction : public SyncExtensionFunction {
|
| +class GetBookmarkChildrenFunction : public BookmarksFunction {
|
| virtual bool RunImpl();
|
| };
|
|
|
| -class RemoveBookmarkFunction : public SyncExtensionFunction {
|
| +class GetBookmarkTreeFunction : public BookmarksFunction {
|
| virtual bool RunImpl();
|
| };
|
|
|
| -class CreateBookmarkFunction : public SyncExtensionFunction {
|
| +class SearchBookmarksFunction : public BookmarksFunction {
|
| virtual bool RunImpl();
|
| };
|
|
|
| -class MoveBookmarkFunction : public SyncExtensionFunction {
|
| +class RemoveBookmarkFunction : public BookmarksFunction {
|
| virtual bool RunImpl();
|
| };
|
|
|
| -class SetBookmarkTitleFunction : public SyncExtensionFunction {
|
| +class CreateBookmarkFunction : public BookmarksFunction {
|
| virtual bool RunImpl();
|
| };
|
|
|
| -#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARKS_MODULE_H__
|
| +class MoveBookmarkFunction : public BookmarksFunction {
|
| + virtual bool RunImpl();
|
| +};
|
|
|
| +class SetBookmarkTitleFunction : public BookmarksFunction {
|
| + virtual bool RunImpl();
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARKS_MODULE_H_
|
|
|