| 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
|
|
|