Chromium Code Reviews| 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..c3ca0dff414e92b52c2b77a342f9abed2cb4d79c 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( |
| @@ -278,7 +278,8 @@ MediaGalleriesPrivateEventRouter* MediaGalleriesPrivateAPI::GetEventRouter() { |
| GalleryWatchStateTracker* |
| MediaGalleriesPrivateAPI::GetGalleryWatchStateTracker() { |
| - return &tracker_; |
| + MaybeInitializeEventRouter(); |
| + return tracker_.get(); |
| } |
| void MediaGalleriesPrivateAPI::MaybeInitializeEventRouter() { |
|
Finnur
2013/05/24 09:27:41
nit: Why not rename this function to include Track
Greg Billock
2013/05/29 16:33:48
Done.
|
| @@ -286,6 +287,8 @@ void MediaGalleriesPrivateAPI::MaybeInitializeEventRouter() { |
| 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; |
| } |