1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "extensions/common/permissions/media_galleries_permission_data.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string_util.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/values.h" 9effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "extensions/common/permissions/media_galleries_permission.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace extensions { 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)MediaGalleriesPermissionData::MediaGalleriesPermissionData() { 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool MediaGalleriesPermissionData::Check( 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const APIPermission::CheckParam* param) const { 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!param) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const MediaGalleriesPermission::CheckParam& specific_param = 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *static_cast<const MediaGalleriesPermission::CheckParam*>(param); 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return permission_ == specific_param.permission; 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)scoped_ptr<base::Value> MediaGalleriesPermissionData::ToValue() const { 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return scoped_ptr<base::Value>(new base::StringValue(permission_)); 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool MediaGalleriesPermissionData::FromValue(const base::Value* value) { 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!value) 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string raw_permission; 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!value->GetAsString(&raw_permission)) 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string permission; 39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) base::TrimWhitespaceASCII(raw_permission, base::TRIM_ALL, &permission); 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (permission == MediaGalleriesPermission::kAllAutoDetectedPermission || 425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) permission == MediaGalleriesPermission::kScanPermission || 43558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch permission == MediaGalleriesPermission::kReadPermission || 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) permission == MediaGalleriesPermission::kCopyToPermission || 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) permission == MediaGalleriesPermission::kDeletePermission) { 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) permission_ = permission; 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool MediaGalleriesPermissionData::operator<( 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const MediaGalleriesPermissionData& rhs) const { 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return permission_ < rhs.permission_; 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool MediaGalleriesPermissionData::operator==( 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const MediaGalleriesPermissionData& rhs) const { 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return permission_ == rhs.permission_; 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace extensions 63