Chromium Code Reviews| 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); |
| } |