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.
4
5#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_UI_UTIL_H_
6#define CHROME_BROWSER_EXTENSIONS_EXTENSION_UI_UTIL_H_
7
8namespace content {
9class BrowserContext;
10}
11
12namespace extensions {
13
14class Extension;
15
16namespace ui_util {
17
18// Returns true if the extension should be displayed in the app launcher.
19// Checks whether the extension is an ephemeral app or should be hidden due to
20// policy.
21bool ShouldDisplayInAppLauncher(const Extension* extension,
22                                content::BrowserContext* context);
23
24// Returns true if the extension can be displayed in the app launcher.
25// Checks whether the extension should be hidden due to policy, but does not
26// exclude ephemeral apps.
27bool CanDisplayInAppLauncher(const Extension* extension,
28                             content::BrowserContext* context);
29
30// Returns true if the extension should be displayed in the browser NTP.
31// Checks whether the extension is an ephemeral app or should be hidden due to
32// policy.
33bool ShouldDisplayInNewTabPage(const Extension* extension,
34                               content::BrowserContext* context);
35
36// Returns true if the extension should be displayed in the extension
37// settings page (i.e. chrome://extensions). Checks whether the extension is
38// an ephemeral app.
39bool ShouldDisplayInExtensionSettings(const Extension* extension,
40                                      content::BrowserContext* context);
41
42// Returns true if the extension should not be shown anywhere. This is
43// mostly the same as the extension being a component extension, but also
44// includes non-component apps that are hidden from the app launcher and NTP,
45// as well as ephemeral apps.
46bool ShouldNotBeVisible(const Extension* extension,
47                        content::BrowserContext* context);
48
49}  // namespace ui_util
50}  // namespace extensions
51
52#endif  // CHROME_BROWSER_EXTENSIONS_EXTENSION_UI_UTIL_H_
53