| Index: chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc
|
| diff --git a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc
|
| index 64854f673fc46b4e64c02fc6088c66577768312a..39f82e9cf97ebada476bc2c8bc56c4fe8ca5f947 100644
|
| --- a/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc
|
| +++ b/chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc
|
| @@ -23,6 +23,7 @@
|
| #include "chrome/browser/media_galleries/media_file_system_registry.h"
|
| #include "chrome/browser/media_galleries/media_galleries_preferences.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/storage_monitor/storage_monitor.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/render_view_host.h"
|
|
|
| @@ -105,8 +106,7 @@ bool GetMediaGalleryPermissionFromDictionary(
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| MediaGalleriesPrivateAPI::MediaGalleriesPrivateAPI(Profile* profile)
|
| - : profile_(profile),
|
| - tracker_(profile) {
|
| + : profile_(profile) {
|
| DCHECK(profile_);
|
| (new MediaGalleriesHandlerParser)->Register();
|
| ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
|
| @@ -268,24 +268,27 @@ void MediaGalleriesPrivateAPI::OnListenerAdded(
|
| // Try to initialize the event router for the listener. If
|
| // MediaGalleriesPrivateAPI::GetEventRouter() was called before adding
|
| // the listener, router would be initialized.
|
| - MaybeInitializeEventRouter();
|
| + MaybeInitializeEventRouterAndTracker();
|
| }
|
|
|
| MediaGalleriesPrivateEventRouter* MediaGalleriesPrivateAPI::GetEventRouter() {
|
| - MaybeInitializeEventRouter();
|
| + MaybeInitializeEventRouterAndTracker();
|
| return media_galleries_private_event_router_.get();
|
| }
|
|
|
| GalleryWatchStateTracker*
|
| MediaGalleriesPrivateAPI::GetGalleryWatchStateTracker() {
|
| - return &tracker_;
|
| + MaybeInitializeEventRouterAndTracker();
|
| + return tracker_.get();
|
| }
|
|
|
| -void MediaGalleriesPrivateAPI::MaybeInitializeEventRouter() {
|
| +void MediaGalleriesPrivateAPI::MaybeInitializeEventRouterAndTracker() {
|
| if (media_galleries_private_event_router_.get())
|
| return;
|
| media_galleries_private_event_router_.reset(
|
| new MediaGalleriesPrivateEventRouter(profile_));
|
| + tracker_.reset(
|
| + new GalleryWatchStateTracker(profile_));
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
| @@ -304,6 +307,7 @@ bool MediaGalleriesPrivateAddGalleryWatchFunction::RunImpl() {
|
| scoped_ptr<AddGalleryWatch::Params> params(
|
| AddGalleryWatch::Params::Create(*args_));
|
| EXTENSION_FUNCTION_VALIDATE(params.get());
|
| +
|
| base::FilePath gallery_file_path;
|
| chrome::MediaGalleryPrefId gallery_pref_id = 0;
|
| if (!GetGalleryFilePathAndId(params->gallery_id, profile_, GetExtension(),
|
| @@ -438,9 +442,14 @@ bool MediaGalleriesPrivateRemoveAllGalleryWatchFunction::RunImpl() {
|
| if (!render_view_host() || !render_view_host()->GetProcess())
|
| return false;
|
|
|
| + chrome::MediaFileSystemRegistry* registry =
|
| + g_browser_process->media_file_system_registry();
|
| + chrome::MediaGalleriesPreferences* preferences =
|
| + registry->GetPreferences(profile_);
|
| GalleryWatchStateTracker* state_tracker =
|
| MediaGalleriesPrivateAPI::Get(profile_)->GetGalleryWatchStateTracker();
|
| - state_tracker->RemoveAllGalleryWatchersForExtension(extension_id());
|
| + state_tracker->RemoveAllGalleryWatchersForExtension(
|
| + extension_id(), preferences);
|
| #endif
|
| return true;
|
| }
|
|
|