Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Side by Side Diff: chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc

Issue 1203713002: Limit access to ChromeBookmarkClient to bookmarks code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cleanup_bookmark_client
Patch Set: Rebase Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manage r_private_api.h" 5 #include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manage r_private_api.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/memory/linked_ptr.h" 10 #include "base/memory/linked_ptr.h"
11 #include "base/prefs/pref_service.h" 11 #include "base/prefs/pref_service.h"
12 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
13 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
14 #include "base/values.h" 14 #include "base/values.h"
15 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 15 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
16 #include "chrome/browser/bookmarks/bookmark_stats.h" 16 #include "chrome/browser/bookmarks/bookmark_stats.h"
17 #include "chrome/browser/bookmarks/chrome_bookmark_client.h"
18 #include "chrome/browser/browser_process.h" 17 #include "chrome/browser/browser_process.h"
19 #include "chrome/browser/enhanced_bookmarks/enhanced_bookmark_model_factory.h" 18 #include "chrome/browser/enhanced_bookmarks/enhanced_bookmark_model_factory.h"
20 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h" 19 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h"
21 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h" 20 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h"
22 #include "chrome/browser/extensions/extension_web_ui.h" 21 #include "chrome/browser/extensions/extension_web_ui.h"
23 #include "chrome/browser/profiles/profile.h" 22 #include "chrome/browser/profiles/profile.h"
24 #include "chrome/browser/ui/bookmarks/bookmark_drag_drop.h" 23 #include "chrome/browser/ui/bookmarks/bookmark_drag_drop.h"
25 #include "chrome/browser/undo/bookmark_undo_service_factory.h" 24 #include "chrome/browser/undo/bookmark_undo_service_factory.h"
26 #include "chrome/common/extensions/api/bookmark_manager_private.h" 25 #include "chrome/common/extensions/api/bookmark_manager_private.h"
27 #include "chrome/common/pref_names.h" 26 #include "chrome/common/pref_names.h"
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 return NULL; 350 return NULL;
352 } 351 }
353 352
354 void BookmarkManagerPrivateDragEventRouter::ClearBookmarkNodeData() { 353 void BookmarkManagerPrivateDragEventRouter::ClearBookmarkNodeData() {
355 bookmark_drag_data_.Clear(); 354 bookmark_drag_data_.Clear();
356 } 355 }
357 356
358 bool ClipboardBookmarkManagerFunction::CopyOrCut(bool cut, 357 bool ClipboardBookmarkManagerFunction::CopyOrCut(bool cut,
359 const std::vector<std::string>& id_list) { 358 const std::vector<std::string>& id_list) {
360 BookmarkModel* model = GetBookmarkModel(); 359 BookmarkModel* model = GetBookmarkModel();
361 ChromeBookmarkClient* client = GetChromeBookmarkClient();
362 std::vector<const BookmarkNode*> nodes; 360 std::vector<const BookmarkNode*> nodes;
363 EXTENSION_FUNCTION_VALIDATE(GetNodesFromVector(model, id_list, &nodes)); 361 EXTENSION_FUNCTION_VALIDATE(GetNodesFromVector(model, id_list, &nodes));
364 if (cut && bookmarks::HasDescendantsOf(nodes, client->managed_node())) { 362 if (cut && bookmarks::HasDescendantsOf(nodes, model->managed_node())) {
365 error_ = bookmark_keys::kModifyManagedError; 363 error_ = bookmark_keys::kModifyManagedError;
366 return false; 364 return false;
367 } 365 }
368 bookmarks::CopyToClipboard(model, nodes, cut); 366 bookmarks::CopyToClipboard(model, nodes, cut);
369 return true; 367 return true;
370 } 368 }
371 369
372 bool BookmarkManagerPrivateCopyFunction::RunOnReady() { 370 bool BookmarkManagerPrivateCopyFunction::RunOnReady() {
373 scoped_ptr<Copy::Params> params(Copy::Params::Create(*args_)); 371 scoped_ptr<Copy::Params> params(Copy::Params::Create(*args_));
374 EXTENSION_FUNCTION_VALIDATE(params); 372 EXTENSION_FUNCTION_VALIDATE(params);
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 606
609 router->ClearBookmarkNodeData(); 607 router->ClearBookmarkNodeData();
610 return true; 608 return true;
611 } 609 }
612 610
613 bool BookmarkManagerPrivateGetSubtreeFunction::RunOnReady() { 611 bool BookmarkManagerPrivateGetSubtreeFunction::RunOnReady() {
614 scoped_ptr<GetSubtree::Params> params(GetSubtree::Params::Create(*args_)); 612 scoped_ptr<GetSubtree::Params> params(GetSubtree::Params::Create(*args_));
615 EXTENSION_FUNCTION_VALIDATE(params); 613 EXTENSION_FUNCTION_VALIDATE(params);
616 614
617 const BookmarkNode* node = NULL; 615 const BookmarkNode* node = NULL;
618 616 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile());
619 if (params->id.empty()) { 617 if (params->id.empty()) {
620 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile());
621 node = model->root_node(); 618 node = model->root_node();
622 } else { 619 } else {
623 node = GetBookmarkNodeFromId(params->id); 620 node = GetBookmarkNodeFromId(params->id);
624 if (!node) 621 if (!node)
625 return false; 622 return false;
626 } 623 }
627 624
628 std::vector<linked_ptr<api::bookmarks::BookmarkTreeNode> > nodes; 625 std::vector<linked_ptr<api::bookmarks::BookmarkTreeNode> > nodes;
629 ChromeBookmarkClient* client = GetChromeBookmarkClient();
630 if (params->folders_only) 626 if (params->folders_only)
631 bookmark_api_helpers::AddNodeFoldersOnly(client, node, &nodes, true); 627 bookmark_api_helpers::AddNodeFoldersOnly(model, node, &nodes, true);
632 else 628 else
633 bookmark_api_helpers::AddNode(client, node, &nodes, true); 629 bookmark_api_helpers::AddNode(model, node, &nodes, true);
634 results_ = GetSubtree::Results::Create(nodes); 630 results_ = GetSubtree::Results::Create(nodes);
635 return true; 631 return true;
636 } 632 }
637 633
638 bool BookmarkManagerPrivateCanEditFunction::RunOnReady() { 634 bool BookmarkManagerPrivateCanEditFunction::RunOnReady() {
639 PrefService* prefs = user_prefs::UserPrefs::Get(GetProfile()); 635 PrefService* prefs = user_prefs::UserPrefs::Get(GetProfile());
640 SetResult(new base::FundamentalValue( 636 SetResult(new base::FundamentalValue(
641 prefs->GetBoolean(bookmarks::prefs::kEditBookmarksEnabled))); 637 prefs->GetBoolean(bookmarks::prefs::kEditBookmarksEnabled)));
642 return true; 638 return true;
643 } 639 }
(...skipping 11 matching lines...) Expand all
655 CreateWithMetaInfo::Params::Create(*args_)); 651 CreateWithMetaInfo::Params::Create(*args_));
656 EXTENSION_FUNCTION_VALIDATE(params); 652 EXTENSION_FUNCTION_VALIDATE(params);
657 653
658 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile()); 654 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile());
659 const BookmarkNode* node = CreateBookmarkNode( 655 const BookmarkNode* node = CreateBookmarkNode(
660 model, params->bookmark, &params->meta_info.additional_properties); 656 model, params->bookmark, &params->meta_info.additional_properties);
661 if (!node) 657 if (!node)
662 return false; 658 return false;
663 659
664 scoped_ptr<api::bookmarks::BookmarkTreeNode> result_node( 660 scoped_ptr<api::bookmarks::BookmarkTreeNode> result_node(
665 bookmark_api_helpers::GetBookmarkTreeNode( 661 bookmark_api_helpers::GetBookmarkTreeNode(model, node, false, false));
666 GetChromeBookmarkClient(), node, false, false));
667 results_ = CreateWithMetaInfo::Results::Create(*result_node); 662 results_ = CreateWithMetaInfo::Results::Create(*result_node);
668 663
669 return true; 664 return true;
670 } 665 }
671 666
672 bool BookmarkManagerPrivateGetMetaInfoFunction::RunOnReady() { 667 bool BookmarkManagerPrivateGetMetaInfoFunction::RunOnReady() {
673 scoped_ptr<GetMetaInfo::Params> params(GetMetaInfo::Params::Create(*args_)); 668 scoped_ptr<GetMetaInfo::Params> params(GetMetaInfo::Params::Create(*args_));
674 EXTENSION_FUNCTION_VALIDATE(params); 669 EXTENSION_FUNCTION_VALIDATE(params);
675 670
676 if (params->id) { 671 if (params->id) {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 } 778 }
784 779
785 bool BookmarkManagerPrivateRemoveTreesFunction::RunOnReady() { 780 bool BookmarkManagerPrivateRemoveTreesFunction::RunOnReady() {
786 if (!EditBookmarksEnabled()) 781 if (!EditBookmarksEnabled())
787 return false; 782 return false;
788 783
789 scoped_ptr<RemoveTrees::Params> params(RemoveTrees::Params::Create(*args_)); 784 scoped_ptr<RemoveTrees::Params> params(RemoveTrees::Params::Create(*args_));
790 EXTENSION_FUNCTION_VALIDATE(params); 785 EXTENSION_FUNCTION_VALIDATE(params);
791 786
792 BookmarkModel* model = GetBookmarkModel(); 787 BookmarkModel* model = GetBookmarkModel();
793 ChromeBookmarkClient* client = GetChromeBookmarkClient();
794 bookmarks::ScopedGroupBookmarkActions group_deletes(model); 788 bookmarks::ScopedGroupBookmarkActions group_deletes(model);
795 int64 id; 789 int64 id;
796 for (size_t i = 0; i < params->id_list.size(); ++i) { 790 for (size_t i = 0; i < params->id_list.size(); ++i) {
797 if (!GetBookmarkIdAsInt64(params->id_list[i], &id)) 791 if (!GetBookmarkIdAsInt64(params->id_list[i], &id))
798 return false; 792 return false;
799 if (!bookmark_api_helpers::RemoveNode(model, client, id, true, &error_)) 793 if (!bookmark_api_helpers::RemoveNode(model, id, true, &error_))
800 return false; 794 return false;
801 } 795 }
802 796
803 return true; 797 return true;
804 } 798 }
805 799
806 bool BookmarkManagerPrivateUndoFunction::RunOnReady() { 800 bool BookmarkManagerPrivateUndoFunction::RunOnReady() {
807 if (!EditBookmarksEnabled()) 801 if (!EditBookmarksEnabled())
808 return false; 802 return false;
809 803
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 844
851 enhanced_bookmarks::EnhancedBookmarkModel* model = 845 enhanced_bookmarks::EnhancedBookmarkModel* model =
852 enhanced_bookmarks::EnhancedBookmarkModelFactory::GetForBrowserContext( 846 enhanced_bookmarks::EnhancedBookmarkModelFactory::GetForBrowserContext(
853 browser_context()); 847 browser_context());
854 model->SetVersionSuffix(params->version); 848 model->SetVersionSuffix(params->version);
855 849
856 return true; 850 return true;
857 } 851 }
858 852
859 } // namespace extensions 853 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698