| 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 6743edad21a70b212122b41a60ae9532e52f52fb..e1fbce3b7c31c69e362af3c934d7368758772fac 100644
|
| --- a/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
|
| +++ b/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
|
| @@ -98,14 +98,7 @@ bool BookmarksFunction::RunAsync() {
|
| return true;
|
| }
|
|
|
| - bool success = RunOnReady();
|
| - if (success) {
|
| - content::NotificationService::current()->Notify(
|
| - extensions::NOTIFICATION_EXTENSION_BOOKMARKS_API_INVOKED,
|
| - content::Source<const Extension>(extension()),
|
| - content::Details<const BookmarksFunction>(this));
|
| - }
|
| - SendResponse(success);
|
| + RunAndSendResponse();
|
| return true;
|
| }
|
|
|
| @@ -229,10 +222,21 @@ void BookmarksFunction::BookmarkModelChanged() {
|
| void BookmarksFunction::BookmarkModelLoaded(BookmarkModel* model,
|
| bool ids_reassigned) {
|
| model->RemoveObserver(this);
|
| - RunOnReady();
|
| + RunAndSendResponse();
|
| Release(); // Balanced in RunOnReady().
|
| }
|
|
|
| +void BookmarksFunction::RunAndSendResponse() {
|
| + bool success = RunOnReady();
|
| + if (success) {
|
| + content::NotificationService::current()->Notify(
|
| + extensions::NOTIFICATION_EXTENSION_BOOKMARKS_API_INVOKED,
|
| + content::Source<const Extension>(extension()),
|
| + content::Details<const BookmarksFunction>(this));
|
| + }
|
| + SendResponse(success);
|
| +}
|
| +
|
| BookmarkEventRouter::BookmarkEventRouter(Profile* profile)
|
| : browser_context_(profile),
|
| model_(BookmarkModelFactory::GetForProfile(profile)),
|
|
|