- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / permissions / media_galleries_permission.h
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_COMMON_EXTENSIONS_PERMISSIONS_MEDIA_GALLERIES_PERMISSION_H_
6 #define CHROME_COMMON_EXTENSIONS_PERMISSIONS_MEDIA_GALLERIES_PERMISSION_H_
7
8 #include "base/basictypes.h"
9 #include "chrome/common/extensions/permissions/media_galleries_permission_data.h"
10 #include "chrome/common/extensions/permissions/set_disjunction_permission.h"
11 #include "extensions/common/permissions/api_permission.h"
12
13 namespace extensions {
14
15 // Media Galleries permissions are as follows:
16 //   <media-galleries-permission-pattern>
17 //             := <access> | <access> 'allAutoDetected' | 'allAutoDetected'
18 //   <access>  := 'read' | 'read' <access> | 'read' <secondary-access>
19 //   <secondary-access>
20 //             := 'copyTo' | 'copyTo' <secondary-access>
21 class MediaGalleriesPermission
22   : public SetDisjunctionPermission<MediaGalleriesPermissionData,
23                                     MediaGalleriesPermission> {
24  public:
25   struct CheckParam : public APIPermission::CheckParam {
26     explicit CheckParam(const std::string& permission)
27       : permission(permission) {}
28     const std::string permission;
29   };
30
31   explicit MediaGalleriesPermission(const APIPermissionInfo* info);
32   virtual ~MediaGalleriesPermission();
33
34   // SetDisjunctionPermission overrides.
35   // MediaGalleriesPermission does additional checks to make sure the
36   // permissions do not contain unknown values.
37   virtual bool FromValue(const base::Value* value) OVERRIDE;
38
39   // APIPermission overrides.
40   virtual PermissionMessages GetMessages() const OVERRIDE;
41
42   // Permission strings.
43   static const char kAllAutoDetectedPermission[];
44   static const char kReadPermission[];
45   static const char kCopyToPermission[];
46 };
47
48 }  // namespace extensions
49
50 #endif  // CHROME_COMMON_EXTENSIONS_PERMISSIONS_MEDIA_GALLERIES_PERMISSION_H_