diff options
author | cramya@chromium.org <cramya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-02 01:15:54 +0000 |
---|---|---|
committer | cramya@chromium.org <cramya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-02 01:15:54 +0000 |
commit | 6d8c77f6752563edb5afe5155ea3471e93ddd553 (patch) | |
tree | c92b65174e118433421a940ad766b12f5539da33 | |
parent | 2502bb9fd8d1b58c67f2cf634cf791c28fe81960 (diff) | |
download | chromium_src-6d8c77f6752563edb5afe5155ea3471e93ddd553.zip chromium_src-6d8c77f6752563edb5afe5155ea3471e93ddd553.tar.gz chromium_src-6d8c77f6752563edb5afe5155ea3471e93ddd553.tar.bz2 |
Add support for managed bookmarks in the android new NTP.
These bookmarks can not be edited or deleted.
Moved all bookmarks files to chrome/browser/android/bookmarks
Moved managed_bookmarks_shim.* to chrome/browser/android/bookmarks
BUG=311740
NOTRY=true
Review URL: https://codereview.chromium.org/45453005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232540 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java | 177 | ||||
-rw-r--r-- | chrome/browser/android/bookmarks/bookmarks_bridge.cc (renamed from chrome/browser/android/bookmarks_bridge.cc) | 109 | ||||
-rw-r--r-- | chrome/browser/android/bookmarks/bookmarks_bridge.h (renamed from chrome/browser/android/bookmarks_bridge.h) | 29 | ||||
-rw-r--r-- | chrome/browser/android/bookmarks/managed_bookmarks_shim.cc (renamed from chrome/browser/ui/webui/ntp/android/managed_bookmarks_shim.cc) | 4 | ||||
-rw-r--r-- | chrome/browser/android/bookmarks/managed_bookmarks_shim.h (renamed from chrome/browser/ui/webui/ntp/android/managed_bookmarks_shim.h) | 8 | ||||
-rw-r--r-- | chrome/browser/android/chrome_jni_registrar.cc | 2 | ||||
-rw-r--r-- | chrome/browser/ui/webui/ntp/android/bookmarks_handler.h | 2 | ||||
-rw-r--r-- | chrome/chrome_browser.gypi | 6 | ||||
-rw-r--r-- | chrome/chrome_browser_ui.gypi | 2 |
9 files changed, 276 insertions, 63 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java index 48c7603..f06c945 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java @@ -4,6 +4,9 @@ package org.chromium.chrome.browser; +import android.text.TextUtils; +import android.util.Log; + import org.chromium.base.CalledByNative; import org.chromium.base.ObserverList; import org.chromium.chrome.browser.profiles.Profile; @@ -17,6 +20,14 @@ import java.util.List; */ public class BookmarksBridge { + // Should mirror constants in chrome/browser/android/bookmarks/bookmarks_bridge.cc + public static final int BOOKMARK_TYPE_NORMAL = 0; + public static final int BOOKMARK_TYPE_MANAGED = 1; + public static final int BOOKMARK_TYPE_PARTNER = 2; + + public static final int INVALID_FOLDER_ID = -2; + public static final int ROOT_FOLDER_ID = -1; + private final Profile mProfile; private int mNativeBookmarksBridge; private boolean mIsNativeBookmarkModelLoaded; @@ -35,7 +46,7 @@ public class BookmarksBridge { * @param bookmarksList List holding the fetched bookmarks and details. */ @CalledByNative("BookmarksCallback") - void onBookmarksAvailable(long folderId, List<BookmarkItem> bookmarksList); + void onBookmarksAvailable(BookmarkId folderId, List<BookmarkItem> bookmarksList); /** * Callback method for fetching the folder hierarchy. @@ -43,7 +54,7 @@ public class BookmarksBridge { * @param bookmarksList List holding the fetched folder details. */ @CalledByNative("BookmarksCallback") - void onBookmarksFolderHierarchyAvailable(long folderId, + void onBookmarksFolderHierarchyAvailable(BookmarkId folderId, List<BookmarkItem> bookmarksList); } @@ -102,6 +113,12 @@ public class BookmarksBridge { * update themselves if they were waiting for the update to finish. */ void extensiveBookmarkChangesEnded(); + + /** + * Called when there are changes to the bookmark model that don't trigger any of the other + * callback methods. For example, this is called when managed or partner bookmarks change. + */ + void bookmarkModelChanged(); } /** @@ -121,6 +138,7 @@ public class BookmarksBridge { nativeDestroy(mNativeBookmarksBridge); mNativeBookmarksBridge = 0; mIsNativeBookmarkModelLoaded = false; + mDelayedBookmarkCallbacks.clear(); } mObservers.clear(); } @@ -148,7 +166,7 @@ public class BookmarksBridge { * @param folderId The current folder id. * @param callback Instance of a callback object. */ - public void getBookmarksForFolder(long folderId, BookmarksCallback callback) { + public void getBookmarksForFolder(BookmarkId folderId, BookmarksCallback callback) { if (mIsNativeBookmarkModelLoaded) { nativeGetBookmarksForFolder(mNativeBookmarksBridge, folderId, callback, new ArrayList<BookmarkItem>()); @@ -165,7 +183,7 @@ public class BookmarksBridge { * @param folderId The current folder id. * @param callback Instance of a callback object. */ - public void getCurrentFolderHierarchy(long folderId, BookmarksCallback callback) { + public void getCurrentFolderHierarchy(BookmarkId folderId, BookmarksCallback callback) { if (mIsNativeBookmarkModelLoaded) { nativeGetCurrentFolderHierarchy(mNativeBookmarksBridge, folderId, callback, new ArrayList<BookmarkItem>()); @@ -179,7 +197,7 @@ public class BookmarksBridge { * Deletes a specified bookmark node. * @param bookmarkId The ID of the bookmark to be deleted. */ - public void deleteBookmark(long bookmarkId) { + public void deleteBookmark(BookmarkId bookmarkId) { nativeDeleteBookmark(mNativeBookmarksBridge, bookmarkId); } @@ -254,9 +272,17 @@ public class BookmarksBridge { } @CalledByNative - private static BookmarkItem create(long id, String title, String url, - boolean isFolder, long parentId, boolean isEditable) { - return new BookmarkItem(id, title, url, isFolder, parentId, isEditable); + private void bookmarkModelChanged() { + for (BookmarkModelObserver observer : mObservers) { + observer.bookmarkModelChanged(); + } + } + + @CalledByNative + private static BookmarkItem createBookmarkItem(long id, int type, String title, String url, + boolean isFolder, long parentId, int parentIdType, boolean isEditable) { + return new BookmarkItem(new BookmarkId(id, type), title, url, isFolder, + new BookmarkId(parentId, parentIdType), isEditable); } @CalledByNative @@ -265,30 +291,138 @@ public class BookmarksBridge { } private native void nativeGetBookmarksForFolder(int nativeBookmarksBridge, - long folderId, BookmarksCallback callback, + BookmarkId folderId, BookmarksCallback callback, List<BookmarkItem> bookmarksList); private native void nativeGetCurrentFolderHierarchy(int nativeBookmarksBridge, - long folderId, BookmarksCallback callback, + BookmarkId folderId, BookmarksCallback callback, List<BookmarkItem> bookmarksList); - private native void nativeDeleteBookmark(int nativeBookmarksBridge, long bookmarkId); + private native void nativeDeleteBookmark(int nativeBookmarksBridge, BookmarkId bookmarkId); private native int nativeInit(Profile profile); private native void nativeDestroy(int nativeBookmarksBridge); private static native boolean nativeIsEditBookmarksEnabled(); /** + * Simple object representing the bookmark id. + */ + public static class BookmarkId { + private static final String LOG_TAG = "BookmarkId"; + private static final char TYPE_MANAGED = 'm'; + private static final char TYPE_PARTNER = 'p'; + + private final long mId; + private final int mType; + + public BookmarkId(long id, int type) { + mId = id; + mType = type; + } + + /** + * @param c The char representing the type. + * @return The Bookmark type from a char representing the type. + */ + private static int getBookmarkTypeFromChar(char c) { + switch (c) { + case TYPE_MANAGED: + return BOOKMARK_TYPE_MANAGED; + case TYPE_PARTNER: + return BOOKMARK_TYPE_PARTNER; + default: + return BOOKMARK_TYPE_NORMAL; + } + } + + /** + * @param c The char representing the bookmark type. + * @return Whether the char representing the bookmark type is a valid type. + */ + private static boolean isValidBookmarkTypeFromChar(char c) { + return (c == TYPE_MANAGED || c == TYPE_PARTNER); + } + + /** + * @param s The bookmark id string (Eg: m1 for managed bookmark id 1). + * @return the Bookmark id from the string which is a concatenation of bookmark type and + * the bookmark id. + */ + public static BookmarkId getBookmarkIdFromString(String s) { + long id = ROOT_FOLDER_ID; + int type = BOOKMARK_TYPE_NORMAL; + if (TextUtils.isEmpty(s)) return new BookmarkId(id, type); + char folderTypeChar = s.charAt(0); + if (isValidBookmarkTypeFromChar(folderTypeChar)) { + type = getBookmarkTypeFromChar(folderTypeChar); + s = s.substring(1); + } + try { + id = Long.parseLong(s); + } catch (NumberFormatException exception) { + Log.e(LOG_TAG, "Error parsing url to extract the bookmark folder id.", exception); + } + return new BookmarkId(id, type); + } + + /** + * @return The id of the bookmark. + */ + @CalledByNative("BookmarkId") + public long getId() { + return mId; + } + + /** + * @return The bookmark type. + */ + @CalledByNative("BookmarkId") + public int getType() { + return mType; + } + + private String getBookmarkTypeString() { + switch (mType) { + case BOOKMARK_TYPE_MANAGED: + return String.valueOf(TYPE_MANAGED); + case BOOKMARK_TYPE_PARTNER: + return String.valueOf(TYPE_PARTNER); + case BOOKMARK_TYPE_NORMAL: + default: + return ""; + } + } + + @Override + public String toString() { + return getBookmarkTypeString() + mId; + } + + @Override + public boolean equals(Object o) { + if (!(o instanceof BookmarkId)) return false; + BookmarkId item = (BookmarkId) o; + return (item.mId == mId && item.mType == mType); + } + + @Override + public int hashCode() { + return toString().hashCode(); + } + } + + /** * Simple object representing the bookmark item. */ public static class BookmarkItem { private final String mTitle; private final String mUrl; - private final long mId; + private final BookmarkId mId; private final boolean mIsFolder; - private final long mParentId; + private final BookmarkId mParentId; private final boolean mIsEditable; - private BookmarkItem(long id, String title, String url, boolean isFolder, long parentId, - boolean isEditable) { + + private BookmarkItem(BookmarkId id, String title, String url, boolean isFolder, + BookmarkId parentId, boolean isEditable) { mId = id; mTitle = title; mUrl = url; @@ -308,7 +442,7 @@ public class BookmarksBridge { } /** @return Id of the bookmark item. */ - public long getId() { + public BookmarkId getId() { return mId; } @@ -318,7 +452,7 @@ public class BookmarksBridge { } /** @return Parent id of the bookmark item. */ - public long getParentId() { + public BookmarkId getParentId() { return mParentId; } @@ -337,12 +471,12 @@ public class BookmarksBridge { private static final int GET_CURRENT_FOLDER_HIERARCHY = 1; private final BookmarksCallback mCallback; - private final long mFolderId; + private final BookmarkId mFolderId; private final int mCallbackMethod; private final BookmarksBridge mHandler; - private DelayedBookmarkCallback(long folderId, BookmarksCallback callback, int method, - BookmarksBridge handler) { + private DelayedBookmarkCallback(BookmarkId folderId, BookmarksCallback callback, + int method, BookmarksBridge handler) { mFolderId = folderId; mCallback = callback; mCallbackMethod = method; @@ -353,7 +487,7 @@ public class BookmarksBridge { * Invoke the callback method. */ private void callCallbackMethod() { - switch(mCallbackMethod) { + switch (mCallbackMethod) { case GET_BOOKMARKS_FOR_FOLDER: mHandler.getBookmarksForFolder(mFolderId, mCallback); break; @@ -361,6 +495,7 @@ public class BookmarksBridge { mHandler.getCurrentFolderHierarchy(mFolderId, mCallback); break; default: + assert false; break; } } diff --git a/chrome/browser/android/bookmarks_bridge.cc b/chrome/browser/android/bookmarks/bookmarks_bridge.cc index 031e929..c355b49 100644 --- a/chrome/browser/android/bookmarks_bridge.cc +++ b/chrome/browser/android/bookmarks/bookmarks_bridge.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/android/bookmarks_bridge.h" +#include "chrome/browser/android/bookmarks/bookmarks_bridge.h" #include "base/android/jni_string.h" #include "base/prefs/pref_service.h" @@ -22,6 +22,10 @@ using base::android::ScopedJavaLocalRef; using base::android::ScopedJavaGlobalRef; using content::BrowserThread; +// Should mirror constants in BookmarkBridge.java +static const int kBookmarkTypeNormal = 0; +static const int kBookmarkTypeManaged = 1; + BookmarksBridge::BookmarksBridge(JNIEnv* env, jobject obj, jobject j_profile) @@ -34,10 +38,21 @@ BookmarksBridge::BookmarksBridge(JNIEnv* env, bookmark_model_->AddObserver(this); if (bookmark_model_->loaded()) Java_BookmarksBridge_bookmarkModelLoaded(env, obj); + + managed_bookmarks_shim_.reset(new ManagedBookmarksShim(profile->GetPrefs())); + managed_bookmarks_shim_->AddObserver(this); + + // Since a sync or import could have started before this class is + // initialized, we need to make sure that our initial state is + // up to date. + if (bookmark_model_->IsDoingExtensiveChanges()) + ExtensiveBookmarkChangesBeginning(bookmark_model_); } BookmarksBridge::~BookmarksBridge() { bookmark_model_->RemoveObserver(this); + if (managed_bookmarks_shim_) + managed_bookmarks_shim_->RemoveObserver(this); } void BookmarksBridge::Destroy(JNIEnv*, jobject) { @@ -65,11 +80,21 @@ static jboolean IsEditBookmarksEnabled(JNIEnv* env, jclass clazz) { void BookmarksBridge::GetBookmarksForFolder(JNIEnv* env, jobject obj, - jlong folder_id, + jobject j_folder_id_obj, jobject j_callback_obj, jobject j_result_obj) { DCHECK(bookmark_model_->loaded()); - const BookmarkNode* folder = GetFolderNodeFromId(folder_id); + long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj); + int type = Java_BookmarkId_getType(env, j_folder_id_obj); + const BookmarkNode* folder = GetFolderWithFallback(folder_id, type); + // If this is the Mobile bookmarks folder then add the "Managed bookmarks" + // folder first, so that it's the first entry. + if (folder == bookmark_model_->mobile_node() && + managed_bookmarks_shim_->HasManagedBookmarks()) { + ExtractBookmarkNodeInformation( + managed_bookmarks_shim_->GetManagedBookmarksRoot(), + j_result_obj); + } // Get the folder contents for (int i = 0; i < folder->child_count(); ++i) { const BookmarkNode* node = folder->GetChild(i); @@ -77,40 +102,44 @@ void BookmarksBridge::GetBookmarksForFolder(JNIEnv* env, } Java_BookmarksCallback_onBookmarksAvailable( - env, j_callback_obj, folder->id(), j_result_obj); + env, j_callback_obj, j_folder_id_obj, j_result_obj); } void BookmarksBridge::GetCurrentFolderHierarchy(JNIEnv* env, jobject obj, - jlong folder_id, + jobject j_folder_id_obj, jobject j_callback_obj, jobject j_result_obj) { DCHECK(bookmark_model_->loaded()); - const BookmarkNode* folder = GetFolderNodeFromId(folder_id); + long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj); + int type = Java_BookmarkId_getType(env, j_folder_id_obj); + const BookmarkNode* folder = GetFolderWithFallback(folder_id, type); // Get the folder heirarchy const BookmarkNode* node = folder; while (node) { ExtractBookmarkNodeInformation(node, j_result_obj); - node = node->parent(); + node = GetParentNode(node); } Java_BookmarksCallback_onBookmarksFolderHierarchyAvailable( - env, j_callback_obj, folder->id(), j_result_obj); + env, j_callback_obj, j_folder_id_obj, j_result_obj); } void BookmarksBridge::DeleteBookmark(JNIEnv* env, jobject obj, - jlong bookmark_id) { + jobject j_bookmark_id_obj) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(bookmark_model_->loaded()); - const BookmarkNode* node = bookmark_model_->GetNodeByID(bookmark_id); + long bookmark_id = Java_BookmarkId_getId(env, j_bookmark_id_obj); + int type = Java_BookmarkId_getType(env, j_bookmark_id_obj); + const BookmarkNode* node = GetNodeByID(bookmark_id, type); if (!IsEditable(node)) { NOTREACHED(); return; } - const BookmarkNode* parent_node = node->parent(); + const BookmarkNode* parent_node = GetParentNode(node); bookmark_model_->Remove(parent_node, parent_node->GetIndexOf(node)); } @@ -118,20 +147,22 @@ ScopedJavaLocalRef<jobject> BookmarksBridge::CreateJavaBookmark( const BookmarkNode* node) { JNIEnv* env = AttachCurrentThread(); - const BookmarkNode* parent = node->parent(); + const BookmarkNode* parent = GetParentNode(node); int64 parent_id = parent ? parent->id() : -1; std::string url; if (node->is_url()) url = node->url().spec(); - return Java_BookmarksBridge_create( + return Java_BookmarksBridge_createBookmarkItem( env, node->id(), + GetBookmarkType(node), ConvertUTF16ToJavaString(env, node->GetTitle()).obj(), ConvertUTF8ToJavaString(env, url).obj(), node->is_folder(), parent_id, + GetBookmarkType(parent), IsEditable(node)); } @@ -145,29 +176,59 @@ void BookmarksBridge::ExtractBookmarkNodeInformation( CreateJavaBookmark(node).obj()); } -const BookmarkNode* BookmarksBridge::GetFolderNodeFromId(jlong folder_id) { - const BookmarkNode* folder; - if (folder_id == -1) { - folder = bookmark_model_->mobile_node(); +const BookmarkNode* BookmarksBridge::GetNodeByID(long node_id, + int type) { + const BookmarkNode* node; + if (type == kBookmarkTypeManaged) { + node = managed_bookmarks_shim_->GetNodeByID( + static_cast<int64>(node_id)); } else { - folder = bookmark_model_->GetNodeByID( - static_cast<int64>(folder_id)); + node = bookmark_model_->GetNodeByID(static_cast<int64>(node_id)); } - if (!folder) + return node; +} + +const BookmarkNode* BookmarksBridge::GetFolderWithFallback( + long folder_id, int type) { + const BookmarkNode* folder = GetNodeByID(folder_id, type); + if (!folder || folder->type() == BookmarkNode::URL) folder = bookmark_model_->mobile_node(); return folder; } bool BookmarksBridge::IsEditable(const BookmarkNode* node) const { return node && - (node->type() == BookmarkNode::FOLDER || + (node->type() == BookmarkNode::FOLDER || node->type() == BookmarkNode::URL) && - IsEditBookmarksEnabled(); + !managed_bookmarks_shim_->IsManagedBookmark(node) && + IsEditBookmarksEnabled(); +} + +const BookmarkNode* BookmarksBridge::GetParentNode(const BookmarkNode* node) { + DCHECK(bookmark_model_->loaded()); + if (node == managed_bookmarks_shim_->GetManagedBookmarksRoot()) + return bookmark_model_->mobile_node(); + else + return node->parent(); +} + +int BookmarksBridge::GetBookmarkType(const BookmarkNode* node) { + if (managed_bookmarks_shim_->IsManagedBookmark(node)) + return kBookmarkTypeManaged; + else + return kBookmarkTypeNormal; } // ------------- Observer-related methods ------------- // void BookmarksBridge::BookmarkModelChanged() { + // Called when there are changes to the bookmark model. It is most + // likely changes to either managed or partner bookmarks. + JNIEnv* env = AttachCurrentThread(); + ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); + if (obj.is_null()) + return; + Java_BookmarksBridge_bookmarkModelChanged(env, obj.obj()); } void BookmarksBridge::Loaded(BookmarkModel* model, bool ids_reassigned) { @@ -273,3 +334,7 @@ void BookmarksBridge::ExtensiveBookmarkChangesEnded(BookmarkModel* model) { return; Java_BookmarksBridge_extensiveBookmarkChangesEnded(env, obj.obj()); } + +void BookmarksBridge::OnManagedBookmarksChanged() { + BookmarkModelChanged(); +} diff --git a/chrome/browser/android/bookmarks_bridge.h b/chrome/browser/android/bookmarks/bookmarks_bridge.h index 742edea..3bb5e20 100644 --- a/chrome/browser/android/bookmarks_bridge.h +++ b/chrome/browser/android/bookmarks/bookmarks_bridge.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_ANDROID_BOOKMARKS_BRIDGE_H_ -#define CHROME_BROWSER_ANDROID_BOOKMARKS_BRIDGE_H_ +#ifndef CHROME_BROWSER_ANDROID_BOOKMARKS_BOOKMARKS_BRIDGE_H_ +#define CHROME_BROWSER_ANDROID_BOOKMARKS_BOOKMARKS_BRIDGE_H_ #include <jni.h> @@ -11,6 +11,7 @@ #include "base/android/jni_helper.h" #include "base/basictypes.h" #include "base/compiler_specific.h" +#include "chrome/browser/android/bookmarks/managed_bookmarks_shim.h" #include "chrome/browser/bookmarks/base_bookmark_model_observer.h" class Profile; @@ -18,7 +19,8 @@ class Profile; // The delegate to fetch bookmarks information for the Android native // bookmark page. This fetches the bookmarks, title, urls, folder // hierarchy. -class BookmarksBridge : public BaseBookmarkModelObserver { +class BookmarksBridge : public BaseBookmarkModelObserver, + public ManagedBookmarksShim::Observer { public: BookmarksBridge(JNIEnv* env, jobject obj, jobject j_profile); void Destroy(JNIEnv*, jobject); @@ -27,19 +29,19 @@ class BookmarksBridge : public BaseBookmarkModelObserver { void GetBookmarksForFolder(JNIEnv* env, jobject obj, - jlong folder_id, + jobject j_folder_id_obj, jobject j_callback_obj, jobject j_result_obj); void GetCurrentFolderHierarchy(JNIEnv* env, jobject obj, - jlong folder_id, + jobject j_folder_id_obj, jobject j_callback_obj, jobject j_result_obj); void DeleteBookmark(JNIEnv* env, jobject obj, - jlong bookmark_id); + jobject j_bookmark_id_obj); private: virtual ~BookmarksBridge(); @@ -49,11 +51,17 @@ class BookmarksBridge : public BaseBookmarkModelObserver { void ExtractBookmarkNodeInformation( const BookmarkNode* node, jobject j_result_obj); - const BookmarkNode* GetFolderNodeFromId(jlong folder_id); + const BookmarkNode* GetNodeByID(long node_id, int type); + const BookmarkNode* GetFolderWithFallback(long folder_id, int type); // Returns true if |node| can be modified by the user. bool IsEditable(const BookmarkNode* node) const; + const BookmarkNode* GetParentNode(const BookmarkNode* node); + int GetBookmarkType(const BookmarkNode* node); // Override BaseBookmarkModelObserver. + // Called when there are changes to the bookmark model that don't trigger + // any of the other callback methods. For example, this is called when + // managed or partner bookmarks change. virtual void BookmarkModelChanged() OVERRIDE; virtual void Loaded(BookmarkModel* model, bool ids_reassigned) OVERRIDE; virtual void BookmarkModelBeingDeleted(BookmarkModel* model) OVERRIDE; @@ -76,10 +84,15 @@ class BookmarksBridge : public BaseBookmarkModelObserver { virtual void ExtensiveBookmarkChangesBeginning(BookmarkModel* model) OVERRIDE; virtual void ExtensiveBookmarkChangesEnded(BookmarkModel* model) OVERRIDE; + // Override ManagedBookmarksShim::Observer + virtual void OnManagedBookmarksChanged() OVERRIDE; + JavaObjectWeakGlobalRef weak_java_ref_; BookmarkModel* bookmark_model_; // weak + scoped_ptr<ManagedBookmarksShim> managed_bookmarks_shim_; + DISALLOW_COPY_AND_ASSIGN(BookmarksBridge); }; -#endif // CHROME_BROWSER_ANDROID_BOOKMARKS_BRIDGE_H_ +#endif // CHROME_BROWSER_ANDROID_BOOKMARKS_BOOKMARKS_BRIDGE_H_ diff --git a/chrome/browser/ui/webui/ntp/android/managed_bookmarks_shim.cc b/chrome/browser/android/bookmarks/managed_bookmarks_shim.cc index 84fceb4..2fb6ab6 100644 --- a/chrome/browser/ui/webui/ntp/android/managed_bookmarks_shim.cc +++ b/chrome/browser/android/bookmarks/managed_bookmarks_shim.cc @@ -1,8 +1,8 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/webui/ntp/android/managed_bookmarks_shim.h" +#include "chrome/browser/android/bookmarks/managed_bookmarks_shim.h" #include "base/bind.h" #include "base/bind_helpers.h" diff --git a/chrome/browser/ui/webui/ntp/android/managed_bookmarks_shim.h b/chrome/browser/android/bookmarks/managed_bookmarks_shim.h index affb1ce..94955ee 100644 --- a/chrome/browser/ui/webui/ntp/android/managed_bookmarks_shim.h +++ b/chrome/browser/android/bookmarks/managed_bookmarks_shim.h @@ -1,9 +1,9 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_WEBUI_NTP_ANDROID_MANAGED_BOOKMARKS_SHIM_H_ -#define CHROME_BROWSER_UI_WEBUI_NTP_ANDROID_MANAGED_BOOKMARKS_SHIM_H_ +#ifndef CHROME_BROWSER_ANDROID_BOOKMARKS_MANAGED_BOOKMARKS_SHIM_H_ +#define CHROME_BROWSER_ANDROID_BOOKMARKS_MANAGED_BOOKMARKS_SHIM_H_ #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" @@ -53,4 +53,4 @@ class ManagedBookmarksShim { DISALLOW_COPY_AND_ASSIGN(ManagedBookmarksShim); }; -#endif // CHROME_BROWSER_UI_WEBUI_NTP_ANDROID_MANAGED_BOOKMARKS_SHIM_H_ +#endif // CHROME_BROWSER_ANDROID_BOOKMARKS_MANAGED_BOOKMARKS_SHIM_H_ diff --git a/chrome/browser/android/chrome_jni_registrar.cc b/chrome/browser/android/chrome_jni_registrar.cc index fb2774a..425305f 100644 --- a/chrome/browser/android/chrome_jni_registrar.cc +++ b/chrome/browser/android/chrome_jni_registrar.cc @@ -7,7 +7,7 @@ #include "base/android/jni_android.h" #include "base/android/jni_registrar.h" #include "base/debug/trace_event.h" -#include "chrome/browser/android/bookmarks_bridge.h" +#include "chrome/browser/android/bookmarks/bookmarks_bridge.h" #include "chrome/browser/android/chrome_web_contents_delegate_android.h" #include "chrome/browser/android/chromium_application.h" #include "chrome/browser/android/content_view_util.h" diff --git a/chrome/browser/ui/webui/ntp/android/bookmarks_handler.h b/chrome/browser/ui/webui/ntp/android/bookmarks_handler.h index d7f0278..55214a1 100644 --- a/chrome/browser/ui/webui/ntp/android/bookmarks_handler.h +++ b/chrome/browser/ui/webui/ntp/android/bookmarks_handler.h @@ -7,9 +7,9 @@ #include "base/memory/scoped_ptr.h" #include "base/values.h" +#include "chrome/browser/android/bookmarks/managed_bookmarks_shim.h" #include "chrome/browser/bookmarks/base_bookmark_model_observer.h" #include "chrome/browser/favicon/favicon_service.h" -#include "chrome/browser/ui/webui/ntp/android/managed_bookmarks_shim.h" #include "chrome/browser/ui/webui/ntp/android/partner_bookmarks_shim.h" #include "chrome/common/cancelable_task_tracker.h" #include "content/public/browser/web_ui_message_handler.h" diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 9590b86..4386064 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -92,8 +92,10 @@ 'browser/accessibility/accessibility_events.h', 'browser/accessibility/invert_bubble_prefs.cc', 'browser/accessibility/invert_bubble_prefs.h', - 'browser/android/bookmarks_bridge.cc', - 'browser/android/bookmarks_bridge.h', + 'browser/android/bookmarks/managed_bookmarks_shim.cc', + 'browser/android/bookmarks/managed_bookmarks_shim.h', + 'browser/android/bookmarks/bookmarks_bridge.cc', + 'browser/android/bookmarks/bookmarks_bridge.h', 'browser/android/chrome_jni_registrar.cc', 'browser/android/chrome_jni_registrar.h', 'browser/android/chrome_startup_flags.cc', diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi index db4ee28..15a0d94 100644 --- a/chrome/chrome_browser_ui.gypi +++ b/chrome/chrome_browser_ui.gypi @@ -2939,8 +2939,6 @@ 'browser/ui/webui/ntp/android/bookmarks_handler.h', 'browser/ui/webui/ntp/android/context_menu_handler.cc', 'browser/ui/webui/ntp/android/context_menu_handler.h', - 'browser/ui/webui/ntp/android/managed_bookmarks_shim.cc', - 'browser/ui/webui/ntp/android/managed_bookmarks_shim.h', 'browser/ui/webui/ntp/android/navigation_handler.cc', 'browser/ui/webui/ntp/android/navigation_handler.h', 'browser/ui/webui/ntp/android/new_tab_page_ready_handler.cc', |