Allow extensions to specify that they are not allowed in incognito mode.
[chromium-blink-merge.git] / extensions / browser / extension_util.h
blobb5f758edb1d226b3906bd3eb4f7eb481f5a3d786
1 // Copyright 2014 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.
5 #ifndef EXTENSIONS_BROWSER_EXTENSION_UTIL_H_
6 #define EXTENSIONS_BROWSER_EXTENSION_UTIL_H_
8 #include <string>
10 class GURL;
12 namespace content {
13 class BrowserContext;
16 namespace extensions {
17 class Extension;
18 struct ExtensionInfo;
20 namespace util {
22 // TODO(tmdiep): Move functions from
23 // chrome/browser/extensions/extension_util.h/cc that are only dependent on
24 // extensions/ here.
26 // Returns true if |extension_id| identifies an extension that is installed
27 // permanently and not ephemerally.
28 bool IsExtensionInstalledPermanently(const std::string& extension_id,
29 content::BrowserContext* context);
31 // Returns true if |extension_id| identifies an ephemeral app.
32 bool IsEphemeralApp(const std::string& extension_id,
33 content::BrowserContext* context);
35 // Returns true if the extension has isolated storage.
36 bool HasIsolatedStorage(const ExtensionInfo& info);
38 // Returns true if the site URL corresponds to an extension or app and has
39 // isolated storage.
40 bool SiteHasIsolatedStorage(const GURL& extension_site_url,
41 content::BrowserContext* context);
43 // Returns true if the extension can be enabled in incognito mode.
44 bool CanBeIncognitoEnabled(const Extension* extension);
46 } // namespace util
47 } // namespace extensions
49 #endif // EXTENSIONS_BROWSER_EXTENSION_UTIL_H_