permissions_api.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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_H_ 6#define CHROME_BROWSER_EXTENSIONS_API_PERMISSIONS_PERMISSIONS_API_H_ 7 8#include <string> 9 10#include "base/compiler_specific.h" 11#include "chrome/browser/extensions/extension_function.h" 12#include "chrome/browser/extensions/extension_install_prompt.h" 13#include "chrome/common/extensions/permissions/permission_set.h" 14 15class ExtensionService; 16 17// chrome.permissions.contains 18class PermissionsContainsFunction : public SyncExtensionFunction { 19 public: 20 DECLARE_EXTENSION_FUNCTION("permissions.contains", PERMISSIONS_CONTAINS) 21 22 protected: 23 virtual ~PermissionsContainsFunction() {} 24 25 // ExtensionFunction: 26 virtual bool RunImpl() OVERRIDE; 27}; 28 29// chrome.permissions.getAll 30class PermissionsGetAllFunction : public SyncExtensionFunction { 31 public: 32 DECLARE_EXTENSION_FUNCTION("permissions.getAll", PERMISSIONS_GETALL) 33 34 protected: 35 virtual ~PermissionsGetAllFunction() {} 36 37 // ExtensionFunction: 38 virtual bool RunImpl() OVERRIDE; 39}; 40 41// chrome.permissions.remove 42class PermissionsRemoveFunction : public SyncExtensionFunction { 43 public: 44 DECLARE_EXTENSION_FUNCTION("permissions.remove", PERMISSIONS_REMOVE) 45 46 protected: 47 virtual ~PermissionsRemoveFunction() {} 48 49 // ExtensionFunction: 50 virtual bool RunImpl() OVERRIDE; 51}; 52 53// chrome.permissions.request 54class PermissionsRequestFunction : public AsyncExtensionFunction, 55 public ExtensionInstallPrompt::Delegate { 56 public: 57 DECLARE_EXTENSION_FUNCTION("permissions.request", PERMISSIONS_REQUEST) 58 59 PermissionsRequestFunction(); 60 61 // FOR TESTS ONLY to bypass the confirmation UI. 62 static void SetAutoConfirmForTests(bool should_proceed); 63 static void SetIgnoreUserGestureForTests(bool ignore); 64 65 // ExtensionInstallPrompt::Delegate: 66 virtual void InstallUIProceed() OVERRIDE; 67 virtual void InstallUIAbort(bool user_initiated) OVERRIDE; 68 69 protected: 70 virtual ~PermissionsRequestFunction(); 71 72 // ExtensionFunction: 73 virtual bool RunImpl() OVERRIDE; 74 75 private: 76 scoped_ptr<ExtensionInstallPrompt> install_ui_; 77 scoped_refptr<extensions::PermissionSet> requested_permissions_; 78}; 79 80#endif // CHROME_BROWSER_EXTENSIONS_API_PERMISSIONS_PERMISSIONS_API_H_ 81