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

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

Issue 224963010: Media Galleries: Add a dropPermissionForMediaFileSystem() API. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: rebase, fix merge conflicts Created 6 years, 8 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
Index: chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
===================================================================
--- chrome/browser/extensions/api/media_galleries/media_galleries_api.cc (revision 262843)
+++ chrome/browser/extensions/api/media_galleries/media_galleries_api.cc (working copy)
@@ -62,6 +62,8 @@
namespace extensions {
namespace MediaGalleries = api::media_galleries;
+namespace DropPermissionForMediaFileSystem =
+ MediaGalleries::DropPermissionForMediaFileSystem;
namespace GetMediaFileSystems = MediaGalleries::GetMediaFileSystems;
namespace {
@@ -643,6 +645,47 @@
render_view_host(), GetExtension(), cb);
}
+MediaGalleriesDropPermissionForMediaFileSystemFunction::
+ ~MediaGalleriesDropPermissionForMediaFileSystemFunction() {}
+
+bool MediaGalleriesDropPermissionForMediaFileSystemFunction::RunImpl() {
+ media_galleries::UsageCount(
+ media_galleries::DROP_PERMISSION_FOR_MEDIA_FILE_SYSTEM);
+
+ scoped_ptr<DropPermissionForMediaFileSystem::Params> params(
+ DropPermissionForMediaFileSystem::Params::Create(*args_));
+ EXTENSION_FUNCTION_VALIDATE(params.get());
+ MediaGalleryPrefId pref_id;
+ if (base::StringToUint64(params->gallery_id, &pref_id)) {
+ base::Closure callback = base::Bind(
+ &MediaGalleriesDropPermissionForMediaFileSystemFunction::
+ OnPreferencesInit,
+ this,
+ pref_id);
+ if (Setup(GetProfile(), &error_, callback))
+ return true;
+ }
+
+ scoped_ptr<base::ListValue> default_results(new base::ListValue());
+ default_results->AppendString(base::string16());
+ default_results->AppendBoolean(false);
+ SetResult(default_results.release());
+ return false;
+}
+
+void MediaGalleriesDropPermissionForMediaFileSystemFunction::OnPreferencesInit(
+ MediaGalleryPrefId pref_id) {
+ MediaGalleriesPreferences* preferences =
+ media_file_system_registry()->GetPreferences(GetProfile());
+ bool dropped = preferences->SetGalleryPermissionForExtension(
+ *GetExtension(), pref_id, false);
+ scoped_ptr<base::ListValue> results(new base::ListValue());
+ results->AppendString(base::Uint64ToString(pref_id));
+ results->AppendBoolean(dropped);
+ SetResult(results.release());
+ SendResponse(true);
+}
+
MediaGalleriesStartMediaScanFunction::~MediaGalleriesStartMediaScanFunction() {}
bool MediaGalleriesStartMediaScanFunction::RunImpl() {

Powered by Google App Engine
This is Rietveld 408576698