| Index: chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
|
| diff --git a/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc b/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
|
| index 228d6ee91fcd89e985d738d5c1913e0240fee272..1daa0eaf63c224c3a637501e78b07352b1603719 100644
|
| --- a/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
|
| +++ b/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
|
| @@ -66,22 +66,26 @@ const char kIsMediaDeviceKey[] = "isMediaDevice";
|
| const char kIsRemovableKey[] = "isRemovable";
|
| const char kNameKey[] = "name";
|
|
|
| +MediaFileSystemRegistry* media_file_system_registry() {
|
| + return g_browser_process->media_file_system_registry();
|
| +}
|
| +
|
| // Checks whether the MediaGalleries API is currently accessible (it may be
|
| -// disallowed even if an extension has the requisite permission).
|
| -bool ApiIsAccessible(std::string* error) {
|
| +// disallowed even if an extension has the requisite permission). Then
|
| +// initializes the MediaGalleriesPreferences
|
| +bool Setup(Profile* profile, std::string* error, base::Closure callback) {
|
| if (!ChromeSelectFilePolicy::FileSelectDialogsAllowed()) {
|
| *error = std::string(kDisallowedByPolicy) +
|
| prefs::kAllowFileSelectionDialogs;
|
| return false;
|
| }
|
|
|
| + MediaGalleriesPreferences* preferences =
|
| + media_file_system_registry()->GetPreferences(profile);
|
| + preferences->EnsureInitialized(callback);
|
| return true;
|
| }
|
|
|
| -MediaFileSystemRegistry* media_file_system_registry() {
|
| - return g_browser_process->media_file_system_registry();
|
| -}
|
| -
|
| WebContents* GetWebContents(content::RenderViewHost* rvh,
|
| Profile* profile,
|
| const std::string& app_id) {
|
| @@ -228,9 +232,6 @@ MediaGalleriesGetMediaFileSystemsFunction::
|
| ~MediaGalleriesGetMediaFileSystemsFunction() {}
|
|
|
| bool MediaGalleriesGetMediaFileSystemsFunction::RunImpl() {
|
| - if (!ApiIsAccessible(&error_))
|
| - return false;
|
| -
|
| media_galleries::UsageCount(media_galleries::GET_MEDIA_FILE_SYSTEMS);
|
| scoped_ptr<GetMediaFileSystems::Params> params(
|
| GetMediaFileSystems::Params::Create(*args_));
|
| @@ -242,13 +243,9 @@ bool MediaGalleriesGetMediaFileSystemsFunction::RunImpl() {
|
| interactive = params->details->interactive;
|
| }
|
|
|
| - MediaGalleriesPreferences* preferences =
|
| - media_file_system_registry()->GetPreferences(GetProfile());
|
| - preferences->EnsureInitialized(base::Bind(
|
| - &MediaGalleriesGetMediaFileSystemsFunction::OnPreferencesInit,
|
| - this,
|
| + return Setup(GetProfile(), &error_, base::Bind(
|
| + &MediaGalleriesGetMediaFileSystemsFunction::OnPreferencesInit, this,
|
| interactive));
|
| - return true;
|
| }
|
|
|
| void MediaGalleriesGetMediaFileSystemsFunction::OnPreferencesInit(
|
| @@ -339,17 +336,11 @@ MediaGalleriesGetAllMediaFileSystemMetadataFunction::
|
| ~MediaGalleriesGetAllMediaFileSystemMetadataFunction() {}
|
|
|
| bool MediaGalleriesGetAllMediaFileSystemMetadataFunction::RunImpl() {
|
| - if (!ApiIsAccessible(&error_))
|
| - return false;
|
| -
|
| media_galleries::UsageCount(
|
| media_galleries::GET_ALL_MEDIA_FILE_SYSTEM_METADATA);
|
| - MediaGalleriesPreferences* preferences =
|
| - media_file_system_registry()->GetPreferences(GetProfile());
|
| - preferences->EnsureInitialized(base::Bind(
|
| + return Setup(GetProfile(), &error_, base::Bind(
|
| &MediaGalleriesGetAllMediaFileSystemMetadataFunction::OnPreferencesInit,
|
| this));
|
| - return true;
|
| }
|
|
|
| void MediaGalleriesGetAllMediaFileSystemMetadataFunction::OnPreferencesInit() {
|
| @@ -407,16 +398,9 @@ MediaGalleriesAddUserSelectedFolderFunction::
|
| ~MediaGalleriesAddUserSelectedFolderFunction() {}
|
|
|
| bool MediaGalleriesAddUserSelectedFolderFunction::RunImpl() {
|
| - if (!ApiIsAccessible(&error_))
|
| - return false;
|
| -
|
| media_galleries::UsageCount(media_galleries::ADD_USER_SELECTED_FOLDER);
|
| - MediaGalleriesPreferences* preferences =
|
| - media_file_system_registry()->GetPreferences(GetProfile());
|
| - preferences->EnsureInitialized(base::Bind(
|
| - &MediaGalleriesAddUserSelectedFolderFunction::OnPreferencesInit,
|
| - this));
|
| - return true;
|
| + return Setup(GetProfile(), &error_, base::Bind(
|
| + &MediaGalleriesAddUserSelectedFolderFunction::OnPreferencesInit, this));
|
| }
|
|
|
| void MediaGalleriesAddUserSelectedFolderFunction::OnPreferencesInit() {
|
| @@ -508,9 +492,6 @@ MediaGalleriesAddUserSelectedFolderFunction::GetMediaFileSystemsForExtension(
|
| MediaGalleriesGetMetadataFunction::~MediaGalleriesGetMetadataFunction() {}
|
|
|
| bool MediaGalleriesGetMetadataFunction::RunImpl() {
|
| - if (!ApiIsAccessible(&error_))
|
| - return false;
|
| -
|
| std::string blob_uuid;
|
| EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &blob_uuid));
|
|
|
| @@ -522,20 +503,16 @@ bool MediaGalleriesGetMetadataFunction::RunImpl() {
|
| if (!options)
|
| return false;
|
|
|
| - MediaGalleriesPreferences* preferences =
|
| - media_file_system_registry()->GetPreferences(GetProfile());
|
| bool mime_type_only = options->metadata_type ==
|
| MediaGalleries::GET_METADATA_TYPE_MIMETYPEONLY;
|
| - preferences->EnsureInitialized(base::Bind(
|
| - &MediaGalleriesGetMetadataFunction::OnPreferencesInit,
|
| - this, mime_type_only, blob_uuid));
|
|
|
| - return true;
|
| + return Setup(GetProfile(), &error_, base::Bind(
|
| + &MediaGalleriesGetMetadataFunction::OnPreferencesInit, this,
|
| + mime_type_only, blob_uuid));
|
| }
|
|
|
| void MediaGalleriesGetMetadataFunction::OnPreferencesInit(
|
| - bool mime_type_only,
|
| - const std::string& blob_uuid) {
|
| + bool mime_type_only, const std::string& blob_uuid) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
|
|
| // BlobReader is self-deleting.
|
|
|