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

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

Issue 133463003: Media Galleries API Scanning: Add Scan Permission and basic test. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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
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 8f1c48dee33ad239a2b82da7fb39b5edad398e4c..1cc16ba16836437ed17cbf05bafeb86953a06791 100644
--- a/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
+++ b/chrome/browser/extensions/api/media_galleries/media_galleries_api.cc
@@ -64,6 +64,8 @@ const char kDisallowedByPolicy[] =
"Media Galleries API is disallowed by policy: ";
const char kMissingEventListener[] =
"Missing event listener registration.";
+const char kNoScanPermission[] =
+ "No permission to scan.";
const char kDeviceIdKey[] = "deviceId";
const char kGalleryIdKey[] = "galleryId";
@@ -618,6 +620,16 @@ void MediaGalleriesStartMediaScanFunction::OnPreferencesInit() {
return;
}
+ MediaGalleriesPermission::CheckParam scan_param(
Lei Zhang 2014/01/29 21:18:11 Why do this here and not earlier in RunImpl() ?
tommycli 2014/01/29 22:30:18 Done.
+ MediaGalleriesPermission::kScanPermission);
+ bool has_scan_permission = PermissionsData::CheckAPIPermissionWithParam(
+ GetExtension(), APIPermission::kMediaGalleries, &scan_param);
+ if (!has_scan_permission) {
+ error_ = kNoScanPermission;
+ SendResponse(false);
+ return;
+ }
+
media_scan_manager()->StartScan(GetProfile(), GetExtension()->id());
SendResponse(true);
}
@@ -634,6 +646,17 @@ bool MediaGalleriesCancelMediaScanFunction::RunImpl() {
void MediaGalleriesCancelMediaScanFunction::OnPreferencesInit() {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
+
+ MediaGalleriesPermission::CheckParam scan_param(
+ MediaGalleriesPermission::kScanPermission);
+ bool has_scan_permission = PermissionsData::CheckAPIPermissionWithParam(
+ GetExtension(), APIPermission::kMediaGalleries, &scan_param);
+ if (!has_scan_permission) {
+ error_ = kNoScanPermission;
+ SendResponse(false);
+ return;
+ }
+
media_scan_manager()->CancelScan(GetProfile(), GetExtension()->id());
SendResponse(true);
}

Powered by Google App Engine
This is Rietveld 408576698