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; |
} |