diff options
Diffstat (limited to 'chromium/chrome/common/apps/platform_apps/media_galleries_permission_data.cc')
-rw-r--r-- | chromium/chrome/common/apps/platform_apps/media_galleries_permission_data.cc | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/chromium/chrome/common/apps/platform_apps/media_galleries_permission_data.cc b/chromium/chrome/common/apps/platform_apps/media_galleries_permission_data.cc new file mode 100644 index 00000000000..148abbac461 --- /dev/null +++ b/chromium/chrome/common/apps/platform_apps/media_galleries_permission_data.cc @@ -0,0 +1,60 @@ +// Copyright 2014 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/apps/platform_apps/media_galleries_permission_data.h" + +#include "base/strings/string_util.h" +#include "base/values.h" +#include "chrome/common/apps/platform_apps/media_galleries_permission.h" + +namespace chrome_apps { + +MediaGalleriesPermissionData::MediaGalleriesPermissionData() {} + +bool MediaGalleriesPermissionData::Check( + const extensions::APIPermission::CheckParam* param) const { + if (!param) + return false; + + const MediaGalleriesPermission::CheckParam& specific_param = + *static_cast<const MediaGalleriesPermission::CheckParam*>(param); + return permission_ == specific_param.permission; +} + +std::unique_ptr<base::Value> MediaGalleriesPermissionData::ToValue() const { + return std::make_unique<base::Value>(permission_); +} + +bool MediaGalleriesPermissionData::FromValue(const base::Value* value) { + if (!value) + return false; + + std::string raw_permission; + if (!value->GetAsString(&raw_permission)) + return false; + + std::string permission; + base::TrimWhitespaceASCII(raw_permission, base::TRIM_ALL, &permission); + + if (permission == MediaGalleriesPermission::kAllAutoDetectedPermission || + permission == MediaGalleriesPermission::kReadPermission || + permission == MediaGalleriesPermission::kCopyToPermission || + permission == MediaGalleriesPermission::kDeletePermission) { + permission_ = permission; + return true; + } + return false; +} + +bool MediaGalleriesPermissionData::operator<( + const MediaGalleriesPermissionData& rhs) const { + return permission_ < rhs.permission_; +} + +bool MediaGalleriesPermissionData::operator==( + const MediaGalleriesPermissionData& rhs) const { + return permission_ == rhs.permission_; +} + +} // namespace chrome_apps |