summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/automation_provider_observers.h
diff options
context:
space:
mode:
authorjrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-12 18:27:53 +0000
committerjrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-12 18:27:53 +0000
commit6d8ffc9f70711222db4aaaca570be0574e88de42 (patch)
treeeafb5c341c9119e5c438025caa27dfda4902b096 /chrome/browser/automation/automation_provider_observers.h
parenta9710f39948f20b8eb3d9897a692a594374ee576 (diff)
downloadchromium_src-6d8ffc9f70711222db4aaaca570be0574e88de42.zip
chromium_src-6d8ffc9f70711222db4aaaca570be0574e88de42.tar.gz
chromium_src-6d8ffc9f70711222db4aaaca570be0574e88de42.tar.bz2
Add pyauto hooks for bookmarks.
Get model, add/remove, add folder, reparent, change title/url. BUG=34492 Review URL: http://codereview.chromium.org/792003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41450 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation/automation_provider_observers.h')
-rw-r--r--chrome/browser/automation/automation_provider_observers.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/chrome/browser/automation/automation_provider_observers.h b/chrome/browser/automation/automation_provider_observers.h
index 79c824d..0d75e70 100644
--- a/chrome/browser/automation/automation_provider_observers.h
+++ b/chrome/browser/automation/automation_provider_observers.h
@@ -8,6 +8,7 @@
#include <map>
#include <set>
+#include "chrome/browser/bookmarks/bookmark_model_observer.h"
#include "chrome/common/notification_observer.h"
#include "chrome/common/notification_registrar.h"
#include "chrome/common/notification_type.h"
@@ -405,4 +406,50 @@ class LoginManagerObserver : public NotificationObserver {
};
#endif
+// Waits for the bookmark model to load.
+class AutomationProviderBookmarkModelObserver : BookmarkModelObserver {
+ public:
+ AutomationProviderBookmarkModelObserver(AutomationProvider* provider,
+ IPC::Message* reply_message,
+ BookmarkModel* model);
+ virtual ~AutomationProviderBookmarkModelObserver();
+
+ virtual void Loaded(BookmarkModel* model) {
+ ReplyAndDelete(true);
+ }
+ virtual void BookmarkModelBeingDeleted(BookmarkModel* model) {
+ ReplyAndDelete(false);
+ }
+ virtual void BookmarkNodeMoved(BookmarkModel* model,
+ const BookmarkNode* old_parent,
+ int old_index,
+ const BookmarkNode* new_parent,
+ int new_index) {}
+ virtual void BookmarkNodeAdded(BookmarkModel* model,
+ const BookmarkNode* parent,
+ int index) {}
+ virtual void BookmarkNodeRemoved(BookmarkModel* model,
+ const BookmarkNode* parent,
+ int old_index,
+ const BookmarkNode* node) {}
+ virtual void BookmarkNodeChanged(BookmarkModel* model,
+ const BookmarkNode* node) {}
+ virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model,
+ const BookmarkNode* node) {}
+ virtual void BookmarkNodeChildrenReordered(BookmarkModel* model,
+ const BookmarkNode* node) {}
+
+ private:
+ // Reply to the automation message with the given success value,
+ // then delete myself (which removes myself from the bookmark model
+ // observer list).
+ void ReplyAndDelete(bool success);
+
+ scoped_refptr<AutomationProvider> automation_provider_;
+ IPC::Message* reply_message_;
+ BookmarkModel* model_;
+
+ DISALLOW_COPY_AND_ASSIGN(AutomationProviderBookmarkModelObserver);
+};
+
#endif // CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_OBSERVERS_H_