1// Copyright (c) 2012 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_BROWSER_EXTENSIONS_API_PERMISSIONS_PERMISSIONS_API_HELPERS_H_
6#define CHROME_BROWSER_EXTENSIONS_API_PERMISSIONS_PERMISSIONS_API_HELPERS_H_
7
8#include <string>
9#include "base/memory/scoped_ptr.h"
10#include "base/memory/ref_counted.h"
11
12namespace base {
13class DictionaryValue;
14}
15
16namespace extensions {
17
18class PermissionSet;
19
20namespace api {
21namespace permissions {
22struct Permissions;
23}
24}
25
26namespace permissions_api_helpers {
27
28// Converts the permission |set| to a permissions object.
29scoped_ptr<api::permissions::Permissions> PackPermissionSet(
30    const PermissionSet* set);
31
32// Creates a permission set from |permissions|. Returns NULL if the permissions
33// cannot be converted to a permission set, in which case |error| will be set.
34scoped_refptr<PermissionSet> UnpackPermissionSet(
35    const api::permissions::Permissions& permissions,
36    bool allow_file_access,
37    std::string* error);
38
39}  // namespace permissions_api_helpers
40}  // namespace extensions
41
42#endif  // CHROME_BROWSER_EXTENSIONS_API_PERMISSIONS_PERMISSIONS_API_HELPERS_H_
43