// 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/chromeos_buildflags.h" namespace extensions { // ============================================================================= // // ADDING NEW EXTENSIONS REQUIRES APPROVAL from Extensions Tech Lead: // [email protected] // // 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 inocuous 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_ASH) // 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_