| Index: chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
|
| diff --git a/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc b/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
|
| index 3b7b29c5351e32649d1a55979094ec049baa112c..c09877b608cc353bcd091aa37d996d28686e59c3 100644
|
| --- a/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
|
| +++ b/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
|
| @@ -237,9 +237,11 @@ void BookmarksFunction::BookmarkModelLoaded(BookmarkModel* model,
|
| Release(); // Balanced in RunOnReady().
|
| }
|
|
|
| -BookmarkEventRouter::BookmarkEventRouter(BrowserContext* context,
|
| - BookmarkModel* model)
|
| - : browser_context_(context), model_(model) {
|
| +BookmarkEventRouter::BookmarkEventRouter(Profile* profile)
|
| + : browser_context_(profile),
|
| + model_(BookmarkModelFactory::GetForProfile(profile)),
|
| + client_(
|
| + BookmarkModelFactory::GetChromeBookmarkClientForProfile(profile)) {
|
| model_->AddObserver(this);
|
| }
|
|
|
| @@ -291,7 +293,7 @@ void BookmarkEventRouter::BookmarkNodeAdded(BookmarkModel* model,
|
| int index) {
|
| const BookmarkNode* node = parent->GetChild(index);
|
| scoped_ptr<BookmarkTreeNode> tree_node(
|
| - bookmark_api_helpers::GetBookmarkTreeNode(node, false, false));
|
| + bookmark_api_helpers::GetBookmarkTreeNode(client_, node, false, false));
|
| DispatchEvent(bookmarks::OnCreated::kEventName,
|
| bookmarks::OnCreated::Create(base::Int64ToString(node->id()),
|
| *tree_node));
|
| @@ -399,10 +401,8 @@ BookmarksAPI::GetFactoryInstance() {
|
| }
|
|
|
| void BookmarksAPI::OnListenerAdded(const EventListenerInfo& details) {
|
| - bookmark_event_router_.reset(new BookmarkEventRouter(
|
| - browser_context_,
|
| - BookmarkModelFactory::GetForProfile(
|
| - Profile::FromBrowserContext(browser_context_))));
|
| + bookmark_event_router_.reset(
|
| + new BookmarkEventRouter(Profile::FromBrowserContext(browser_context_)));
|
| EventRouter::Get(browser_context_)->UnregisterObserver(this);
|
| }
|
|
|
| @@ -412,6 +412,7 @@ bool BookmarksGetFunction::RunOnReady() {
|
| EXTENSION_FUNCTION_VALIDATE(params.get());
|
|
|
| std::vector<linked_ptr<BookmarkTreeNode> > nodes;
|
| + ChromeBookmarkClient* client = GetChromeBookmarkClient();
|
| if (params->id_or_id_list.as_strings) {
|
| std::vector<std::string>& ids = *params->id_or_id_list.as_strings;
|
| size_t count = ids.size();
|
| @@ -420,14 +421,14 @@ bool BookmarksGetFunction::RunOnReady() {
|
| const BookmarkNode* node = GetBookmarkNodeFromId(ids[i]);
|
| if (!node)
|
| return false;
|
| - bookmark_api_helpers::AddNode(node, &nodes, false);
|
| + bookmark_api_helpers::AddNode(client, node, &nodes, false);
|
| }
|
| } else {
|
| const BookmarkNode* node =
|
| GetBookmarkNodeFromId(*params->id_or_id_list.as_string);
|
| if (!node)
|
| return false;
|
| - bookmark_api_helpers::AddNode(node, &nodes, false);
|
| + bookmark_api_helpers::AddNode(client, node, &nodes, false);
|
| }
|
|
|
| results_ = bookmarks::Get::Results::Create(nodes);
|
| @@ -447,7 +448,8 @@ bool BookmarksGetChildrenFunction::RunOnReady() {
|
| int child_count = node->child_count();
|
| for (int i = 0; i < child_count; ++i) {
|
| const BookmarkNode* child = node->GetChild(i);
|
| - bookmark_api_helpers::AddNode(child, &nodes, false);
|
| + bookmark_api_helpers::AddNode(
|
| + GetChromeBookmarkClient(), child, &nodes, false);
|
| }
|
|
|
| results_ = bookmarks::GetChildren::Results::Create(nodes);
|
| @@ -471,7 +473,8 @@ bool BookmarksGetRecentFunction::RunOnReady() {
|
| std::vector<const BookmarkNode*>::iterator i = nodes.begin();
|
| for (; i != nodes.end(); ++i) {
|
| const BookmarkNode* node = *i;
|
| - bookmark_api_helpers::AddNode(node, &tree_nodes, false);
|
| + bookmark_api_helpers::AddNode(
|
| + GetChromeBookmarkClient(), node, &tree_nodes, false);
|
| }
|
|
|
| results_ = bookmarks::GetRecent::Results::Create(tree_nodes);
|
| @@ -482,7 +485,7 @@ bool BookmarksGetTreeFunction::RunOnReady() {
|
| std::vector<linked_ptr<BookmarkTreeNode> > nodes;
|
| const BookmarkNode* node =
|
| BookmarkModelFactory::GetForProfile(GetProfile())->root_node();
|
| - bookmark_api_helpers::AddNode(node, &nodes, true);
|
| + bookmark_api_helpers::AddNode(GetChromeBookmarkClient(), node, &nodes, true);
|
| results_ = bookmarks::GetTree::Results::Create(nodes);
|
| return true;
|
| }
|
| @@ -497,7 +500,7 @@ bool BookmarksGetSubTreeFunction::RunOnReady() {
|
| return false;
|
|
|
| std::vector<linked_ptr<BookmarkTreeNode> > nodes;
|
| - bookmark_api_helpers::AddNode(node, &nodes, true);
|
| + bookmark_api_helpers::AddNode(GetChromeBookmarkClient(), node, &nodes, true);
|
| results_ = bookmarks::GetSubTree::Results::Create(nodes);
|
| return true;
|
| }
|
| @@ -542,9 +545,10 @@ bool BookmarksSearchFunction::RunOnReady() {
|
| }
|
|
|
| std::vector<linked_ptr<BookmarkTreeNode> > tree_nodes;
|
| + ChromeBookmarkClient* client = GetChromeBookmarkClient();
|
| for (std::vector<const BookmarkNode*>::iterator node_iter = nodes.begin();
|
| node_iter != nodes.end(); ++node_iter) {
|
| - bookmark_api_helpers::AddNode(*node_iter, &tree_nodes, false);
|
| + bookmark_api_helpers::AddNode(client, *node_iter, &tree_nodes, false);
|
| }
|
|
|
| results_ = bookmarks::Search::Results::Create(tree_nodes);
|
| @@ -602,8 +606,8 @@ bool BookmarksCreateFunction::RunOnReady() {
|
| if (!node)
|
| return false;
|
|
|
| - scoped_ptr<BookmarkTreeNode> ret(
|
| - bookmark_api_helpers::GetBookmarkTreeNode(node, false, false));
|
| + scoped_ptr<BookmarkTreeNode> ret(bookmark_api_helpers::GetBookmarkTreeNode(
|
| + GetChromeBookmarkClient(), node, false, false));
|
| results_ = bookmarks::Create::Results::Create(*ret);
|
|
|
| return true;
|
| @@ -663,7 +667,8 @@ bool BookmarksMoveFunction::RunOnReady() {
|
| model->Move(node, parent, index);
|
|
|
| scoped_ptr<BookmarkTreeNode> tree_node(
|
| - bookmark_api_helpers::GetBookmarkTreeNode(node, false, false));
|
| + bookmark_api_helpers::GetBookmarkTreeNode(
|
| + GetChromeBookmarkClient(), node, false, false));
|
| results_ = bookmarks::Move::Results::Create(*tree_node);
|
|
|
| return true;
|
| @@ -718,7 +723,8 @@ bool BookmarksUpdateFunction::RunOnReady() {
|
| model->SetURL(node, url);
|
|
|
| scoped_ptr<BookmarkTreeNode> tree_node(
|
| - bookmark_api_helpers::GetBookmarkTreeNode(node, false, false));
|
| + bookmark_api_helpers::GetBookmarkTreeNode(
|
| + GetChromeBookmarkClient(), node, false, false));
|
| results_ = bookmarks::Update::Results::Create(*tree_node);
|
| return true;
|
| }
|
|
|