| Index: chrome/browser/android/bookmarks/partner_bookmarks_shim.cc
|
| diff --git a/chrome/browser/android/bookmarks/partner_bookmarks_shim.cc b/chrome/browser/android/bookmarks/partner_bookmarks_shim.cc
|
| index 208027adce08516b464e3832e76049eaddff79a0..78f8072861ed7e6545aba3cb512f996885070c4a 100644
|
| --- a/chrome/browser/android/bookmarks/partner_bookmarks_shim.cc
|
| +++ b/chrome/browser/android/bookmarks/partner_bookmarks_shim.cc
|
| @@ -42,6 +42,8 @@ static const char kMappingUrl[] = "url";
|
| static const char kMappingProviderTitle[] = "provider_title";
|
| static const char kMappingTitle[] = "mapped_title";
|
|
|
| +static bool g_disable_partner_bookmarks_editing = false;
|
| +
|
| } // namespace
|
|
|
| // static
|
| @@ -70,6 +72,11 @@ void PartnerBookmarksShim::RegisterProfilePrefs(
|
| user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| }
|
|
|
| +// static
|
| +void PartnerBookmarksShim::DisablePartnerBookmarksEditing() {
|
| + g_disable_partner_bookmarks_editing = true;
|
| +}
|
| +
|
| bool PartnerBookmarksShim::IsLoaded() const {
|
| return g_partner_model_keeper.Get().loaded;
|
| }
|
| @@ -83,21 +90,34 @@ bool PartnerBookmarksShim::IsReachable(const BookmarkNode* node) const {
|
| DCHECK(IsPartnerBookmark(node));
|
| if (!HasPartnerBookmarks())
|
| return false;
|
| - for (const BookmarkNode* i = node; i != NULL; i = i->parent()) {
|
| - const NodeRenamingMapKey key(i->url(), i->GetTitle());
|
| - NodeRenamingMap::const_iterator remap = node_rename_remove_map_.find(key);
|
| - if (remap != node_rename_remove_map_.end() && remap->second.empty())
|
| - return false;
|
| + if (!g_disable_partner_bookmarks_editing) {
|
| + for (const BookmarkNode* i = node; i != NULL; i = i->parent()) {
|
| + const NodeRenamingMapKey key(i->url(), i->GetTitle());
|
| + NodeRenamingMap::const_iterator remap = node_rename_remove_map_.find(key);
|
| + if (remap != node_rename_remove_map_.end() && remap->second.empty())
|
| + return false;
|
| + }
|
| }
|
| return true;
|
| }
|
|
|
| +bool PartnerBookmarksShim::IsEditable(const BookmarkNode* node) const {
|
| + DCHECK(IsPartnerBookmark(node));
|
| + if (!HasPartnerBookmarks())
|
| + return false;
|
| + if (g_disable_partner_bookmarks_editing)
|
| + return false;
|
| + return true;
|
| +}
|
| +
|
| void PartnerBookmarksShim::RemoveBookmark(const BookmarkNode* node) {
|
| + DCHECK(IsEditable(node));
|
| RenameBookmark(node, base::string16());
|
| }
|
|
|
| void PartnerBookmarksShim::RenameBookmark(const BookmarkNode* node,
|
| const base::string16& title) {
|
| + DCHECK(IsEditable(node));
|
| const NodeRenamingMapKey key(node->url(), node->GetTitle());
|
| node_rename_remove_map_[key] = title;
|
| SaveNodeMapping();
|
| @@ -126,10 +146,12 @@ base::string16 PartnerBookmarksShim::GetTitle(const BookmarkNode* node) const {
|
| DCHECK(node);
|
| DCHECK(IsPartnerBookmark(node));
|
|
|
| - const NodeRenamingMapKey key(node->url(), node->GetTitle());
|
| - NodeRenamingMap::const_iterator i = node_rename_remove_map_.find(key);
|
| - if (i != node_rename_remove_map_.end())
|
| - return i->second;
|
| + if (!g_disable_partner_bookmarks_editing) {
|
| + const NodeRenamingMapKey key(node->url(), node->GetTitle());
|
| + NodeRenamingMap::const_iterator i = node_rename_remove_map_.find(key);
|
| + if (i != node_rename_remove_map_.end())
|
| + return i->second;
|
| + }
|
|
|
| return node->GetTitle();
|
| }
|
| @@ -184,6 +206,11 @@ void PartnerBookmarksShim::ClearPartnerModelForTesting() {
|
| g_partner_model_keeper.Get().partner_bookmarks_root.reset(0);
|
| }
|
|
|
| +// static
|
| +void PartnerBookmarksShim::EnablePartnerBookmarksEditing() {
|
| + g_disable_partner_bookmarks_editing = false;
|
| +}
|
| +
|
| PartnerBookmarksShim::PartnerBookmarksShim(PrefService* prefs)
|
| : prefs_(prefs),
|
| observers_(
|
|
|