1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_EXTENSIONS_COMPONENT_EXTENSIONS_ALLOWLIST_ALLOWLIST_H_
#define CHROME_BROWSER_EXTENSIONS_COMPONENT_EXTENSIONS_ALLOWLIST_ALLOWLIST_H_
#include <string>
#include "build/build_config.h"
namespace extensions {
// =============================================================================
//
// ADDING NEW EXTENSIONS REQUIRES APPROVAL from Extensions Tech Lead:
// rdevlin.cronin@chromium.org
//
// The main acceptable use of extensions in the default Chrome experience (i.e.
// not installed explicitly by the user) are to implement things like the
// history or settings pages. These are things that look like web pages, load
// in response to explicit user action, and use no resources when not opened.
//
// If you are asking for approval to add a new built-in extension to Chrome
// (whether downloaded with the binary or downloaded later on-demand), check:
//
// - It must not do anything on startup. Loading extensions processes on
// startup can significantly slow things down.
//
// - It must not have a background page. Extension processes use a nontrivial
// amount of memory that makes them inappropriate for built-in features.
//
// - Avoid event pages. Some events such as navigation will be even worse than
// background pages since it will cause the extension to be frequently
// loaded and unloaded. Even if your event page is "good" now, it's
// something that is easy to regress with innocuous looking changes, so
// try to use explicit C++ invocation of the extension when reasonable.
//
// =============================================================================
// Checks using an extension ID.
bool IsComponentExtensionAllowlisted(const std::string& extension_id);
// Checks using resource ID of manifest.
bool IsComponentExtensionAllowlisted(int manifest_resource_id);
#if BUILDFLAG(IS_CHROMEOS)
// Checks using extension id for sign in profile.
bool IsComponentExtensionAllowlistedForSignInProfile(
const std::string& extension_id);
#endif
} // namespace extensions
#endif // CHROME_BROWSER_EXTENSIONS_COMPONENT_EXTENSIONS_ALLOWLIST_ALLOWLIST_H_
|