Welkom bij Extensies!
Extensies en AI,Extensies en AI,Extensies en AI,Extensies en AI
Wat is er nieuw
Breid het web uit
Extensies op YouTube
Achter de Chrome Web Store: stel uw vragen aan de productmanager,Achter de Chrome Web Store: stel uw vragen aan de productmanager,Achter de Chrome Web Store: stel uw vragen aan de productmanager
Wat zijn inhoudsscripts?
Wat is een op afstand gehoste code?
Extensies in actie
Actie-API-demo
UserScript API-demo
Scripting API-demo
SidePanel API-demo
Documentatie
Aan de slag
Ontwikkelen
Hoe
Referentie
Extensies berichten
Samples
Samples for Chrome Extensions are available on GitHub.
Chrome Web Store API Reference
This reference describes the methods and resource representation available for the Chrome Web Store Publish API. Each resource type has one or more data representations and one or more methods. See Using the Chrome Web Store Publish API for a guide
Google Play for Education Addendum to the Google Chrome Web Store Developer Agreement
In connection with the Google Chrome Web Store, Google may make certain Chrome Web Store applications available in Google's Play for Education site. If You or Your organization is interested in participating, please verify that the
Policies
Extension policies
Chrome Web Store policy updates: ensuring clarity and consistency for developers
The Chrome Web Store is committed to fostering a high-quality and trustworthy ecosystem for developers and users. To align with this goal, we're announcing a series of policy updates designed to provide clarity and consistency across our platform.
Publish Your App
TODO
Use the Chrome Web Store Publish API
How to programmatically create, update, and publish items in the Chrome Web Store.
chrome.i18n
Use the chrome.i18n infrastructure to implement internationalization across your whole app or extension. If an extension has a /_locales directory, the manifest must define "default_locale". You need to put all of its user-visible strings into a file
chrome.storage
Use the chrome.storage API to store, retrieve, and track changes to user data. The Storage API provides an extension-specific way to persist user data and state. It's similar to the web platform's storage APIs ( IndexedDB, and Storage ), but was
chrome.storage
Use the chrome.storage API to store, retrieve, and track changes to user data. To use the storage API, declare the "storage" permission in the extension manifest. For example: The Storage API provides an extension-specific way to persist user data
chrome.userScripts
Use the userScripts API to execute user scripts in the User Scripts context. To use the User Scripts API, chrome.userScripts, add the "userScripts" permission to your manifest.json and "host_permissions" for sites you want to run scripts on. A user
chrome.printing
Use the chrome.printing API to send print jobs to printers installed on Chromebook. All chrome.printing methods and events require you to declare the "printing" permission in the extension manifest. For example: The examples below demonstrate using
chrome.printing
Use the chrome.printing API to send print jobs to printers installed on Chromebook. All chrome.printing methods and events require you to declare the "printing" permission in the extension manifest. For example: The examples below demonstrate using
chrome.enterprise.platformKeys
Use the chrome.enterprise.platformKeys API to generate keys and install certificates for these keys. The certificates will be managed by the platform and can be used for TLS authentication, network access or by other extension through
chrome.enterprise.platformKeys
Use the chrome.enterprise.platformKeys API to generate keys and install certificates for these keys. The certificates will be managed by the platform and can be used for TLS authentication, network access or by other extension through
chrome.permissions
Use the chrome.permissions API to request declared optional permissions at run time rather than install time, so users understand why the permissions are needed and grant only those that are necessary. Permission warnings exist to describe the
chrome.permissions
Use the chrome.permissions API to request declared optional permissions at run time rather than install time, so users understand why the permissions are needed and grant only those that are necessary. Permission warnings exist to describe the
chrome.runtime
Use the chrome.runtime API to retrieve the service worker, return details about the manifest, and listen for and respond to events in the extension lifecycle. You can also use this API to convert the relative path of URLs to fully-qualified URLs. The
What's happening in Chrome Extensions, January 2025
An overview of the recent changes in Chrome Extensions, plus exciting upcoming extensions features developers can look forward to.
chrome.bookmarks
Use the chrome.bookmarks API to create, organize, and otherwise manipulate bookmarks. Also see Override Pages, which you can use to create a custom Bookmark Manager page. You must declare the "bookmarks" permission in the extension manifest to use
chrome.bookmarks
This permission triggers a warning. Use the chrome.bookmarks API to create, organize, and otherwise manipulate bookmarks. Also see Override Pages, which you can use to create a custom Bookmark Manager page. You must declare the "bookmarks" permission
chrome.tabs
Use the chrome.tabs API to interact with the browser's tab system. You can use this API to create, modify, and rearrange tabs in the browser. The Tabs API not only offers features for manipulating and managing tabs, but can also detect the language
chrome.tabs
Use the chrome.tabs API to interact with the browser's tab system. You can use this API to create, modify, and rearrange tabs in the browser. The Tabs API not only offers features for manipulating and managing tabs, but can also detect the language
chrome.ttsEngine
Use the chrome.ttsEngine API to implement a text-to-speech(TTS) engine using an extension. If your extension registers using this API, it will receive events containing an utterance to be spoken and other parameters when any extension or Chrome App
chrome.ttsEngine
Use the chrome.ttsEngine API to implement a text-to-speech(TTS) engine using an extension. If your extension registers using this API, it will receive events containing an utterance to be spoken and other parameters when any extension or Chrome App
chrome.cookies
Use the chrome.cookies API to query and modify cookies, and to be notified when they change. To use the cookies API, declare the "cookies" permission in your manifest along with host permissions for any hosts whose cookies you want to access. For
chrome.cookies
Use the chrome.cookies API to query and modify cookies, and to be notified when they change. To use the cookies API, you must declare the "cookies" permission in your manifest, along with host permissions for any hosts whose cookies you want to
What's new in Chrome extensions
Recent changes to the Chrome extensions platform, documentation, and policy
chrome.pageCapture
Use the chrome.pageCapture API to save a tab as MHTML. MHTML is a standard format supported by most browsers. It encapsulates in a single file a page and all its resources (CSS files, images..). Note that for security reasons a MHTML file can only be
chrome.pageCapture
Use the chrome.pageCapture API to save a tab as MHTML. MHTML is a standard format supported by most browsers. It encapsulates in a single file a page and all its resources (CSS files, images..). Note that for security reasons a MHTML file can only be
Chrome Web Store
Chrome Web Store An online marketplace where users can browse for extensions and themes. Publish your extension there and make it accessible to the world. dashboard Developer Dashboard Publish your extension and manage your store items. local_mall
chrome.action
Use the chrome.action API to control the extension's icon in the Google Chrome toolbar. The following keys must be declared in the manifest to use this API. To use the chrome.action API, specify a "manifest_version" of 3 and include the "action" key
chrome.extension
The chrome.extension API has utilities that can be used by any extension page. It includes support for exchanging messages between an extension and its content scripts or between extensions, as described in detail in Message Passing. The type of
chrome.certificateProvider
Use this API to expose certificates to the platform which can use these certificates for TLS authentications. Typical usage of this API to expose client certificates to ChromeOS follows these steps: The actual sequence of steps can be different. For
chrome.declarativeContent
Use the chrome.declarativeContent API to take actions depending on the content of a page, without requiring permission to read the page's content. The Declarative Content API allows you to enable your extension's action depending on the URL of a web
chrome.certificateProvider
Use this API to expose certificates to the platform which can use these certificates for TLS authentications. Typical usage of this API to expose client certificates to ChromeOS follows these steps: The actual sequence of steps can be different. For
chrome.extension
The chrome.extension API has utilities that can be used by any extension page. It includes support for exchanging messages between an extension and its content scripts or between extensions, as described in detail in Message Passing. The type of
chrome.declarativeWebRequest
Note: this API is deprecated. Check out the declarativeNetRequest API instead. Use the chrome.declarativeWebRequest API to intercept, block, or modify requests in-flight. It is significantly faster than the chrome.webRequest API because you can
API reference
The complete reference to all APIs made available to Chrome Extensions. This includes APIs for the deprecated Chrome Apps platform as well as APIs still in beta and dev.
chrome.declarativeContent
Use the chrome.declarativeContent API to take actions depending on the content of a page, without requiring permission to read the page's content. The Declarative Content API lets you enable your extension's action depending on the URL of a web page,
chrome.commands
Use the commands API to add keyboard shortcuts that trigger actions in your extension, for example, an action to open the browser action or send a command to the extension. The following keys must be declared in the manifest to use this API. The
chrome.offscreen
Use the offscreen API to create and manage offscreen documents. To use the Offscreen API, declare the "offscreen" permission in the extension manifest. For example: Service workers don't have DOM access, and many websites have content security
chrome.system.display
Use the system.display API to query display metadata. An enum to tell if the display is detected and used by the system. The display is considered 'inactive', if it is not detected by the system (maybe disconnected, or considered disconnected due to
chrome.system.display
Use the system.display API to query display metadata. An enum to tell if the display is detected and used by the system. The display is considered 'inactive', if it is not detected by the system (maybe disconnected, or considered disconnected due to
Extensions and AI
Learn how to develop extensions with AI
Prepare your extension as we begin testing a new extensions menu
How to prepare your extension for the new extensions menu.
chrome.debugger
The chrome.debugger API serves as an alternate transport for Chrome's remote debugging protocol. Use chrome.debugger to attach to one or more tabs to instrument network interaction, debug JavaScript, mutate the DOM and CSS, and more. Use the Debuggee
chrome.downloads
Use the chrome.downloads API to programmatically initiate, monitor, manipulate, and search for downloads. You must declare the "downloads" permission in the extension manifest to use this API. You can find simple examples of using the
chrome.sidePanel
Use the chrome.sidePanel API to host content in the browser's side panel alongside the main content of a webpage. To use the Side Panel API, add the "sidePanel" permission in the extension manifest file: manifest.json: The Side Panel API allows
chrome.sessions
Use the chrome.sessions API to query and restore tabs and windows from a browsing session. string The name of the foreign device. Session [] A list of open window sessions for the foreign device, sorted from most recently to least recently modified
chrome.notifications
Use the chrome.notifications API to create rich notifications using templates and show these notifications to users in the system tray. string optional Button icons not visible for Mac OS X users. string string Additional details about this item.
chrome.webRequest
Use the chrome.webRequest API to observe and analyze traffic and to intercept, block, or modify requests in-flight. You must declare the "webRequest" permission in the extension manifest to use the web request API, along with the necessary host
chrome.vpnProvider
Use the chrome.vpnProvider API to implement a VPN client. Typical usage of vpnProvider is as follows: Create VPN configurations using the createConfig method. A VPN configuration is a persistent entry shown to the user in a native ChromeOS UI. The
chrome.loginState
Use the chrome.loginState API to read and monitor the login state. "SIGNIN_PROFILE" Specifies that the extension is in the signin profile. "USER_PROFILE" Specifies that the extension is in the user profile. "UNKNOWN" Specifies that the session state
chrome.input.ime
Use the chrome.input.ime API to implement a custom IME for Chrome OS. This allows your extension to handle keystrokes, set the composition, and manage the candidate window. You must declare the "input" permission in the extension manifest to use the
chrome.printingMetrics
Use the chrome.printingMetrics API to fetch data about printing usage. "BLACK_AND_WHITE" Specifies that black and white mode was used. "COLOR" Specifies that color mode was used. "ONE_SIDED" Specifies that one-sided printing was used.
chrome.notifications
Use the chrome.notifications API to create rich notifications using templates and show these notifications to users in the system tray. string optional Button icons not visible for Mac OS X users. string string Additional details about this item.
chrome.debugger
The chrome.debugger API serves as an alternate transport for Chrome's remote debugging protocol. Use chrome.debugger to attach to one or more tabs to instrument network interaction, debug JavaScript, mutate the DOM and CSS, and more. Use the Debuggee
chrome.webNavigation
Use the chrome.webNavigation API to receive notifications about the status of navigation requests in-flight. All chrome.webNavigation methods and events require you to declare the "webNavigation" permission in the extension manifest. For example: For
chrome.browsingData
Use the chrome.browsingData API to remove browsing data from a user's local profile. You must declare the "browsingData" permission in the extension manifest to use this API. The simplest use-case for this API is a a time-based mechanism for clearing
chrome.enterprise.hardwarePlatform
Use the chrome.enterprise.hardwarePlatform API to get the manufacturer and model of the hardware platform where the browser runs. Note: This API is only available to extensions installed by enterprise policy. string string Obtains the manufacturer
chrome.gcm
Use chrome.gcm to enable apps and extensions to send and receive messages through Firebase Cloud Messaging (FCM). The maximum size (in bytes) of all key/value pairs in a message. 4096 Registers the application with FCM. The registration ID will be
chrome.identity
Use the chrome.identity API to get OAuth2 access tokens. string A unique identifier for the account. This ID will not change for the lifetime of the account. "SYNC" Specifies that Sync is enabled for the primary account. "ANY" Specifies the existence
chrome.browsingData
Use the chrome.browsingData API to remove browsing data from a user's local profile. You must declare the "browsingData" permission in the extension manifest to use this API. The simplest use-case for this API is a a time-based mechanism for clearing
chrome.devtools.panels
Use the chrome.devtools.panels API to integrate your extension into Developer Tools window UI: create your own panels, access existing panels, and add sidebars. The following keys must be declared in the manifest to use this API. See DevTools APIs
chrome.fileSystemProvider
Use the chrome.fileSystemProvider API to create file systems, that can be accessible from the file manager on Chrome OS. You must declare the "fileSystemProvider" permission and section in the extension manifest to use the File System Provider API.
chrome.systemLog
Use the chrome.systemLog API to record Chrome system logs from extensions. string Adds a new log record. MessageOptions The logging options. function optional The callback parameter looks like: Promise<void> Promises are supported in Manifest
chrome.windows
Use the chrome.windows API to interact with browser windows. You can use this API to create, modify, and rearrange windows in the browser. When requested, a windows.Window contains an array of tabs.Tab objects. You must declare the "tabs" permission
chrome.windows
Use the chrome.windows API to interact with browser windows. You can use this API to create, modify, and rearrange windows in the browser. When requested, a windows.Window contains an array of tabs.Tab objects. You must declare the "tabs" permission
API reference
The complete reference to all APIs made available to Chrome Extensions. This includes APIs for the deprecated Chrome Apps platform as well as APIs still in beta and dev.
chrome.fontSettings
Use the chrome.fontSettings API to manage Chrome's font settings. To use the Font Settings API, you must declare the "fontSettings" permission in the extension manifest. For example: Chrome allows for some font settings to depend on certain generic
chrome.wallpaper
Use the chrome.wallpaper API to change the ChromeOS wallpaper. You must declare the "wallpaper" permission in the app's manifest to use the wallpaper API. For example: For example, to set the wallpaper as the image at https://example.com/a_file.png,
chrome.desktopCapture
The Desktop Capture API captures the content of the screen, individual windows, or individual tabs. Enum used to define set of desktop media sources used in chooseDesktopMedia(). "screen" "window" "tab" "audio" Mirrors SelfCapturePreferenceEnum.
chrome.tabCapture
Use the chrome.tabCapture API to interact with tab media streams. The chrome.tabCapture API allows you to access a MediaStream containing video and audio of the current tab. It can only be called after the user invokes an extension, such as
chrome.identity
Use the chrome.identity API to get OAuth2 access tokens. string A unique identifier for the account. This ID will not change for the lifetime of the account. "SYNC" Specifies that Sync is enabled for the primary account. "ANY" Specifies the existence
chrome.webNavigation
Use the chrome.webNavigation API to receive notifications about the status of navigation requests in-flight. All chrome.webNavigation methods and events require you to declare the "webNavigation" permission in the extension manifest. For example: For
chrome.browserAction
Use browser actions to put icons in the main Google Chrome toolbar, to the right of the address bar. In addition to its icon, a browser action can have a tooltip, a badge, and a popup. In the following figure, the multicolored square to the right of
chrome.downloads
This permission triggers a warning Use the chrome.downloads API to programmatically initiate, monitor, manipulate, and search for downloads. You must declare the "downloads" permission in the extension manifest to use this API. You can find simple
chrome.enterprise.deviceAttributes
Use the chrome.enterprise.deviceAttributes API to read device attributes. Note: This API is only available to extensions force-installed by enterprise policy. Fetches the administrator-annotated Location. If the current user is not affiliated or no
chrome.management
The chrome.management API provides ways to manage installed apps and extensions. You must declare the "management" permission in the extension manifest to use the management API. For example: management.getPermissionWarningsByManifest(),
chrome.power
Use the chrome.power API to override the system's power management features. Using this API, you can specify the Level to which power management is disabled. The "system" level keeps the system active, but allows the screen to be dimmed or turned
chrome.contentSettings
Use the chrome.contentSettings API to change settings that control whether websites can use features such as cookies, JavaScript, and plugins. More generally speaking, content settings allow you to customize Chrome's behavior on a per-site basis
chrome.processes
Use the chrome.processes API to interact with the browser's processes. number The part of the cache that is utilized, in bytes. number The size of the cache, in bytes. number optional The most recent measurement of the process's CPU usage, expressed
chrome.documentScan
Use the chrome.documentScan API to discover and retrieve images from attached document scanners. The Document Scan API is designed to allow apps and extensions to view the content of paper documents on an attached document scanner. string Provides
chrome.declarativeNetRequest
The chrome.declarativeNetRequest API is used to block or modify network requests by specifying declarative rules. This lets extensions modify network requests without intercepting them and viewing their content, thus providing more privacy. The "
chrome.platformKeys
Use the chrome.platformKeys API to access client certificates managed by the platform. If the user or policy grants the permission, an extension can use such a certficate in its custom authentication protocol. E.g. this allows usage of platform
chrome.tts
Use the chrome.tts API to play synthesized text-to-speech (TTS). See also the related ttsEngine API, which allows an extension to implement a speech engine. Chrome provides this capability on Windows (using SAPI 5), Mac OS X, and ChromeOS,
chrome.management
The chrome.management API provides ways to manage installed apps and extensions. You must declare the "management" permission in the extension manifest to use the management API. For example: management.getPermissionWarningsByManifest,
What's happening in Chrome Extensions, October 2024
An overview of the recent changes in Chrome Extensions, plus exciting upcoming extensions features developers can look forward to.
Improving the Chrome Web Store Developer Dashboard mobile experience
We're excited to launch a set of UI changes making the Chrome Web Store Developer Dashboard more responsive and mobile-friendly. We hope this gives you a more convenient and accessible experience when monitoring store listing performance, making
chrome.declarativeNetRequest
The chrome.declarativeNetRequest API is used to block or modify network requests by specifying declarative rules. This lets extensions modify network requests without intercepting them and viewing their content, thus providing more privacy.
chrome.devtools.performance
Use the chrome.devtools.performance API to listen to recording status updates in the Performance panel in DevTools. See DevTools APIs summary for general introduction to using Developer Tools APIs. The chrome.devtools.performance API allows
chrome.devtools.network
Use the chrome.devtools.network API to retrieve the information about network requests displayed by the Developer Tools in the Network panel. Network requests information is represented in the HTTP Archive format ( HAR ). The description of HAR is
chrome.devtools.panels
Use the chrome.devtools.panels API to integrate your extension into Developer Tools window UI: create your own panels, access existing panels, and add sidebars. Each extension panel and sidebar is displayed as a separate HTML page. All extension
Creating a great listing page
Best practices on how to make a high-quality, engaging listing page for your item in the Chrome Web Store.
Deceptive Installation Tactics FAQ
Frequently asked questions about Chrome Web Store's policies on deceptive installation tactics.
Quality guidelines
An extension must have a single purpose that is narrow and easy to understand. Don't create an extension that requires users to accept bundles of unrelated functionality. If two pieces of functionality are clearly separate, they should be put into
What's happening in Chrome Extensions?
An overview of the recent changes in Chrome Extensions, plus exciting upcoming extension features developers can look forward to.
Extensions quality guidelines FAQ
Frequently asked questions about the single purpose policy.
Chrome Extensions: Important policy updates
This announcement includes a series of updates to Developer Program Policies page designed to encourage the development of high quality products, prevent deceptive behavior, and ensure informed user consent.
Best Practices and Guidelines
Research and understand the Chrome Web Store policies. Before developing a Chrome extension, it is important to review the Chrome Web Store Developer Program Policies and ensure your extension complies with all guidelines and requirements. Extensions
Listing Requirements
If your product has a blank description field or is missing an icon or screenshots, it will be rejected. Ensure your product's listing information is up to date, accurate, and comprehensive. We don't allow extensions with misleading, inaccurate,
Deceptive Installation Tactics
Extensions must be marketed responsibly. The set of functionalities promised by the extension must be stated clearly and in a transparent manner. The outcome of any user interaction should match the reasonable expectations that were set with the
chrome.input.ime
Use the chrome.input.ime API to implement a custom IME for Chrome OS. This allows your extension to handle keystrokes, set the composition, and manage the candidate window. You must declare the "input" permission in the extension manifest to use the
Adding Trusted Types to YouTube
YouTube is enhancing platform security with Trusted Types to prevent cross-site scripting attacks, but it may impact your extension.
chrome.enterprise.networkingAttributes
Use the chrome.enterprise.networkingAttributes API to read information about your current network. Note: This API is only available to extensions force-installed by enterprise policy. string optional The device's local IPv4 address (undefined if not
chrome.enterprise.hardwarePlatform
Use the chrome.enterprise.hardwarePlatform API to get the manufacturer and model of the hardware platform where the browser runs. Note: This API is only available to extensions installed by enterprise policy. string string Obtains the manufacturer
chrome.enterprise.deviceAttributes
Use the chrome.enterprise.deviceAttributes API to read device attributes. Note: This API is only available to extensions force-installed by enterprise policy. Fetches the administrator-annotated Location. If the current user is not affiliated or no
chrome.enterprise.networkingAttributes
Use the chrome.enterprise.networkingAttributes API to read information about your current network. Note: This API is only available to extensions force-installed by enterprise policy. string optional The device's local IPv4 address (undefined if not
Behind the Chrome Web Store: Asking Trust & Safety your questions
We sat down with the team that leads review in the Chrome Web Store.
Extensions / Develop
Learn how to develop extensions
Content filtering
An explanation of content filtering and how to approach it in your Chrome Extension.
chrome.webRequest
Use the chrome.webRequest API to observe and analyze traffic and to intercept, block, or modify requests in-flight. You must declare the "webRequest" permission in the extension manifest to use the web request API, along with the necessary host
chrome.devtools.inspectedWindow
Use the chrome.devtools.inspectedWindow API to interact with the inspected window: obtain the tab ID for the inspected page, evaluate the code in the context of the inspected window, reload the page, or obtain the list of resources within the page.
chrome.vpnProvider
Use the chrome.vpnProvider API to implement a VPN client. Typical usage of chrome.vpnProvider is as follows: Create VPN configurations by calling createConfig(). A VPN configuration is a persistent entry shown to the user in a ChromeOS UI. The user
chrome.audio
The chrome.audio API is provided to allow users to get information about and control the audio devices attached to the system. This API is currently only available in kiosk mode for ChromeOS. string Device name. DeviceType Type of the device. string
chrome.gcm
Use chrome.gcm to enable apps and extensions to send and receive messages through Firebase Cloud Messaging (FCM). The maximum size (in bytes) of all key/value pairs in a message. 4096 Registers the application with FCM. The registration ID will be
chrome.audio
The chrome.audio API is provided to allow users to get information about and control the audio devices attached to the system. This API is currently only available in kiosk mode for ChromeOS. string Device name. DeviceType Type of the device. string
chrome.printingMetrics
Use the chrome.printingMetrics API to fetch data about printing usage. "BLACK_AND_WHITE" Specifies that black and white mode was used. "COLOR" Specifies that color mode was used. "ONE_SIDED" Specifies that one-sided printing was used.
chrome.readingList
Use the chrome.readingList API to read from and modify the items in the Reading List. To use the Reading List API, add the "readingList" permission in the extension manifest file: manifest.json: Chrome features a reading list located on the side
chrome.scripting
Use the chrome.scripting API to execute script in different contexts. To use the chrome.scripting API, declare the "scripting" permission in the manifest plus the host permissions for the pages to inject scripts into. Use the "host_permissions" key
chrome.system.memory
The chrome.system.memory API. number The amount of available capacity, in bytes. number The total amount of physical memory capacity, in bytes. Get physical memory information. function optional The callback parameter looks like: MemoryInfo
chrome.systemLog
Use the chrome.systemLog API to record Chrome system logs from extensions. string Adds a new log record. MessageOptions The logging options. function optional The callback parameter looks like: Promise<void> Promises are only supported for
chrome.search
Use the chrome.search API to search via the default provider. "CURRENT_TAB" Specifies that the search results display in the calling tab or the tab from the active browser. "NEW_TAB" Specifies that the search results display in a new tab.
chrome.devtools.recorder
Use the chrome.devtools.recorder API to customize the Recorder panel in DevTools. devtools.recorder API is a preview feature that allows you to extend the Recorder panel in Chrome DevTools. See DevTools APIs summary for general introduction to using
chrome.fontSettings
Use the chrome.fontSettings API to manage Chrome's font settings. To use the Font Settings API, you must declare the "fontSettings" permission in the extension manifest. For example: Chrome allows for some font settings to depend on certain generic
chrome.commands
Use the commands API to add keyboard shortcuts that trigger actions in your extension, for example, an action to open the browser action or send a command to the extension. The following keys must be declared in the manifest to use this API. The
chrome.documentScan
Use the chrome.documentScan API to discover and retrieve images from attached document scanners.
chrome.dom
Use the chrome.dom API to access special DOM APIs for Extensions Gets the open shadow root or the closed shadow root hosted by the specified element. If the element doesn't attach the shadow root, it will return null. HTMLElement object See
chrome.wallpaper
Use the chrome.wallpaper API to change the ChromeOS wallpaper. You must declare the "wallpaper" permission in the app's manifest to use the wallpaper API. For example: For example, to set the wallpaper as the image at https://example.com/a_file.png,
chrome.devtools.inspectedWindow
Use the chrome.devtools.inspectedWindow API to interact with the inspected window: obtain the tab ID for the inspected page, evaluate the code in the context of the inspected window, reload the page, or obtain the list of resources within the page.
chrome.desktopCapture
The Desktop Capture API captures the content of the screen, individual windows, or individual tabs. Enum used to define set of desktop media sources used in chooseDesktopMedia(). "screen" "window" "tab" "audio" Mirrors SelfCapturePreferenceEnum.
chrome.dom
Use the chrome.dom API to access special DOM APIs for Extensions Gets the open shadow root or the closed shadow root hosted by the specified element. If the element doesn't attach the shadow root, it will return null. HTMLElement object See
chrome.pageAction
Use the chrome.pageAction API to put icons in the main Google Chrome toolbar, to the right of the address bar. Page actions represent actions that can be taken on the current page, but that aren't applicable to all pages. Page actions appear grayed
chrome.system.memory
The chrome.system.memory API. number The amount of available capacity, in bytes. number The total amount of physical memory capacity, in bytes. Get physical memory information. function optional The callback parameter looks like: MemoryInfo
chrome.types
The chrome.types API contains type declarations for Chrome. The ChromeSetting type provides a common set of functions ( get(), set(), and clear() ) as well as an event publisher ( onChange ) for settings of the Chrome browser. The proxy
chrome.accessibilityFeatures
Use the chrome.accessibilityFeatures API to manage Chrome's accessibility features. This API relies on the ChromeSetting prototype of the type API for getting and setting individual accessibility features. In order to get feature states the extension
chrome.system.storage
Use the chrome.system.storage API to query storage device information and be notified when a removable storage device is attached and detached. "success" The ejection command is successful -- the application can prompt the user to remove the device.
chrome.contextMenus
Use the chrome.contextMenus API to add items to Google Chrome's context menu. You can choose what types of objects your context menu additions apply to, such as images, hyperlinks, and pages. You must declare the "contextMenus" permission in your
chrome.contextMenus
Use the chrome.contextMenus API to add items to Google Chrome's context menu. You can choose what types of objects your context menu additions apply to, such as images, hyperlinks, and pages. Context menu items can appear in any document (or frame
chrome.proxy
Use the chrome.proxy API to manage Chrome's proxy settings. This API relies on the ChromeSetting prototype of the type API for getting and setting the proxy configuration. You must declare the "proxy" permission in the extension manifest to use the
chrome.dns
Use the chrome.dns API for dns resolution. To use this API, you must declare the "dns" permission in the manifest. The following code calls resolve() to retrieve the IP address of example.com. service-worker.js: string optional A string representing
chrome.events
The chrome.events namespace contains common types used by APIs dispatching events to notify you when something interesting happens. An Event is an object that lets you be notified when something interesting happens. Here's an example of using the
chrome.fileSystemProvider
Use the chrome.fileSystemProvider API to create file systems, that can be accessible from the file manager on Chrome OS. You must declare the "fileSystemProvider" permission and section in the extension manifest to use the File System Provider API.
chrome.sessions
Use the chrome.sessions API to query and restore tabs and windows from a browsing session. string The name of the foreign device. Session [] A list of open window sessions for the foreign device, sorted from most recently to least recently modified
chrome.contentSettings
Use the chrome.contentSettings API to change settings that control whether websites can use features such as cookies, JavaScript, and plugins. More generally speaking, content settings allow you to customize Chrome's behavior on a per-site basis
chrome.printerProvider
The chrome.printerProvider API exposes events used by print manager to query printers controlled by extensions, to query their capabilities and to submit print jobs to these printers. string optional Printer's human readable description. string
chrome.topSites
Use the chrome.topSites API to access the top sites (i.e. most visited sites) that are displayed on the new tab page. These do not include shortcuts customized by the user. You must declare the "topSites" permission in your extension's manifest to
chrome.omnibox
The omnibox API allows you to register a keyword with Google Chrome's address bar, which is also known as the omnibox. When the user enters your extension's keyword, the user starts interacting solely with your extension. Each keystroke is sent to
chrome.devtools.recorder
Use the chrome.devtools.recorder API to customize the Recorder panel in DevTools. See DevTools APIs summary for general introduction to using Developer Tools APIs. devtools.recorder API is a preview feature that allows you to extend the Recorder
chrome.tabGroups
Use the chrome.tabGroups API to interact with the browser's tab grouping system. You can use this API to modify and rearrange tab groups in the browser. To group and ungroup tabs, or to query what tabs are in groups, use the chrome.tabs API. The
chrome.loginState
Use the chrome.loginState API to read and monitor the login state. "SIGNIN_PROFILE" Specifies that the extension is in the signin profile. "USER_PROFILE" Specifies that the extension is in the user profile. "UNKNOWN" Specifies that the session state
chrome.events
The chrome.events namespace contains common types used by APIs dispatching events to notify you when something interesting happens. An Event is an object that allows you to be notified when something interesting happens. Here's an example of using
chrome.system.cpu
Use the system.cpu API to query CPU metadata. string The architecture name of the processors. string[] A set of feature codes indicating some of the processor's capabilities. The currently supported codes are "mmx", "sse", "sse2", "sse3", "ssse3",
chrome.history
Use the chrome.history API to interact with the browser's record of visited pages. You can add, remove, and query for URLs in the browser's history. To override the history page with your own version, see Override Pages. You must declare the
chrome.proxy
Use the chrome.proxy API to manage Chrome's proxy settings. This API relies on the ChromeSetting prototype of the type API for getting and setting the proxy configuration. You must declare the "proxy" permission in the extension manifest to use the
chrome.fileBrowserHandler
Use the chrome.fileBrowserHandler API to extend the Chrome OS file browser. For example, you can use this API to enable users to upload files to your website. The ChromeOS file browser comes up when the user either presses Alt+Shift+M or connects an
chrome.alarms
Use the chrome.alarms API to schedule code to run periodically or at a specified time in the future. To use the chrome.alarms API, declare the "alarms" permission in the manifest: To ensure reliable behavior, it is helpful to understand how the API
chrome.dns
Use the chrome.dns API for dns resolution. To use this API, you must declare the "dns" permission in the manifest. The following code calls resolve() to retrieve the IP address of example.com. service-worker.js: string optional A string representing
chrome.system.storage
Use the chrome.system.storage API to query storage device information and be notified when a removable storage device is attached and detached. "success" The ejection command is successful -- the application can prompt the user to remove the device.
chrome.topSites
Use the chrome.topSites API to access the top sites (i.e. most visited sites) that are displayed on the new tab page. These do not include shortcuts customized by the user. You must declare the "topSites" permission in your extension's manifest to
chrome.power
Use the chrome.power API to override the system's power management features. Using this API, you can specify the Level to which power management is disabled. The "system" level keeps the system active, but allows the screen to be dimmed or turned
chrome.omnibox
The omnibox API allows you to register a keyword with Google Chrome's address bar, which is also known as the omnibox. When the user enters your extension's keyword, the user starts interacting solely with your extension. Each keystroke is sent to
chrome.idle
Use the chrome.idle API to detect when the machine's idle state changes. You must declare the "idle" permission in your extension's manifest to use the idle API. For example: "active" "idle" "locked" Gets the time, in seconds, it takes until the
chrome.instanceID
Use chrome.instanceID to access the Instance ID service. Resets the app instance identifier and revokes all tokens associated with it. function optional The callback parameter looks like: Promise<void> Promises are only supported for Manifest
chrome.devtools.network
Use the chrome.devtools.network API to retrieve the information about network requests displayed by the Developer Tools in the Network panel. The following keys must be declared in the manifest to use this API. See DevTools APIs summary for general
chrome.accessibilityFeatures
Use the chrome.accessibilityFeatures API to manage Chrome's accessibility features. This API relies on the ChromeSetting prototype of the type API for getting and setting individual accessibility features. In order to get feature states the extension
chrome.printerProvider
The chrome.printerProvider API exposes events used by print manager to query printers controlled by extensions, to query their capabilities and to submit print jobs to these printers. string optional Printer's human readable description. string
chrome.instanceID
Use chrome.instanceID to access the Instance ID service. Resets the app instance identifier and revokes all tokens associated with it. function optional The callback parameter looks like: Promise<void> Promises are supported in Manifest V3 and
chrome.processes
Use the chrome.processes API to interact with the browser's processes. number The part of the cache that is utilized, in bytes. number The size of the cache, in bytes. number optional The most recent measurement of the process's CPU usage, expressed
chrome.platformKeys
Use the chrome.platformKeys API to access client certificates managed by the platform. If the user or policy grants the permission, an extension can use such a certficate in its custom authentication protocol. E.g. this allows usage of platform
chrome.search
Use the chrome.search API to search via the default provider. "CURRENT_TAB" Specifies that the search results display in the calling tab or the tab from the active browser. "NEW_TAB" Specifies that the search results display in a new tab.
chrome.tts
Use the chrome.tts API to play synthesized text-to-speech (TTS). See also the related ttsEngine API, which allows an extension to implement a speech engine. Chrome provides native support for speech on Windows (using SAPI 5), Mac OS X, and ChromeOS,
chrome.alarms
Use the chrome.alarms API to schedule code to run periodically or at a specified time in the future. To use the chrome.alarms API, declare the "alarms" permission in the manifest: The following examples show how to use and respond to an alarm. To try
chrome.types
The chrome.types API contains type declarations for Chrome. The ChromeSetting prototype provides a common set of functions ( get(), set(), and clear() ) as well as an event publisher ( onChange ) for settings of the Chrome browser. The proxy
chrome.fileBrowserHandler
Use the chrome.fileBrowserHandler API to extend the Chrome OS file browser. For example, you can use this API to enable users to upload files to your website. The ChromeOS file browser comes up when the user either presses Alt+Shift+M or connects an
chrome.i18n
Use the chrome.i18n infrastructure to implement internationalization across your whole app or extension. You need to put all of its user-visible strings into a file named messages.json. Each time you add a new locale, you add a messages file under a
chrome.history
Use the chrome.history API to interact with the browser's record of visited pages. You can add, remove, and query for URLs in the browser's history. To override the history page with your own version, see Override Pages. To interact with the user's
chrome.idle
Use the chrome.idle API to detect when the machine's idle state changes. You must declare the "idle" permission in your extension's manifest to use the idle API. For example: "active" "idle" "locked" Gets the time, in seconds, it takes until the
chrome.tabCapture
Use the chrome.tabCapture API to interact with tab media streams. The chrome.tabCapture API lets you access a MediaStream containing video and audio of the current tab. It can only be called after the user invokes an extension, such as by clicking
chrome.webAuthenticationProxy
The chrome.webAuthenticationProxy API lets remote desktop software running on a remote host intercept Web Authentication API (WebAuthn) requests in order to handle them on a local client. string The PublicKeyCredentialCreationOptions passed to
chrome.system.cpu
Use the system.cpu API to query CPU metadata. string The architecture name of the processors. string[] A set of feature codes indicating some of the processor's capabilities. The currently supported codes are "mmx", "sse", "sse2", "sse3", "ssse3",
chrome.extensionTypes
The chrome.extensionTypes API contains type declarations for Chrome extensions. The origin of injected CSS. "author" "user" Details of the CSS to remove. Either the code or the file property must be set, but both may not be set at the same time.
chrome.extensionTypes
The chrome.extensionTypes API contains type declarations for Chrome extensions. The origin of injected CSS. "author" "user" Details of the CSS to remove. Either the code or the file property must be set, but both may not be set at the same time.
Skip review for eligible changes
An overview of expedited review for Declarative Net Request changes.
Extensions / Get started
All the basics to get started with Chrome extensions
Manifest - Minimum Chrome Version
Reference documentation for the minimum_chrome_version property of manifest.json.
Manifest - Trial tokens
Reference documentation for the trial_tokens property of manifest.json.
What's happening in Chrome Extensions?
An overview of the recent changes in Chrome Extensions, plus exciting upcoming extension features developers can look forward to.
Rollback a published Chrome Web Store item
How to rollback an extension that you previously published on the
Version rollbacks in the Chrome Web Store Developer Dashboard
This week we're excited to launch a new feature that lets developers roll back their extensions to the previous published version in the Chrome Web Store. Our goal is to give developers increased peace-of-mind when publishing updates, especially with
Additional Requirements for Manifest V3
Extensions using Manifest V3 must meet additional requirements related to the extension's code. Specifically, the full functionality of an extension must be easily discernible from its submitted code, unless otherwise exempt as noted in Section 2.
chrome.privacy
Use the chrome.privacy API to control usage of the features in Chrome that can affect a user's privacy. This API relies on the ChromeSetting prototype of the type API for getting and setting Chrome's configuration. You must declare the "privacy"
chrome.privacy
Use the chrome.privacy API to control usage of the features in Chrome that can affect a user's privacy. This API relies on the ChromeSetting prototype of the type API for getting and setting Chrome's configuration. You must declare the "privacy"
Extensions / How to
Solve common development tasks around Chrome extensions
Make your extension accessible
For many users, accessibility literally is the user interface, and its features are useful to many others.
Internationalize the interface
Use the chrome.i18n API to render your interface in multiple languages.
Chrome Extensions: eyeo's journey to testing service worker suspension
In this post, the eyeo team shares their journey into the problem of testing extension service workers. In particular, how to to make sure that their Chrome Extensions works correctly when a service worker gets suspended.
Mature & Sexually Explicit Material
We don't allow content that contains nudity, graphic sex acts, sexually explicit material, or content that drives traffic to commercial pornography sites. We also don't allow content that promotes incest, bestiality, necrophilia, or non-consensual
chrome.location
The chrome.location API is no longer supported. We recommend using open web alternatives such as the Geolocation API instead.
Configure extension icons
An extension requires at least one icon to represent it in the toolbar.
Migrate to Manifest V3
A guide to converting Manifest V2 extensions to Manifest V3 extensions.
Use WebHID
The WebHID API, which exposes Human Interface Device (HID) compatible devices to the web, is available in extensions.
Use WebUSB
The WebUSB API, which exposes non-standard Universal Serial Bus (USB) compatible devices to the web, is available in extensions.
Manifest - Content Security Policy
Reference documentation for the content security policy properties of manifest.json.
Register your developer account
How to register as a Chrome Web Store developer.
Trader/Non-Trader developer identification and verification
Developer's requirement to disclose and verify their trader/non-trader status.
Extensions / Samples
Samples Explore samples from the Chrome Extension samples repository. Use these to learn how extensions work or as starting points for building your own extensions. action.disable action.enable action.getBadgeBackgroundColor action.getBadgeText
chrome.runtime
Use the chrome.runtime API to retrieve the service worker, return details about the manifest, and listen for and respond to events in the extension lifecycle. You can also use this API to convert the relative path of URLs to fully-qualified URLs.
Permissions
A list of permissions and user warnings available on the extensions platform.
Use Web Push
Step by step guide on how to use Web Push with Chrome Extensions
Declare permissions
An overview of the valid values for the permissions property in manifest.json.
Permission warning guidelines
How permission warnings work in Chrome extensions.
Program Policies
The Web Store program policies.
Respond to commands
Respond to custom key combinations in an extension.
What's happening in Chrome Extensions?
An overview of the recent changes in Chrome Extensions, plus exciting upcoming extension features developers can look forward to.
Trigger actions from the omnibox
Trigger actions from the omnibox.
Use Firebase Cloud Messaging (FCM) with chrome.gcm
Step by step guide on how to use Firebase Messaging with chrome.gcm
Implement an action
Respond to a user clicking the toolbar.
Real-time Updates in Extensions
Managing real-time updates in Extensions
Build a context menu
Implement a popup, which is a window that lets users invoke extension features.
Deal with remote hosted code violations
A service worker enables extensions to run only when needed, saving resources.
Add a popup
Implement a popup, which is a window that lets users invoke extension features.
Distribute your extension
How to host your Chrome extension.
Extensions / Reference
Reference for the extensions manifest, related permissions and APIs
Extensions / Manifest V3
Manifest V3 Manifest V3 is the latest version of the extensions platform. We have made a number of changes to the available APIs and added a number of new features. Manifest V3 aims to be the first step in our platform vision to improve the privacy,
chrome.webstore
As of 06/12/2018, inline installation is deprecated. For more information, read our Chromium Blog post and Migration FAQ.
User interface components
A catalog of user interface elements available in extensions.
Resuming the transition to Manifest V3
In December of last year, we paused the planned deprecation of Manifest V2 in order to address developer feedback and deliver better solutions to migration issues. As a result of this feedback, we’ve made a number of changes to Manifest V3 to close
Improving content filtering in Manifest V3
Over the past year, we have been actively involved in discussions with the vendors behind several content blocking extensions around ways to improve the MV3 extensions platform. Based on these discussions, many of which took place in the
What's new in Chrome 120 for Extensions
A summary of important changes in Chrome 120 for Chrome Extension developers.
File handling on Chrome OS
How to open files in Chrome extension service workers, popups, side panels, or content scripts.
file_handlers
Reference documentation for the file_handlers property of manifest.json.
What's happening in Chrome Extensions?
An overview of the recent changes in Chrome Extensions, plus exciting upcoming extension features developers can look forward to.
Set up your developer account
How to set up your Chrome Web Store developer account.
Prepare your extension
Prepare your extension files.
Unit testing Chrome Extensions
How to write unit tests for extensions.
Test Chrome Extensions with Puppeteer
How to write an automated test for Chrome Extensions using Puppeteer.
End-to-end testing for Chrome Extensions
How to write end-to-end tests for extensions.
Submit a feature request
Submit a request for a feature that you believe could improve the extension platform.
Find and follow a bug
Check whether a bug or feature request has already been reported.
Support and feedback
Give us feedback to help us improve the platform and fix its bugs.
File an extension bug
How to report extension bugs or problems with documentation.
DevTools Tips: Debugging Chrome extensions
Learn how to use DevTools to debug Chrome extensions.
Storage and cookies
Overview of how web storage APIs and cookies work in extensions.
Google Summer of Code and Chrome Extensions
Experience and advice on participating in Google Summer of Code.
Publish your extension
Guidance for publishing a new Manifest V3 extension
Bringing Safety check to the chrome://extensions page
Starting in Chrome 117, Chrome will proactively highlight to users when an extension they have installed is no longer in the Chrome Web Store.
Manifest - content scripts
Reference documentation for the "content_scripts" property of manifest.json.
Use your Google Analytics account with the Chrome Web Store
See analytics for your Chrome Web Store listing in addition to the metrics offered in the Developer Dashboard.
What's new in Chrome 116 for Extensions
A summary of important changes in Chrome 116 for Chrome Extension developers.
What's happening in Chrome Extensions?
An overview of the changes so far this year in Chrome Extensions, plus exciting upcoming extension features developers can look forward to.
Use WebSockets in service workers
Step-by-step instructions on how to connect to a WebSocket in your Chrome extension.
Use geolocation
How to use geolocation in Chrome extension service workers, popups, side panels, or content scripts.
Design a superior user experience with the new Side Panel API
Introducing the new Side Panel API for Chrome extensions.
Manifest - background
Reference documentation for the background property of manifest.json.
About extension service workers
Extension service workers are an extension's central event handler. That makes them different from web service workers.
Extension service worker basics
Extension service workers are installed and updated differently from web service workers.
The extension service worker lifecycle
Extension service workers respond to both standard service worker events and events in extension namespaces. They are presented together because often one type follows another during an extension's use.
Events in service workers
Extension service workers respond to both standard service worker events and many events in the extension APIs.
Audio recording and screen capture
How to record audio or video from a tab, window, or screen.
Handle events with service workers
Learn how to create and debug an extension service worker.
Replace blocking web request listeners
The second of three sections describing changes needed for code that is not part of the extension service worker.
Manifest V3 migration checklist
A quick reference for upgrading your extensions from Manifest V2 to Manifest V3.
Migrate to a service worker
A service worker enables extensions to run only when needed, saving resources.
Update your code
The first of three sections describing changes needed for code that is not part of the extension service worker.
Update the manifest
The manifest.json file requires a slightly different format for Manifest V3 than for Manifest V2.
Improve extension security
The last of three sections describing changes needed for code that is not part of the extension service worker.
Native messaging
Exchange messages with native applications from your Chrome Extension.
Get help with Chrome extensions
Where to go for help with questions not covered by the documentation.
Test service worker termination with Puppeteer
A guide explaining how to test service worker termination using Puppeteer.
Longer extension service worker lifetimes
Extension service workers can now stay alive as long as they're receiving events. This increases the reliability of extension services workers, but has a pitfall you should avoid.
Offscreen Documents in Manifest V3
Introducing the Offscreen Documents API for Chrome extension development.
Fetching favicons
How to get a website's favicon.
Affiliate Ads
Any affiliate program must be described prominently in the product's Chrome Web Store page, user interface, and before installation. Related user action is required before the inclusion of each affiliate code, link, or cookie. Some example violations
Chrome Web Store Policy Updates
Chrome is updating the Chrome Web Store's Developer Program Policies to clearly state our guiding principals, provide more context on enforcement, and make our policies easier to understand.
Affiliate Ads FAQ
Frequently asked questions about Chrome Web Store's policies on affiliate ads.
Chrome Extensions: Extending API to support Instant Navigation
The Extensions API has been updated to support back/forward cache, preloading navigations.
Manifest - oauth2
Reference documentation for the oauth2 property of manifest.json.
Chrome Web Store Policy Updates
Chrome is updating the Chrome Web Store's Developer Program Policies to clearly state our guiding principals, provide more context on enforcement, and make our policies easier to understand.
Misleading or Unexpected Behavior
We do not allow products that deceive or mislead users, including in the content, title, description, or screenshots. If any of your product's content, title, icon, description, or screenshots contains false or misleading information, we may remove
Spam and Abuse
We don't allow any developer, related developer accounts, or their affiliates to submit multiple extensions that provide duplicate experiences or functionality on the Chrome Web Store. Extensions should provide value to users through the creation of
Hate Speech and Violent Behavior
Depictions of gratuitous violence are not allowed. Products should not contain materials that threaten, harass, or bully other users. We don't allow content or products that advocating against or inciting hatred towards groups of people based on
Code Readability Requirements
Developers must not obfuscate code or conceal functionality of their extension. This also applies to any external code or resource fetched by the extension package. Minification is allowed, including the following forms: Removal of whitespace,
Privacy Policies
If your Product handles any user data, then you must post an accurate and up to date privacy policy. The privacy policy must, together with any in-Product disclosures, comprehensively disclose: How your Product collects, uses and shares user data All
Repeat Abuse
Serious or repeated violations of the Chrome Web Store Distribution Agreement or these Program Policies will result in the suspension of your developer account, and possibly related developer accounts. Additionally, you may be banned from using the
Enforcement Circumvention
Any attempt to circumvent intended limitations or enforcement actions will result in the immediate termination of your developer account, and possibly related developer accounts.
Disclosure Requirements
You must be transparent in how you handle user data (e.g., information provided by a user or collected about a user or a user's use of the Product or Chrome Browser), including by disclosing the collection, use, and sharing of the data. If your
Handling Requirements
If your product is associated with a security vulnerability that could be exploited to compromise another application, service, browser, or system, we may remove your product from the Chrome Web Store and take other measures to protect users. In such
Limited Use
This policy establishes the Chrome Web Store's minimum user data privacy requirements; you or your Product must comply with applicable laws. You must limit your use of the data to the practices you disclosed. Collection and use of web browsing
Malicious and Prohibited Products
Don't transmit viruses, worms, defects, Trojan horses, malware, or any other products of a destructive nature. We don't allow content that harms or interferes with the operation of the networks, servers, or other infrastructure of Google or any
Notification and appeals
In the event that your Product is removed from the Chrome Web Store, you will receive an email notification to that effect, with further instructions if applicable. Verify that the associated publisher account with your Product can receive emails
2-Step Verification
To ensure the security of Chrome Web Store accounts, 2-Step Verification is required for all developer accounts prior to publishing an extension or updating an existing extension. Developers can activate 2-Step Verification for their Google accounts
Impersonation & Intellectual Property
Don't pretend to be someone else, and don't represent that your product is authorized by, endorsed by, or produced by another company or organization, if that is not the case. Your Product and its user experience also must not mimic functionality or
Minimum Functionality
Do not post an extension with a single purpose of installing or launching another app, theme, webpage, or extension. Extensions with broken functionality—such as dead sites or non-functioning features—are not allowed. Extensions must provide a basic
Accepting Payment From Users
If you collect sensitive personal information through your Product for sales, you must follow these requirements: You must securely collect, store, and transmit all credit card and other sensitive personal information in accordance with privacy and
API Use
Extensions must use existing Chrome APIs for their designated use case. Use of any other method, for which an API exists, would be considered a violation. For example, overriding the Chrome New Tab Page through any means other than the URL Overrides
Use of Permissions
Request access to the narrowest permissions necessary to implement your Product's features or services. If more than one permission could be used to implement a feature, you must request those with the least access to data or functionality. Don't
Ads
Ads are considered part of your Product for purposes of content review and compliance with developer terms, and therefore must comply with the above content policies. Ads which are inconsistent with the content rating of your products or extension
Regulated goods and services
Don't engage in or promote unlawful activities in your product, such as rape, illegal sex work, or the sale of prescription drugs without a prescription. We will remove content which promotes, glorifies, or encourages dangerous or illegal activity
Chrome Apps
To ensure a great user experience, Chrome Apps distributed through the Chrome Web Store must follow the additional quality guidelines listed below. The guidelines in this section apply only to Chrome Apps. Packaged apps should: Take advantage of the
Featured Products
The Chrome Web Store features products that align with our standards, values, and that we believe will produce valuable user experiences. Certain products that don't meet these standards, but which do not explicitly violate Chrome Web Store
Manifest - input_components
Reference documentation for the input_components property of manifest.json.
A new way to start your Chrome Extension development journey
A better way to start the Chrome developer learning journey.
Inject scripts into the active tab
Learn how to simplify the style of the current page.
Manage tabs
Learn how to programmatically organize tabs using tab groups.
Hello World extension
Create your first Hello World Chrome extension.
Run scripts on every page
Learn how to automatically add new elements to existing webpages.
Manifest - Author
Reference documentation for the author name property of manifest.json.
More details on the transition to Manifest V3
New details about the plan to move extensions to Manifest V3
Known issues when migrating to Manifest V3
Recently, we announced changes to the Manifest V2 deprecation timeline, and while we remain firmly committed to Manifest V3 we acknowledge there is more work to do on our part. We are committed to closing the following gaps before announcing a new
Revamping Analytics in the Chrome Web Store Developer Dashboard
Google is rolling out a revamped item analytics experience for the Chrome Web Store Developer Dashboard. The new dashboard is easier to understand at a glance and consolidates the most useful information upfront.
Discovery on the Chrome Web Store
An overview of how users find items on the Chrome Web Store, and how our editors select items to feature.
Chrome Web Store review process
An overview of the review process and how enforcement actions result from detected policy violations.
Chrome Web Store policy updates for Q3 2021
Updating our security requirements and further clarifying a few policies to keep the quality of extensions high, and the experience for developers consistent.
Manifest V2 support timeline
Details of the Manifest V2 phase-out and end of life.
The transition of Chrome extensions to Manifest V3
Sharing details about the plan to move extensions to Manifest V3
Manage user feedback
Follow-up on reviews and provide user support in the Chrome Web Store.
Analyze your store listing metrics
Understanding metrics and performance of your Chrome Web Store store listing.
Check on your review status
How to check the review status of your Chrome Web Store item.
Cross-origin opener policy
Reference documentation for the cross_origin_opener_policy property of manifest.json.
Cross-origin isolation
Overview of cross-origin isolation for extensions
Cross-origin isolation
Overview of cross-origin isolation for extensions
Cross-origin embedder policy
Reference documentation for the cross_origin_embedder_policy property of manifest.json.
Cross-origin embedder policy
Reference documentation for the cross_origin_embedder_policy property of manifest.json.
Cross-origin opener policy
Reference documentation for the cross_origin_opener_policy property of manifest.json.
Enterprise publishing options
How to distribute extensions to enterprise users
Chrome extensions: clarifying our extension policies for a safer, more consistent web store
Updating our security requirements and further clarifying a few policies to keep the quality of extensions high, and the experience for developers consistent.
Extension actions in Manifest V3
Chrome extensions had Browser and Page Actions APIs for years, but Manifest V3 replaced both with a generic Actions API. This post explores the history of these APIs and what has changed in Manifest V3.
Introducing chrome.scripting
The Scripting API is a new Manifest V3 API focused on, well, scripting. Let's dig into the motivations for this change and how it's different.
Extension Manifest Converter
Open source tool to convert extensions to Manifest V3. You'll still need to manually update any code with non-mechanical changes, such as adapting to use service workers or some script injection.
Web Accessible Resources for Manifest V3
Web Accessible Resources for Manifest V3 is here! Now `manifest.json` supports permission definitions. Developers can restrict resources based on the requesting site origin or extension id.
Prepare to publish: set up payment and distribution
How to choose which countries will list your item and who will see it in the Chrome Web Store.
Complete your listing information
How to add listing information for your Chrome Web Store item.
Update your Chrome Web Store item
How to update an extension or theme ("item") that you previously published on the Chrome Web Store.
Troubleshooting Chrome Web Store violations
Guidelines for understanding why an item was rejected or removed from the Chrome Web Store and how to fix the problem.
About Manifest V2
Documentation for Chrome extensions developers.
Chrome Web Store payments deprecation
Why the payments is deprecated, details about the deprecation timeline, and more.
Deleting Chrome Web Store developer accounts
How to delete a developer or group publisher account on the Chrome Web Store.
Set up a group publisher
How to share ownership of your Chrome Web Store items with other developers.
Fill out the privacy fields
Use the privacy practices tab to help the Chrome Web Store team review your extension as quickly as possible.
Spam policy FAQ
Frequently asked questions about Chrome Web Store's spam policy.
User controls for host permissions: transition guide
Guidelines for updating your Extensions to handle the runtime host permission changes starting in Chrome 70.
Inline-installation deprecation migration FAQ
Frequently asked questions about the deprecation of inline installations for Chrome Extensions.
Supplying Images
Guidelines about the kinds of images you need to supply to the Chrome Web Store.
Branding Guidelines
Guidelines for use of Google trademarks.
Migrate to event-driven background scripts
How to migrate a persistent background script to an event-based, non-persistent model to improve the performance of your Chrome Extension.
Reach peak performance
Guidelines on how to build a high-performance Chrome Extension.
Protect user privacy
Guidelines for ensuring that your Chrome Extension protects user privacy.
Protect user privacy
Guidelines for ensuring that your Chrome Extension protects user privacy.
Design the user interface
UI and design guidelines for Chrome Extensions.
Stay secure
How to keep your Chrome Extension secure.
Stay secure
How to keep your Chrome Extension secure.
Self-host for Linux
How to package, host, and update crx files from a personal server for Linux users.
Installing extensions on Linux
How to package, host, and update crx files from a personal server.
Best Practices
How to create a high-quality extension and Chrome Web store listing.
Trader FAQ: Chrome Web Store
Frequently asked questions about Chrome Web Store's user data policy.
Updated Privacy Policy & Secure Handling Requirements
Frequently asked questions about Chrome Web Store's user data policy.
event_rules
Reference documentation for the event_rules property of manifest.json.
event_rules
Reference documentation for the event_rules property of manifest.json.
Media Source Extensions for Audio
Media Source Extensions (MSE) provide extended buffering and playback control for the HTML5 audio and video elements. While originally developed to facilitate Dynamic Adaptive Streaming over HTTP (DASH) based video players, MSE can be used for audio; specifically for gapless playback.
What is the Chrome Web Store?
An explanation of the Chrome Web Store and why you might want to use it.
Shared modules
How to share code between Chrome Extensions.
Shared modules
How to share code between Chrome Extensions.
Use the Notifications API
Show notifications to Chrome Extension users.
Rich notifications API
How to show notifications to your Chrome Extension users.
Chrome 33 Hosting Changes
Details about the hosting changes for Chrome Extensions that started in version 33 of Chrome.
Publish in the Chrome Web Store
How to publish a new extension or theme to the Chrome Web Store.
Google Chrome Web Store Developer Agreement
The legal agreement governing the relationship between Chrome Web Store developers and the Chrome Web Store.
Content Ratings Guidelines
Guidelines about how the Chrome Web Store rates the maturity of content.
Getting started
Step-by-step instructions on how to create a Chrome Extension.
Frequently asked questions
Frequently asked questions about Chrome Extensions.
Tutorial: Migrate to Manifest V2
Guidelines on how to migrate from manifest v1 to manifest v2.
chrome.location
Reference documentation for the chrome.location API.
Overriding Chrome settings
How to override Chrome settings from a Chrome Extension.
Overriding Chrome settings
How to override Chrome settings from a Chrome Extension.
Manifest for managed storage
Reference documentation for the storage property of manifest.json.
Manifest for storage areas
Reference documentation for the storage property of manifest.json.
externally_connectable
Reference documentation for the externally_connectable property of manifest.json.
externally_connectable
Reference documentation for the externally_connectable property of manifest.json.
Manifest - Name and Short Name
Reference documentation for the name and short_name properties of manifest.json.
Manifest - Icons
Reference documentation for the icons property of manifest.json.
Manifest - Sandbox
Reference documentation for the sandbox property of manifest.json.
Manifest - Sandbox
Reference documentation for the sandbox property of manifest.json.
Manifest - Nacl Modules
Reference documentation for the nacl_modules property of manifest.json.
Manifest - Incognito
Reference documentation for the incognito property of manifest.json.
Manifest - Requirements
Reference documentation for the requirements property of manifest.json.
Manifest - Description
Reference documentation for the description property of manifest.json.
Manifest - Homepage Url
Reference documentation for the homepage_url property of manifest.json.
Manifest - short_name
Reference documentation for the short_name property of manifest.json.
Manifest - Key
Reference documentation for the key property of manifest.json.
Manifest - Incognito
Reference documentation for the incognito property of manifest.json.
Manifest - Web Accessible Resources
Reference documentation for the web_accessible_resources property of manifest.json.
Manifest - name
Reference documentation for the name property of manifest.json.
Manifest - Web Accessible Resources
Reference documentation for the web_accessible_resources property of manifest.json.
Manifest - Minimum Chrome Version
Reference documentation for the minimum_chrome_version property of manifest.json.
Manifest - Homepage Url
Reference documentation for the homepage_url property of manifest.json.
Manifest - key
Reference documentation for the key property of manifest.json.
Manifest - Offline Enabled
Reference documentation for the offline_enabled property of manifest.json.
Manifest - Icons
Reference documentation for the icons property of manifest.json.
Manifest - Requirements
Reference documentation for the requirements property of manifest.json.
Manifest - Version
Reference documentation for the version property of manifest.json.
Manifest Version
Reference documentation for the manifest_version property of manifest.json.
Manifest - Default Locale
Reference documentation for the default_locale property of manifest.json.
Manifest V2 - Version [Deprecated]
Reference documentation for the version property of manifest.json.
Manifest - Default Locale
Reference documentation for the default_locale property of manifest.json.
Manifest - Description
Reference documentation for the description property of manifest.json.
What are extensions?
An overview of the purpose of Chrome Extensions and how they're developed.
Declare permissions
An overview of the valid values for the permissions property in manifest.json.
The "activeTab" permission
How to use the activeTab permission in your Chrome Extension.
The activeTab permission
How to use the activeTab permission in your Chrome Extension.
What are themes?
Guidelines on how to create a theme.
OAuth 2.0: authenticate users with Google
Step-by-step instructions on how to build an extension that accesses a user's Google contacts via the Google People API, the Chrome Identity API, and OAuth2.
Overriding Chrome pages
How to override the Chrome bookmark manager, history, and new tab pages from your Chrome Extension.
Match patterns
How host permission and content script pattern matching works, with examples.
Debugging extensions
Step-by-step instructions on how to debug Chrome Extensions.
Tutorial: Google analytics
Step-by-step instructions on how to track usage of your Extension with Google Analytics.
Declare permissions and warn users
How to implement permissions to protect your users and your Extension.
Debug extensions
Instructions for debugging Chrome Extensions.
Using eval in Chrome extensions
How to use eval() in a Chrome Extension.
Message passing
How to pass messages between extensions and content scripts.
Architecture overview
A high-level explanation of the software architecture of Chrome Extensions.
Use eval() in sandboxed iframes
How to use eval() in a Chrome Extension.
Cross-origin network requests
Implement cross-origin network requests in your Chrome Extension.
Manifest file format
An overview of the manifest.json properties that you can use in your Chrome Extension.
Give users options
How to let users customize your Extension.
Message passing
How to pass messages between extensions and content scripts.
Manifest version
The manifest_version property of manifest.json indicates which version of the manifest specification a Chrome Extension targets.
Use Google Analytics 4
Step-by-step instructions on how to track usage of your Extension with Google Analytics 4.
OAuth2: Authenticate users with Google
Step-by-step instructions on how to build an extension that accesses a user's Google contacts via the Google People API, the Chrome Identity API, and OAuth2.
Cross-origin XMLHttpRequest
How to implement cross-origin XHR in your Chrome Extension.
Give users options
How to let users customize your extension.
Match patterns
Understanding URL match patterns in Chrome extensions.
Localization message formats
Reference documentation about the format of the messages.json file for Chrome Extensions.
What are themes?
Guidelines on how to create a theme.
Localization message formats
Reference documentation about the format of the messages.json file for Chrome Extensions.
Manifest file format
An overview of the manifest.json properties of a Chrome Extension.
Override Chrome pages
How to override the Chrome bookmark manager, history, and new tab pages from your Chrome Extension.
Chrome Web Store
How to host your extension in the Chrome Web Store and update an extension that's hosted in the Chrome Web Store.
Extending DevTools
How to create a Chrome Extension that adds functionality to Chrome DevTools.
Accessibility (a11y)
How to make your Manifest V2 Chrome Extension accessible.
Manage events with background scripts
How to respond to browser triggers (events) from a Chrome Extension background script.
Use alternative installation methods
How to install Chrome Extensions using preferences JSON or Windows registry.
Rich notifications with webKit
How to implement notifications in your Chrome Extension.
Support accessibility
How to make your Chrome Extension accessible.
Alternative extension distribution options
How to distribute Chrome Extensions outside of the Chrome Web Store.
Extension development overview
An overview of Chrome Extension capabilities and components.
Content scripts
An explanation of content scripts and how to use them in your Chrome Extension.
Content scripts
An explanation of content scripts and how to use them in your Chrome Extension.
Extend DevTools
How to create a Chrome Extension that adds features to Chrome DevTools.