Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / xwalk / application / common / manifest_handlers / permissions_handler.h
1 // Copyright (c) 2013 Intel Corporation. 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 XWALK_APPLICATION_COMMON_MANIFEST_HANDLERS_PERMISSIONS_HANDLER_H_
6 #define XWALK_APPLICATION_COMMON_MANIFEST_HANDLERS_PERMISSIONS_HANDLER_H_
7
8 #include <string>
9 #include <vector>
10
11 #include "xwalk/application/common/manifest_handler.h"
12 #include "xwalk/application/common/permission_types.h"
13
14 namespace xwalk {
15 namespace application {
16
17 class PermissionsInfo: public ApplicationData::ManifestData {
18  public:
19   PermissionsInfo();
20   virtual ~PermissionsInfo();
21
22   const PermissionSet& GetAPIPermissions() const {
23     return api_permissions_;}
24   void SetAPIPermissions(const PermissionSet& api_permissions) {
25     api_permissions_ = api_permissions;
26   }
27
28  private:
29   PermissionSet api_permissions_;
30   DISALLOW_COPY_AND_ASSIGN(PermissionsInfo);
31 };
32
33 class PermissionsHandler: public ManifestHandler {
34  public:
35   PermissionsHandler();
36   virtual ~PermissionsHandler();
37
38   bool Parse(scoped_refptr<ApplicationData> application,
39              base::string16* error) override;
40   bool AlwaysParseForType(Manifest::Type type) const override;
41   std::vector<std::string> Keys() const override;
42
43  private:
44   DISALLOW_COPY_AND_ASSIGN(PermissionsHandler);
45 };
46
47 }  // namespace application
48 }  // namespace xwalk
49
50 #endif  // XWALK_APPLICATION_COMMON_MANIFEST_HANDLERS_PERMISSIONS_HANDLER_H_