Index: chrome/android/java/src/org/chromium/chrome/browser/bookmark/BookmarksBridge.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmark/BookmarksBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmark/BookmarksBridge.java |
index f0c1a978799229ae4b2e77285ac99fd1371d8e25..34f842f7173180160dbf0be881cdf8d9403a2db5 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmark/BookmarksBridge.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmark/BookmarksBridge.java |
@@ -207,6 +207,29 @@ public class BookmarksBridge { |
} |
/** |
+ * Schedules a runnable to run after the bookmark model is loaded. If the |
+ * model is already loaded, executes the runnable immediately. |
+ * @return Whether the given runnable is executed synchronously. |
+ */ |
+ public boolean runAfterBookmarkModelLoaded(final Runnable runnable) { |
+ if (isBookmarkModelLoaded()) { |
+ runnable.run(); |
+ return true; |
+ } |
+ addObserver(new BookmarkModelObserver() { |
+ @Override |
+ public void bookmarkModelLoaded() { |
+ removeObserver(this); |
+ runnable.run(); |
+ } |
+ @Override |
+ public void bookmarkModelChanged() { |
+ } |
+ }); |
+ return false; |
+ } |
+ |
+ /** |
* @return A BookmarkItem instance for the given BookmarkId. |
* <code>null</code> if it doesn't exist. |
*/ |