Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1210)

Unified Diff: chrome/browser/extensions/api/media_galleries/media_galleries_api.cc

Issue 12091054: Media Galleries: Always call MediaFileSystemRegistry::GetMediaFileSystemsForExtension() before show… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/api/media_galleries/media_galleries_api.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
===================================================================
--- chrome/browser/extensions/api/media_galleries/media_galleries_api.cc (revision 179687)
+++ chrome/browser/extensions/api/media_galleries/media_galleries_api.cc (working copy)
@@ -38,6 +38,7 @@
using chrome::MediaFileSystemInfo;
using chrome::MediaFileSystemRegistry;
+using chrome::MediaFileSystemsCallback;
using content::ChildProcessSecurityPolicy;
using content::WebContents;
@@ -87,17 +88,20 @@
}
switch (interactive) {
- case MediaGalleries::GET_MEDIA_FILE_SYSTEMS_INTERACTIVITY_YES:
- ShowDialog();
+ case MediaGalleries::GET_MEDIA_FILE_SYSTEMS_INTERACTIVITY_YES: {
+ // The MediaFileSystemRegistry only updates preferences for extensions
+ // that it knows are in use. Since this may be the first call to
+ // chrome.getMediaFileSystems for this extension, call
+ // GetMediaFileSystemsForExtension() here solely so that
+ // MediaFileSystemRegistry will send preference changes.
+ GetMediaFileSystemsForExtension(base::Bind(
+ &MediaGalleriesGetMediaFileSystemsFunction::AlwaysShowDialog, this));
return true;
+ }
case MediaGalleries::GET_MEDIA_FILE_SYSTEMS_INTERACTIVITY_IF_NEEDED: {
- MediaFileSystemRegistry* registry =
- g_browser_process->media_file_system_registry();
- registry->GetMediaFileSystemsForExtension(
- render_view_host(), GetExtension(), base::Bind(
- &MediaGalleriesGetMediaFileSystemsFunction::
- ShowDialogIfNoGalleries,
- this));
+ GetMediaFileSystemsForExtension(base::Bind(
+ &MediaGalleriesGetMediaFileSystemsFunction::ShowDialogIfNoGalleries,
+ this));
return true;
}
case MediaGalleries::GET_MEDIA_FILE_SYSTEMS_INTERACTIVITY_NO:
@@ -110,6 +114,11 @@
return false;
}
+void MediaGalleriesGetMediaFileSystemsFunction::AlwaysShowDialog(
+ const std::vector<MediaFileSystemInfo>& /*filesystems*/) {
+ ShowDialog();
+}
+
void MediaGalleriesGetMediaFileSystemsFunction::ShowDialogIfNoGalleries(
const std::vector<MediaFileSystemInfo>& filesystems) {
if (filesystems.empty())
@@ -119,11 +128,8 @@
}
void MediaGalleriesGetMediaFileSystemsFunction::GetAndReturnGalleries() {
- MediaFileSystemRegistry* registry =
- g_browser_process->media_file_system_registry();
- registry->GetMediaFileSystemsForExtension(
- render_view_host(), GetExtension(), base::Bind(
- &MediaGalleriesGetMediaFileSystemsFunction::ReturnGalleries, this));
+ GetMediaFileSystemsForExtension(base::Bind(
+ &MediaGalleriesGetMediaFileSystemsFunction::ReturnGalleries, this));
}
void MediaGalleriesGetMediaFileSystemsFunction::ReturnGalleries(
@@ -221,6 +227,14 @@
new chrome::MediaGalleriesDialogController(contents, *GetExtension(), cb);
}
+void MediaGalleriesGetMediaFileSystemsFunction::GetMediaFileSystemsForExtension(
+ const chrome::MediaFileSystemsCallback& cb) {
+ MediaFileSystemRegistry* registry =
+ g_browser_process->media_file_system_registry();
+ registry->GetMediaFileSystemsForExtension(
+ render_view_host(), GetExtension(), cb);
+}
+
// MediaGalleriesAssembleMediaFileFunction -------------------------------------
MediaGalleriesAssembleMediaFileFunction::
« no previous file with comments | « chrome/browser/extensions/api/media_galleries/media_galleries_api.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698