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); |
} |