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 7f89fab6c677f0ec37977aafd7e84f9791728da5..c0f80d4c8c2a4d1d701d420af714269c4eb2a4b6 100644 |
--- a/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc |
+++ b/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc |
@@ -39,6 +39,7 @@ |
#include "chrome/common/importer/importer_data_types.h" |
#include "chrome/common/pref_names.h" |
#include "components/user_prefs/user_prefs.h" |
+#include "content/public/browser/browser_context.h" |
#include "content/public/browser/notification_service.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/browser/web_contents_view.h" |
@@ -59,6 +60,7 @@ namespace bookmarks = api::bookmarks; |
using base::TimeDelta; |
using bookmarks::BookmarkTreeNode; |
+using content::BrowserContext; |
using content::BrowserThread; |
using content::WebContents; |
@@ -156,9 +158,9 @@ void BookmarksFunction::BookmarkModelLoaded(BookmarkModel* model, |
Release(); // Balanced in Run(). |
} |
-BookmarkEventRouter::BookmarkEventRouter(Profile* profile, BookmarkModel* model) |
- : profile_(profile), |
- model_(model) { |
+BookmarkEventRouter::BookmarkEventRouter(BrowserContext* context, |
+ BookmarkModel* model) |
+ : browser_context_(context), model_(model) { |
model_->AddObserver(this); |
} |
@@ -171,9 +173,11 @@ BookmarkEventRouter::~BookmarkEventRouter() { |
void BookmarkEventRouter::DispatchEvent( |
const std::string& event_name, |
scoped_ptr<base::ListValue> event_args) { |
- if (extensions::ExtensionSystem::Get(profile_)->event_router()) { |
- extensions::ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent( |
- make_scoped_ptr(new extensions::Event(event_name, event_args.Pass()))); |
+ if (extensions::ExtensionSystem::Get(browser_context_)->event_router()) { |
+ extensions::ExtensionSystem::Get(browser_context_) |
+ ->event_router() |
+ ->BroadcastEvent(make_scoped_ptr( |
+ new extensions::Event(event_name, event_args.Pass()))); |
} |
} |
@@ -297,28 +301,26 @@ void BookmarkEventRouter::ExtensiveBookmarkChangesEnded(BookmarkModel* model) { |
DispatchEvent(bookmarks::OnImportEnded::kEventName, args.Pass()); |
} |
-BookmarksAPI::BookmarksAPI(Profile* profile) : profile_(profile) { |
- ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( |
- this, bookmarks::OnCreated::kEventName); |
- ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( |
- this, bookmarks::OnRemoved::kEventName); |
- ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( |
- this, bookmarks::OnChanged::kEventName); |
- ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( |
- this, bookmarks::OnMoved::kEventName); |
- ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( |
- this, bookmarks::OnChildrenReordered::kEventName); |
- ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( |
- this, bookmarks::OnImportBegan::kEventName); |
- ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( |
- this, bookmarks::OnImportEnded::kEventName); |
+BookmarksAPI::BookmarksAPI(BrowserContext* context) |
+ : browser_context_(context) { |
+ EventRouter* event_router = |
+ ExtensionSystem::Get(browser_context_)->event_router(); |
+ event_router->RegisterObserver(this, bookmarks::OnCreated::kEventName); |
+ event_router->RegisterObserver(this, bookmarks::OnRemoved::kEventName); |
+ event_router->RegisterObserver(this, bookmarks::OnChanged::kEventName); |
+ event_router->RegisterObserver(this, bookmarks::OnMoved::kEventName); |
+ event_router->RegisterObserver(this, |
+ bookmarks::OnChildrenReordered::kEventName); |
+ event_router->RegisterObserver(this, bookmarks::OnImportBegan::kEventName); |
+ event_router->RegisterObserver(this, bookmarks::OnImportEnded::kEventName); |
} |
BookmarksAPI::~BookmarksAPI() { |
} |
void BookmarksAPI::Shutdown() { |
- ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); |
+ ExtensionSystem::Get(browser_context_)->event_router()->UnregisterObserver( |
+ this); |
} |
static base::LazyInstance<ProfileKeyedAPIFactory<BookmarksAPI> > |
@@ -330,9 +332,12 @@ ProfileKeyedAPIFactory<BookmarksAPI>* BookmarksAPI::GetFactoryInstance() { |
} |
void BookmarksAPI::OnListenerAdded(const EventListenerInfo& details) { |
- bookmark_event_router_.reset(new BookmarkEventRouter(profile_, |
- BookmarkModelFactory::GetForProfile(profile_))); |
- ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); |
+ bookmark_event_router_.reset(new BookmarkEventRouter( |
+ browser_context_, |
+ BookmarkModelFactory::GetForProfile( |
+ Profile::FromBrowserContext(browser_context_)))); |
+ ExtensionSystem::Get(browser_context_)->event_router()->UnregisterObserver( |
+ this); |
} |
bool BookmarksGetFunction::RunImpl() { |
@@ -732,7 +737,8 @@ class BookmarkBucketMapper : public BucketMapper { |
// unique bucket. |
class CreateBookmarkBucketMapper : public BookmarkBucketMapper<std::string> { |
public: |
- explicit CreateBookmarkBucketMapper(Profile* profile) : profile_(profile) {} |
+ explicit CreateBookmarkBucketMapper(BrowserContext* context) |
+ : browser_context_(context) {} |
// TODO(tim): This should share code with BookmarksCreateFunction::RunImpl, |
// but I can't figure out a good way to do that with all the macros. |
virtual void GetBucketsForArgs(const base::ListValue* args, |
@@ -746,7 +752,8 @@ class CreateBookmarkBucketMapper : public BookmarkBucketMapper<std::string> { |
if (!json->GetString(keys::kParentIdKey, &parent_id)) |
return; |
} |
- BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile_); |
+ BookmarkModel* model = BookmarkModelFactory::GetForProfile( |
+ Profile::FromBrowserContext(browser_context_)); |
int64 parent_id_int64; |
base::StringToInt64(parent_id, &parent_id_int64); |
@@ -767,13 +774,14 @@ class CreateBookmarkBucketMapper : public BookmarkBucketMapper<std::string> { |
buckets->push_back(GetBucket(base::SHA1HashString(bucket_id))); |
} |
private: |
- Profile* profile_; |
+ BrowserContext* browser_context_; |
}; |
// Mapper for 'bookmarks.remove'. |
class RemoveBookmarksBucketMapper : public BookmarkBucketMapper<std::string> { |
public: |
- explicit RemoveBookmarksBucketMapper(Profile* profile) : profile_(profile) {} |
+ explicit RemoveBookmarksBucketMapper(BrowserContext* context) |
+ : browser_context_(context) {} |
virtual void GetBucketsForArgs(const base::ListValue* args, |
BucketList* buckets) OVERRIDE { |
typedef std::list<int64> IdList; |
@@ -785,7 +793,8 @@ class RemoveBookmarksBucketMapper : public BookmarkBucketMapper<std::string> { |
} |
for (IdList::iterator it = ids.begin(); it != ids.end(); ++it) { |
- BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile_); |
+ BookmarkModel* model = BookmarkModelFactory::GetForProfile( |
+ Profile::FromBrowserContext(browser_context_)); |
const BookmarkNode* node = model->GetNodeByID(*it); |
if (!node || node->is_root()) |
return; |
@@ -798,7 +807,7 @@ class RemoveBookmarksBucketMapper : public BookmarkBucketMapper<std::string> { |
} |
} |
private: |
- Profile* profile_; |
+ BrowserContext* browser_context_; |
}; |
// Mapper for any bookmark function accepting bookmark IDs as parameters, where |
@@ -832,16 +841,18 @@ class BookmarksQuotaLimitFactory { |
// For bookmarks.create. |
static void BuildForCreate(QuotaLimitHeuristics* heuristics, |
- Profile* profile) { |
- BuildWithMappers(heuristics, new CreateBookmarkBucketMapper(profile), |
- new CreateBookmarkBucketMapper(profile)); |
+ BrowserContext* context) { |
+ BuildWithMappers(heuristics, |
+ new CreateBookmarkBucketMapper(context), |
+ new CreateBookmarkBucketMapper(context)); |
} |
// For bookmarks.remove. |
static void BuildForRemove(QuotaLimitHeuristics* heuristics, |
- Profile* profile) { |
- BuildWithMappers(heuristics, new RemoveBookmarksBucketMapper(profile), |
- new RemoveBookmarksBucketMapper(profile)); |
+ BrowserContext* context) { |
+ BuildWithMappers(heuristics, |
+ new RemoveBookmarksBucketMapper(context), |
+ new RemoveBookmarksBucketMapper(context)); |
} |
private: |