Index: chrome/common/extensions/permissions/media_galleries_permission.cc |
diff --git a/chrome/common/extensions/permissions/media_galleries_permission.cc b/chrome/common/extensions/permissions/media_galleries_permission.cc |
deleted file mode 100644 |
index 8c87bf321686ae5209a4d27b4b01c65cf5d7508b..0000000000000000000000000000000000000000 |
--- a/chrome/common/extensions/permissions/media_galleries_permission.cc |
+++ /dev/null |
@@ -1,157 +0,0 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/common/extensions/permissions/media_galleries_permission.h" |
- |
-#include <set> |
-#include <string> |
- |
-#include "base/logging.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "extensions/common/permissions/permissions_info.h" |
-#include "grit/generated_resources.h" |
-#include "ui/base/l10n/l10n_util.h" |
- |
-namespace { |
- |
-// copyTo permission requires delete permission as a prerequisite. |
-// delete permission requires read permission as a prerequisite. |
-bool IsValidPermissionSet(bool has_read, bool has_copy_to, bool has_delete, |
- std::string* error) { |
- if (has_copy_to) { |
- if (has_read && has_delete) |
- return true; |
- if (error) |
- *error = "copyTo permission requires read and delete permissions"; |
- return false; |
- } |
- if (has_delete) { |
- if (has_read) |
- return true; |
- if (error) |
- *error = "delete permission requires read permission"; |
- return false; |
- } |
- return true; |
-} |
- |
-} // namespace |
- |
-namespace extensions { |
- |
-const char MediaGalleriesPermission::kAllAutoDetectedPermission[] = |
- "allAutoDetected"; |
-const char MediaGalleriesPermission::kScanPermission[] = "scan"; |
-const char MediaGalleriesPermission::kReadPermission[] = "read"; |
-const char MediaGalleriesPermission::kCopyToPermission[] = "copyTo"; |
-const char MediaGalleriesPermission::kDeletePermission[] = "delete"; |
- |
-MediaGalleriesPermission::MediaGalleriesPermission( |
- const APIPermissionInfo* info) |
- : SetDisjunctionPermission<MediaGalleriesPermissionData, |
- MediaGalleriesPermission>(info) { |
-} |
- |
-MediaGalleriesPermission::~MediaGalleriesPermission() { |
-} |
- |
-bool MediaGalleriesPermission::FromValue(const base::Value* value, |
- std::string* error) { |
- if (!SetDisjunctionPermission<MediaGalleriesPermissionData, |
- MediaGalleriesPermission>::FromValue(value, |
- error)) { |
- return false; |
- } |
- |
- bool has_read = false; |
- bool has_copy_to = false; |
- bool has_delete = false; |
- for (std::set<MediaGalleriesPermissionData>::const_iterator it = |
- data_set_.begin(); it != data_set_.end(); ++it) { |
- if (it->permission() == kAllAutoDetectedPermission || |
- it->permission() == kScanPermission) { |
- continue; |
- } |
- if (it->permission() == kReadPermission) { |
- has_read = true; |
- continue; |
- } |
- if (it->permission() == kCopyToPermission) { |
- has_copy_to = true; |
- continue; |
- } |
- if (it->permission() == kDeletePermission) { |
- has_delete = true; |
- continue; |
- } |
- |
- // No other permissions, so reaching this means |
- // MediaGalleriesPermissionData is probably out of sync in some way. |
- // Fail so developers notice this. |
- NOTREACHED(); |
- return false; |
- } |
- |
- return IsValidPermissionSet(has_read, has_copy_to, has_delete, error); |
-} |
- |
-PermissionMessages MediaGalleriesPermission::GetMessages() const { |
- DCHECK(HasMessages()); |
- PermissionMessages result; |
- |
- bool has_all_auto_detected = false; |
- bool has_read = false; |
- bool has_copy_to = false; |
- bool has_delete = false; |
- |
- for (std::set<MediaGalleriesPermissionData>::const_iterator it = |
- data_set_.begin(); it != data_set_.end(); ++it) { |
- if (it->permission() == kAllAutoDetectedPermission) |
- has_all_auto_detected = true; |
- else if (it->permission() == kReadPermission) |
- has_read = true; |
- else if (it->permission() == kCopyToPermission) |
- has_copy_to = true; |
- else if (it->permission() == kDeletePermission) |
- has_delete = true; |
- } |
- |
- if (!IsValidPermissionSet(has_read, has_copy_to, has_delete, NULL)) { |
- NOTREACHED(); |
- return result; |
- } |
- |
- // If |has_all_auto_detected| is false, then Chrome will prompt the user at |
- // runtime when the extension call the getMediaGalleries API. |
- if (!has_all_auto_detected) |
- return result; |
- // No access permission case. |
- if (!has_read) |
- return result; |
- |
- // Separate PermissionMessage IDs for read, copyTo, and delete. Otherwise an |
- // extension can silently gain new access capabilities. |
- result.push_back(PermissionMessage( |
- PermissionMessage::kMediaGalleriesAllGalleriesRead, |
- l10n_util::GetStringUTF16( |
- IDS_EXTENSION_PROMPT_WARNING_MEDIA_GALLERIES_READ))); |
- |
- // For copyTo and delete, the proper combined permission message will be |
- // derived in ChromePermissionMessageProvider::GetWarningMessages(), such |
- // that the user get 1 entry for all media galleries access permissions, |
- // rather than several separate entries. |
- if (has_copy_to) { |
- result.push_back(PermissionMessage( |
- PermissionMessage::kMediaGalleriesAllGalleriesCopyTo, |
- base::string16())); |
- } |
- if (has_delete) { |
- result.push_back(PermissionMessage( |
- PermissionMessage::kMediaGalleriesAllGalleriesDelete, |
- base::string16())); |
- } |
- return result; |
-} |
- |
-} // namespace extensions |