// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_UTIL_H_ #define CHROME_BROWSER_EXTENSIONS_EXTENSION_UTIL_H_ #include <string> namespace extensions { class Extension; } class ExtensionService; namespace extension_util { // Whether this extension can run in an incognito window. bool IsIncognitoEnabled(const std::string& extension_id, const ExtensionService* service); // Will reload the extension since this permission is applied at loading time // only. void SetIsIncognitoEnabled(const std::string& extension_id, ExtensionService* service, bool enabled); // Returns true if the given extension can see events and data from another // sub-profile (incognito to original profile, or vice versa). bool CanCrossIncognito(const extensions::Extension* extension, const ExtensionService* service); // Returns true if the given extension can be loaded in incognito. bool CanLoadInIncognito(const extensions::Extension* extension, const ExtensionService* service); // Whether this extension can inject scripts into pages with file URLs. bool AllowFileAccess(const extensions::Extension* extension, const ExtensionService* service); // Will reload the extension since this permission is applied at loading time // only. void SetAllowFileAccess(const extensions::Extension* extension, ExtensionService* service, bool allow); // Whether an app can be launched or not. Apps may require enabling first, // but they will still be launchable. bool IsAppLaunchable(const std::string& extension_id, const ExtensionService* service); // Whether an app can be launched without being enabled first. bool IsAppLaunchableWithoutEnabling(const std::string& extension_id, const ExtensionService* service); } // namespace extension_util #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_UTIL_H_