
প্রোজেক্ট ফুগু এপিআই শোকেস
Artificial Intelligence
AI on Chrome Welcome to the next era of the web with AI. See how AI can make it easier for developers to build powerful experiences on the web. Reimagine what's possible with Gemini Nano in Chrome. Built-in AI We're bringing Gemini Nano, the most
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.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.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.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
Debug Gemini Nano
There's a special Chrome-internal page to see details on prompts to Gemini Nano. This guide explains how make use of it for debugging.
Prepare for Chrome on Android going edge-to-edge
Chrome on Android is going edge-to-edge from Chrome 135.
Chrome on Android edge-to-edge migration guide
Build edge-to-edge web experiences
Samples
Samples for Chrome Extensions are available on GitHub.
Manifest - Sandbox
Warning: Starting in version 57, Chrome will no longer allow external web content (including embedded frames and scripts) inside sandboxed pages. Please use a webview instead. Defines an collection of app or extension pages that are to be served in a
Use the Chrome Web Store Publish API
How to programmatically create, update, and publish items in the Chrome Web Store.
Disabled Web Features
Though Chrome Apps use the web platform, some web features have been disabled or else are used in a different way. Mainly this is to avoid security issues and to improve programming practices. Below is a summary of the disabled features of the web
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
Manifest - Version
One to four dot-separated integers identifying the version of this extension. A couple of rules apply to the integers: they must be between 0 and 65535, inclusive, and non-zero integers can't start with 0. For example, 99999 and 032 are both invalid.
Manifest - Nacl Modules
One or more mappings from MIME types to the Native Client module that handles each type. For example, the bold code in the following snippet registers a Native Client module as the content handler for the OpenOffice spreadsheet MIME type. The value
Manifest for storage areas
Unlike the local and sync storage areas, the managed storage area requires its structure to be declared as JSON Schema and is strictly validated by Chrome. This schema must be stored in a file indicated by the "managed_schema" property of the
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
Manifest - Minimum Chrome Version
The version of Chrome that your extension, app, or theme requires, if any. The format for this string is the same as for the version field.
Manifest - Key
This value can be used to control the unique ID of an extension, app, or theme when it is loaded during development. To get a suitable key value, first install your extension from a.crx file (you may need to upload your extension or package it
Manifest - Description
A plain text string (no HTML or other formatting; no more than 132 characters) that describes the extension. The description should be suitable for both the browser's extension management UI and the Chrome Web Store. You can specify locale-specific
Manifest - Offline Enabled
Whether the app or extension is expected to work offline. When Chrome detects that it is offline, apps with this field set to true will be highlighted on the New Tab page. As of Chrome 35, apps are assumed to be offline enabled and the default value
workbox-streams
RouteHandlerCallbackOptions StreamSource | Promise< StreamSource > Response ReadableStream BodyInit Takes multiple source Promises, each of which could resolve to a Response, a ReadableStream, or a BodyInit. Returns an object exposing a
Manifest File Format
Every app has a JSON -formatted manifest file, named manifest.json, that provides important information. The following code shows the supported manifest fields for Apps, with links to the page that discusses each field.
externally_connectable
The externally_connectable manifest property declares which extensions, apps, and web pages can connect to your app via runtime.connect and runtime.sendMessage. For a tutorial on message passing see cross-extension and app messaging and sending
Policies
Extension policies
Manifest - Requirements
Technologies required by the app or extension. Hosting sites such as the Chrome Web Store may use this list to dissuade users from installing apps or extensions that will not work on their computer. Supported requirements currently include "3D" and
Publish Your App
TODO
Manifest - Default Locale
Specifies the subdirectory of _locales that contains the default strings for this extension. This field is required in extensions that have a _locales directory; it must be absent in extensions that have no _locales directory. For details, see
Manifest Version
One integer specifying the version of the manifest file format your package requires. As of Chrome 18, developers should specify 2 (without quotes) to use the format as described by this document: Consider manifest version 1 deprecated as of Chrome
Manifest - Name and Short Name
The name and short_name manifest properties are short, plain text strings that identify the app. You can specify locale-specific strings for both fields; see Internationalization for details. The name (maximum of 45 characters) is the primary
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.
Manifest - Icons
One or more icons that represent the extension, app, or theme. You should always provide a 128x128 icon; it's used during installation and by the Chrome Web Store. Extensions should also provide a 48x48 icon, which is used in the extensions
Browser support
An overview of Custom Tab features and their browser availability.
Advance network analysis with Chrome DevTools
Advance network analysis with Chrome DevTools.
Popover = hint
Discover the new mode for popover that simplifies tooltips and other floating elements.
What's New in WebGPU (Chrome 134)
Improve machine-learning workloads with subgroups, shader compilation time improvements on D3D12, remove float filterable texture types support as blendable, and more.
How NRK uses scroll-driven animations to bring stories to life
Learn how scroll-driven and scroll-triggered animations enhance storytelling articles
Privacy and security
Learn about Chrome's privacy and security features.
chrome.app.runtime
Use the chrome.app.runtime API to manage the app lifecycle. The app runtime manages app installation, controls the event page, and can shut down the app at anytime. any optional Optional developer specified data that the app to be embedded can use
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.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.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.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
Extensions and AI
Learn how to develop extensions with AI
Chrome Extensions
Learn how to develop Chrome extensions.
Discover Chrome
Discover Chrome Chrome 134, Beta Chrome 133 Chrome 132 Chrome 131 Chrome 130 Chrome 129 Chrome 128 Chrome 127 Chrome 126 Chrome 125 Chrome 124 Chrome 123 Chrome 122 Chrome 121 Chrome 120 Chrome 119 New in Chrome DevTools DevTools Tips Engineering
What's new in DevTools, Chrome 134
Privacy and security panel, calibrated CPU throttling, first- and third-party highlighting in Performance, new insights, and more.
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
Better text rendering in Chromium-based browsers on Windows
The Edge team added support for respecting the Windows ClearType Tuner values in Chromium directly, resulting in better text rendering in Chromium-based browsers on Windows.
How Google Search uses speculation rules
Learn about how Google Search used the Speculation Rules API to anonymously prefetch search results to improve user experience
Chrome for Developers
Helping you build, grow and innovate on the web.
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
How to use the CrUX BigQuery dataset
In this guide, learn how to use BigQuery to write queries against the CrUX dataset to extract insightful results about the state of user experiences on the web.
CrUX Tools
Technical documentation on CrUX tools.
Feedback and support
Receive support for the Chrome User Experience Report (CrUX).
Release notes
Details on the latest changes to the CrUX dataset.
LCP image subparts and RTT now available in CrUX
Learn about the change to the Chrome User Experience Report (CrUX changes) in the February 2025 release including LCP image subparts, LCP resource types, and RTT.
CrUX API
Learn how to construct requests to and parse responses from the CrUX API.
CrUX on BigQuery
Learn how the CrUX dataset on BigQuery is structured.
CrUX History API
Learn how to query the previous six months of historical CrUX trends using the CrUX History API.
Dimensions
Technical documentation on CrUX dimensions.
Metrics
Technical documentation on CrUX metrics.
Docs
Code samples, guides, and API reference you need for whatever you're building.
Get started with ChromeDriver
This page documents how to start using ChromeDriver for testing your website on desktop (Windows/Mac/Linux). You can also read Getting Started with Android or Getting Started with ChromeOS. ChromeDriver is a separate executable that Selenium
Enter picture-in-picture automatically when playing media
Chrome allows web apps playing media to automatically enter picture-in-picture.
Chrome 134 beta
Discover the latest features coming to Chrome.
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 133
CSS advanced attr(), text-box-trim, scroll-state container queries, and more.
New in Chrome 133
Chrome 133 is rolling out now! There's some exciting new CSS features and plenty more to discover.
Tabbed application mode for PWAs
Tabbed application mode allows Progressive Web App developers to add a tabbed document interface to their standalone PWAs.
Simplify authentication using Auth Tab
How to use specialized Auth Tab in your Android app
Improve web privacy for users with Ephemeral Custom Tabs
How to use Ephemeral Custom Tabs in your Android app
Enhance your users' browsing experience with App-specific history
How to use App Specific History in your Android app
Deepen user engagement with App-specific history in Chrome Custom Tabs
Introducing app specific history for Chrome Custom Tabs for Android
Improve your web-based sign-in flow with Auth Tab for Android
Improve web-based authentication with Auth Tab for Android
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
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
What's new in DevTools, Chrome 133
Persistent AI chat history, better navigation, ignore listing, and stack traces in Performance, new 'What's new' panel, and more.
What's New in WebGPU (Chrome 133)
Additional unorm8x4-bgra and 1-component vertex formats, allow unknown limits to be requested with undefined value, WGSL alignment rules changes, WGSL performance gains with discard, and much more.
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.
Best practices for session management with the Prompt API
This guide introduces best practices for session management with the Prompt API.
Release notes
Learn about changes to Chrome that affect developers
What's New in Chrome
What's New in Chrome Discover the latest updates in Chrome from our documentation and blog. New content and significant updates to documentation. article How LLMs stream responses New documentation to learn how streaming data works in AI, for the
Simplifying WebAuthn feature detection for passkeys
Discover how to detect WebAuthn capabilities with `getClientCapabilities()` and tailor authentication workflows for your users.
How LLMs stream responses
Understand what streaming is and how it works with AI and LLMs.
Best practices to render streamed LLM responses
Use these frontend best practices to display streamed responses from Gemini with APIs that support streaming, such as the Prompt API.
Translation with built-in AI
The built-in Translator API lets you translate arbitrary content from a source to a target language. Participate in the origin trial to take the API for a spin.
Freezing on Energy Saver
From Chrome 133, eligible CPU-intensive background tabs will be frozen when Energy Saver mode is active.
DevTools Tips
DevTools Tips
Media
Improve the way you include images, video, and more on your websites and web apps.
Passkeys on Google Password Manager are now available on iOS
Chrome on iOS 17 or later can now create, sync and authenticate with passkeys in Google Password Manager (GPM). This makes passkeys on GPM available everywhere Chrome is.
CSS scroll-state()
Like container queries; but for stuck, snapped, and overflowing queries.
CSS attr() gets an upgrade
You can now use attr() with any CSS property–including custom properties–and it can parse values into data types other than strings.
Chrome 133 beta
Learn about the latest features shipping in Chrome.
How we introduced Gemini to Chrome DevTools
Learn about fun and exciting use-cases of the new AI assistance panel in DevTools
New in Chrome 132
Chrome 132 is rolling out now! The Dialog element gets a ToggleEvent, support for element level video sharing, and the File System Access API supports Android and WebViews.
CSS text-box-trim
Take back space from above and below your text content; achieve optical balance.
Chrome 132
ToggleEvent for dialog, support for element level video sharing, and the File System Access API supports Android and WebViews, and more.
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
Web Platform
Learn how Chrome works, participate in origin trials, and build with Chrome everywhere.
Build with Chrome
See what's included in Chrome's latest stable and beta releases.
Winners of the Built-in AI Challenge
Discover the winning apps and extensions from the Built-in AI Challenge, where we invited you to reimagine what's possible with Gemini Nano in Chrome.
Capture a video stream from any element
The Element Capture API is a performant and robust way for transforming a capture of the current tab into a capture of a DOM subtree.
Support for the Web Vitals extension has ended
The merger of the Web Vitals extension and DevTools is complete and support for the extension has ended.
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.appviewTag
Use the appview tag to embed other Chrome Apps within your Chrome App. (see Usage ). object Optional developer specified data that the app to be embedded can use when making an embedding decision. string The ID of the app that sent the embedding
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
Mitigate clickjacking with XFO or CSP
Learn more about mitigating clickjacking attacks.
What's New in WebGPU (Chrome 132)
Texture view usage, 32-bit float textures blending, GPUDevice adapterInfo attribute, configuring canvas context with invalid format throw JavaScript error, filtering sampler restrictions on textures, extended subgroups experimentation, improving developer experience, experimental support for 16-bit normalized texture formats, and more.
Capabilities
Find out how to use Chrome's capabilities to build rich and engaging web experiences.
What's new in Chrome extensions
Recent changes to the Chrome extensions platform, documentation, and policy
ChromeOS
All ChromeOS test images have ChromeDriver binary installed in /usr/local/chromedriver/. The binary is updated to the same version of Chrome in that test image. That is, you always are using the latest build of ChromeDriver. If your test expects to
WebView overview
The WebView component is based on the Chromium open source project.
Mobile emulation
Chrome allows users to emulate Chrome on a mobile device from the desktop version of Chrome, by enabling the device mode with Chrome DevTools. This feature speeds up web development, allows developers to quickly test how a website renders in a mobile
Downloads
For earlier versions of Chrome, here are the versions of ChromeDriver that support it. For more information on selecting the right version of ChromeDriver, see the Version Selection page. Supports Chrome version 114 For more details, see the release
What is ChromeDriver?
ChromeDriver is a standalone server that implements the W3C WebDriver standard.
Keyboard support
At this time, ChromeDriver only supports systems that have a US keyboard configured. When ChromeDriver detects this state, it logs the following: Users without a US keyboard may experience lost keys during sendKeys or TypeElement commands. As a
ChromeDriver crashes
To diagnose and fix ChromeDriver crashes, you have a few options. This is only for ChromeDriver crashes, which is not the same as Chrome crashing or closing. On Windows, you may see something like this: Create a repro case that ChromeDriver
Android
The latest binaries for ChromeDriver are packaged as zip files for various host platforms. Earlier versions of ChromeDriver can be found in Downloads. ChromeDriver supports running tests on Chrome browser (version 30+) and WebView-based apps starting
Operation not supported when using remote debugging
Some WebDriver commands, such as resizing the browser window, require a Chrome extension to be loaded into the browser. ChromeDriver normally loads this "automation extension" every time it launches a new Chrome session. However ChromeDriver can be
Security considerations
ChromeDriver is a powerful tool, and it can cause harm when in the wrong hands. While using ChromeDriver, follow these suggestions:
Chrome doesn't start or crashes immediately
This often happens when running ChromeDriver or Chrome using a special test harness (perhaps an IDE) or continuous build system (such as Jenkins). Try launching the same Chrome binary that your test uses from a normal user command prompt. Confirm
Design Docs and discussions
WebDriver BiDi Backend Design [Microsoft] Async Command Processing for WebDriver in Chromium Browser Tools- and Testing WG, Day 2, TPAC 2019, Fukuoka Browser Tools- and Testing WG, Day 1, TPAC 2019, Fukuoka
Logging
To enable verbose logging, pass --verbose to the ChromeDriver server. You can also pass --log-path to cause the log to be written to a file instead of stderr. If you don't start the ChromeDriver server directly yourself, you need to pass the switch
Capabilities and ChromeOptions
Capabilities are options that you can use to customize and configure a ChromeDriver session.
Performance log
ChromeDriver supports performance logging, from which you can get events of domains "Timeline", "Network", and "Page", as well as trace data for specified trace categories. Performance logging is NOT enabled by default. So when creating a new
Canary
ChromeDriver Canary has the latest new ChromeDriver features. New binaries are built and made available multiple times a day. Be aware, it's designed for developers and early adopters and can sometimes break down completely. Starting with M115 the
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
Autofill in action: real-world insights
A Chrome study shows that autofill users fill forms faster, with lower abandonment rates.
Apps
Deprecated technology to create experiences that had more access to the underlying operating system.
Payments
Learn how to use latest Payment APIs in Chrome
CSS and UI
Find resources on topics such as typography, color, and layout.
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
Lighthouse
Automate web performance audits with Lighthouse
Puppeteer
A Node.js library providing a high-level API to control headless Chrome or Chromium
WebGPU
Learn WebGPU with guides, demos and latest news
Performance
Optimize the performance of your web applications with Chrome's performance tools.
Web on Android
Learn about Chrome's features for developing web apps on Android.
Accessibility
Digital accessibility, commonly abbreviated a11y, is about designing and building websites and web apps that disabled people can interact with in a meaningful and equivalent way. This course is created for beginner and advanced web developers. You
Identity
Learn about Chrome's identity features, such as Web Authentication.
Findings from the customizable select request for developer feedback form
Thank you for the time you shared with us, providing feedback, reviewing details and helping shape standards.
Release notes
Learn about changes to Chrome that affect developers.
Chrome's 2024 recap for devs: Re-imagining the web with AI in DevTools, built-in Gemini, and new UI capabilities
Check out Chrome for Developers' 2024 year-end roundup of the latest web features, capabilities, and tools.
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
Get started with built-in AI
Learn the requirements to start building features and applications with built-in AI.
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.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.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
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
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.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.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
Language detection with built-in AI
The Language Detector API offers built-in language discovery on the web, in the browser.
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
How to Use the Allocation Timeline Tool
Use the Allocation timeline tool to find objects that aren't being properly garbage collected, and continue to retain memory.
Avoid non-composited animations
How to pass the "Avoid non-composited animations" Lighthouse audit.
Memory terminology
This section describes common terms used in memory analysis, and is applicable to a variety of memory profiling tools for different languages.
Record and analyze a performance trace with DevTools
Record and analyze a performance trace with DevTools.
CSS Wrapped 2024
Join the Chrome DevRel team and a skateboarding Chrome Dino on a journey through the latest CSS launched for Chrome and the web platform in 2024.
What's new in DevTools, Chrome 132
Debug network requests, source files, and performance traces with Gemini, view AI chat history, and more.
View and edit extension storage
How to view and edit extension storage with the Extension Storage panel.
Passkeys
An easier and more secure replacement for passwords.
The Prompt API
Discover the infinite possibilities of the Prompt API in Chrome Extensions.
Use a strong HSTS policy
Learn more about configuring a strong HTTP Strict Transport Security (HSTS) policy
Deprecation of the Performance Insights panel
The experimental Performance Insights Panel will be removed in January 2025, replaced by new insights within the Performance panel itself.
Chrome DevTools
Discover and explore latest news about and use cases for AI assistance
Autofill
Browsers, and you, as a developer, can help users enter data faster, and avoid re-entering data. Autofill is a feature that allows browsers to automatically fill in form fields with users' saved information, such as name, address, and payments
What's next for WebGPU
Learn about new AI and rendering features discussed at the latest GPU for the Web working group meeting.
Video accessibility wins the Gemini API Developer Competition web award
We've selected ViddyScribe for the Gemini API Developer Competition web award. They exemplified how Gemini can help make videos on the web more accessible by generating audio descriptions for any video.
Prepare your extension as we begin testing a new extensions menu
How to prepare your extension for the new extensions menu.
Client-side translation with AI
Discover the Translator API to empower global customer support.
Annotate traces directly in the Performance panel
Learn how to make performance traces more understandable with the new annotations features in DevTools
AI assistance for performance
Understand performance profiles - with the help of AI
AI assistance panel
Understand how a website works with the help of AI
Chrome 132 beta
Learn about the latest features shipping in Chrome.
Join the Translator API origin trial
Live translate text in the browser using local AI models. Now, users can contribute in their first language.
Built-in AI
Built-in AI is the latest offering for bringing powerful models to users, while protecting sensitive data and improving latency.
AI assistance for network
Understand your website's network traffic - with the help of AI
Signal API for passkeys on Chrome desktop
Introducing Signal API for passkeys on Chrome desktop
AI assistance for sources
Understand your website resources - with the help of AI
chrome.networking.onc
The chrome.networking.onc API is used for configuring network connections (Cellular, Ethernet, VPN or WiFi). This API is available in auto-launched Chrome OS kiosk sessions. Network connection configurations are specified following Open Network
New in Chrome 131
Chrome 131 is rolling out now! More CSS styling for the details element, easier print layout with page margin boxes, and there is plenty more.
Join the Summarizer API origin trial
Participate in the origin trial to help users distill lengthy articles, complex documents, or even lively chat conversations into concise and insightful summaries.
Chrome 131
CSS Highlight Inheritance is changing, more CSS styling for the details element, easier print layout with page margin boxes, and more.
Keep passkeys consistent with credentials on your server with the Signal API
The WebAuthn Signal API allows a relying party to signal the state of existing credentials to the passkey provider, so that the passkeys are consistent with credentials on the server.
Join the Prompt API for Chrome Extensions origin trial
Participate in the Prompt API for Chrome Extensions origin trial and access Gemini Nano in Chrome.
Summarize with built-in AI
Distill lengthy articles, complex documents, or even lively chat conversations into concise and insightful summaries.
Get started with origin trials
Test a new or experimental web platform feature. Give feedback to the web standards community on the feature's usability, practicality, and effectiveness, before the feature is made available to all users.
What's New in WebGPU (Chrome 131)
Clip distances in WGSL, GPUCanvasContext getConfiguration(), point and line primitives must not have depth bias, inclusive scan built-in functions for subgroups, experimental support for multi-draw indirect, shader module compilation option strict math, remove GPUAdapter requestAdapterInfo(), and more.
Fix memory problems
Learn how to use Chrome and DevTools to find memory issues that affect page performance, including memory leaks, memory bloat, and frequent garbage collections.
More options for styling <details>
You can now set the display type and also style the container for the part that expands and collapses using the new ::details-content pseudo-element.
Memory panel overview
Gain deep insight into memory allocation, investigate low level memory issues, and manage garbage collection.
Help your users sign-in smoothly with seamless credential sharing
Seamless credential sharing lets you securely signal to password managers that your users can sign in using the same credentials across your Android app and website.
Customize DevTools
A list of ways you can customize Chrome DevTools: Change theme, placement, panel order, language, and more.
Badges reference
Toggle various overlays and speed up DOM tree navigation with badges.
Monitor live Core Web Vitals metrics in the Performance panel
Monitor live Core Web Vitals metrics in the Performance panel.
What's new in DevTools, Chrome 131
Debug CSS with Gemini, annotate findings and get insights in the Performance panel, spot excessive layout shifts and non-composited animations, and more.
Recognize your users' handwriting
The Handwriting Recognition API allows web applications to use advanced handwriting recognition services to recognize text from handwritten input in real time.
Add content to the margins of web pages when printed using CSS
Create custom headers and footers when printing webpages.
WebGPU: Troubleshooting tips and fixes
Learn why WebGPU may be disabled or not working in Chrome browser.
Analyze runtime performance
Learn how to evaluate runtime performance in Chrome DevTools.
Removing --headless=old from Chrome
Chrome 132 no longer includes the old Headless mode. Migrate to chrome-headless-shell or the new Headless mode.
New scroll badge in DevTools: Find scrollable elements faster
Learn how DevTools' new scroll badge simplifies debugging scrollable elements (and how we built it!).
chrome.syncFileSystem
Use the chrome.syncFileSystem API to save and synchronize data on Google Drive. This API is NOT for accessing arbitrary user docs stored in Google Drive. It provides app-specific syncable storage for offline and caching usage so that the same data
Enabling bfcache for Cache-Control: no-store
Chrome is making a change to allow bfcache usage for pages using Cache-Control: no-store when this is safe to do. Find out what that means for developers.
Chrome Headless mode
Chrome's Headless mode is now more useful for developers, by bringing it closer to Chrome's regular "headful" mode.
5 Cool Things To Do with DevTools AI Assistance
Learn about fun and exciting use-cases of the new AI assistance panel in DevTools
Built-in AI APIs
Built-in AI is the latest offering for bringing powerful models to users, while protecting sensitive data and improving latency.
Chrome DevTools
Debug and optimize your web applications with Chrome DevTools.
Chrome 131 beta
Discover the features that are coming to Chrome with the latest beta.
What's New in WebGPU (Chrome 130)
Dual source blending, shader compilation time improvements on Metal, deprecation of GPUAdapter requestAdapterInfo(), and more.
Chrome 130
Chrome 130 is rolling out now! Document picture in picture gives you more control over picture in picture windows, CSS Nested declarations fix some tricky edge cases, and you can specify how decorations on elements split across multiple lines behave, and there's plenty more!
AI assistance for styling
Understand how a website is styled with the help of AI in DevTools.
New in Chrome 130
Chrome 130 is rolling out now! Document picture in picture gives you more control over picture in picture windows, CSS Nested declarations fix some tricky edge cases, and you can specify how decorations on elements split across multiple lines behave. Pete LePage has all the details about what's new for developers in Chrome 130.
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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.
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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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
Inspect network activity
A tutorial on the most popular network-related features in Chrome DevTools.
AI innovations
AI Innovations tab reference.
Long Animation Frames API
Learn about the Long Animation Frames API (LoAF) which is the next iteration of the Long Tasks API and allows measuring frame update delays with attribution
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.
Native Client
A sandbox for running compiled C and C++ code in the browser. This has been deprecated.
The box-decoration-break property in Chrome 130
Chrome 130 includes full, unprefixed box-decoration-break support.
Private Network Access on hold
The Private Network Access (PNA) rollout is on hold.
Inheritance changes for CSS selection styling
A change to CSS highlight inheritance is coming in Chrome 134.
Translation API available for early preview
The Translation API is now available for built-in AI Early Preview Program participants.
The CSS anchor positioning API
Position elements relative to each other using the anchor positioning API.
Catch prediction in Chrome DevTools: Why it's hard and how to make it better
Learn how the DevTools debugger predicts whether an exception is caught.
WebAuthn: Emulate authenticators
Emulate Authenticators and Debug WebAuthn in Chrome DevTools.
Join the Google Chrome Built-in AI Challenge
We're launching the Built-in AI Challenge, where we invite you to reimagine what's possible with Gemini Nano in Chrome.
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
What's new in DevTools, Chrome 130
Recommendations for live metrics and breadcrumbs you can navigate in the Performance panel, network filters reimagined, sanitized HAR exports, and more.
Search: Find text across all loaded resources
Find text across all loaded resources with the Search panel.
Features reference
A comprehensive reference of Chrome DevTools Recorder panel features.
Sources panel overview
View and edit files, create Snippets, debug JavaScript, and set up Workspaces in the Sources panel of Chrome DevTools.
Coverage: Find unused JavaScript and CSS
How to find and analyze unused JavaScript and CSS code in Chrome DevTools.
Security: Understand security issues
Use the Security panel to make sure that a page is fully protected by HTTPS.
Same-document view transitions for single-page applications
Get started with same-document view transitions for use in your single-page application.
Layers panel: Explore the layers of your website
Inspect the layers that make up your website.
Caching Demystified: Inspect, Clear, and Disable Caches
Inspect and troubleshoot cache with DevTools.
Sign up for the Language Detection API origin trial
The Language Detection API is now available in a Chrome origin trial.
The Web Vitals extension, now in DevTools
The Web Vitals extension will merge with the Performance panel of Chrome DevTools, ending standalone support in January 2025.
Console overview
The main uses of the Chrome DevTools Console are logging messages and running JavaScript.
Uniquely identifying PWAs with the web app manifest id property
The optional `id` property is part of the web app manifest spec, and allows you to explicitly define the identifier used for your PWA. Adding the `id` property to the manifest removes the dependency on the `start_url` or the location of the manifest, and makes it possible for them to be updated in the future.
Feedback needed: How should we define CSS masonry?
A comparison of the two proposed masonry specifications.
Writer and rewriter APIs available for early preview
EPP participants can now prototype with write and rewrite APIs in Chrome.
Chrome to sync passkeys on Google Password Manager between desktop and Android
Chrome on desktop will soon be able to create passkeys in Google Password Manager (GPM) and synchronize them across those platforms in addition to Android.
Chrome 130 beta
Test your site with the features and changes in the latest Chrome beta.
New in Chrome 129
Chrome 129 is rolling out now! You can yield in long tasks - to improve performance, you can animate elements with intrinsic sizes, there are some changes to anchor positioning syntax, and there's plenty more. Pete LePage has all the details about what's new for developers in Chrome 129.
Performance panel: Analyze your website's performance
Analyze your website's load and runtime performance
Monitor your local and real-user Core Web Vitals performance in DevTools
The Performance panel in Chrome DevTools features a new way to monitor your local Core Web Vitals performance and compare it against real-user data from the field.
Chrome 129
Chrome 129 is rolling out now! You can yield in long tasks to improve performance, you can animate elements with intrinsic sizes, there are some changes to anchor positioning syntax, and there's plenty more.
Animate to height: auto; (and other intrinsic sizing keywords) in CSS
Animate to and from intrinsic sizing keywords with `interpolate-size` and `calc-size()`
What's New in WebGPU (Chrome 129)
HDR support with canvas tone mapping mode, expanded subgroups support, and more.
Chrome Experiment: Process sharing
The Process sharing experiment and its impact Chrome DevTools' developer experience.
Bluetooth RFCOMM updates in Web Serial
Learn how to detect when a Bluetooth RFCOMM serial port is available with Web Serial.
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.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.
Request for developer feedback: customizable select
An early look at the new customizable select feature.
Freeze screen & inspect disappearing elements
Freeze elements in the DOM so that you can inspect them with DevTools.
Picture-in-Picture for any Element, not just <video>
Display arbitrary HTML content in an always-on-top window.
The Keyboard Lock and the Pointer Lock APIs require permission from Chrome 131
The Keyboard Lock API lets developers provide an immersive, full screen experience for a variety of use cases, including interactive websites, games, and remote desktop or application streaming. It does so by enabling websites to use all available
Memory Inspector: Inspect ArrayBuffer, TypedArray, DataView, and Wasm Memory.
Use the Memory inspector to inspect an ArrayBuffer, TypedArray, or DataView in JavaScript as well as WebAssembly.Memory of C++ Wasm apps.
Changes: Track your HTML, CSS, and JavaScript changes
Track changes to HTML, CSS, and JavaScript.
Anchor positioning syntax changes
Changes related to the anchor positioning API you should be aware of.
Enable seamless credential sharing across websites in Chrome
If you employ multiple domains that share the same account management backend, with Digital Asset Links you can now also seamlessly share credential across them to enable users to save credentials once and have the Chrome password manager suggest them to any of the associated websites.
Run commands in the Command Menu
A guide on how to open the Command Menu, run commands, open files, see other actions, and more.
Introducing the Digital Credentials API origin trial
An origin trial for the Digital Credentials API is starting from Chrome 128. Digital Credentials API is a new web platform API that allows websites to selectively request verifiable information about the user through digital credentials such as a driver's license or a national identification card stored in a digital wallet.
What's new in DevTools, Chrome 129
Search requests in Performance > Network, use test data in address forms with Autofill, export to Puppeteer for Firefox in the Recorder panel, spot performance issues at a glance with observations in the Performance panel, and more.
Introducing hints, Related Origin Requests and JSON serialization for WebAuthn in Chrome
WebAuthn on Chrome can now use hints, Related Origin Requests and JSON serialization
What's missing from HTML and CSS?
Do you agree with the CSS Day attendees about what should be added to the web?
More efficient IndexedDB storage in Chrome
A new optimization in Chrome improves how IndexedDB data is stored on disk. This document summarizes the key points of this update.
Language detection API available for early preview
EPP participants can now prototype with a language detection API in Chrome.
Lighthouse: Optimize website speed
Make your websites load faster with Chrome Lighthouse.
Customize your performance data with extensibility API
Customize performance data with the extensibility API
Chrome 129 beta
Get a preview of the next Chrome release with this post detailing the features in the current beta.
Improving the performance of Chromium accessibility
A post from Ahmed Elwasefi, sharing how he became a Chromium contributor through the Google Summer of Code.
New in Chrome 128
Chrome 128 is rolling out now! With improved display for ruby elements with line breaks, Promise.try to start Promise chains easier, PointerEvent interface extended to uniquely identify multiple pens, and there's plenty more, and plenty more. Adriana Jara has all the details about what's new for developers in Chrome 128.
Media: View and debug media players information
Use the Media Panel to view information and debug the media players per browser tab.
What's New in WebGPU (Chrome 128)
Experimenting with subgroups, deprecate setting depth bias for lines and points, hide uncaptured error DevTools warning if preventDefault, WGSL interpolate sampling first and either, and more.
The File System Observer API origin trial
The Chrome team is experimenting with a new File System Observer API that informs developers of changes to the file system.
Chrome 128
Chrome 128 is starting to roll out on August 20th, 2024, with CSS ruby-align property, Promise.try, and there's plenty more.
Build an app with WebGPU
Learn how to build an app with WebGPU for the web and specific platforms.
Chrome Extensions
Chrome Extensions can be either packed or unpacked. To pack an unpacked extension, use the Pack button in chrome://extensions or use Chrome: "chrome.exe --pack-extension=C:\path\to\unpacked\extension --pack-extension-key=C:\myext.pem". To unpack a
The File System Access API: simplifying access to local files
The File System Access API enables developers to build powerful web apps that interact with files on the user's local device, such as IDEs, photo and video editors, text editors, and more. After a user grants a web app access, this API allows them to read or save changes directly to files and folders on the user's device.
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
Summarization API available for early preview
EPP participants can now prototype with the summarization API for Gemini Nano in Chrome.
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
Scroll Snap Events
Introducing two new JavaScript events: scrollSnapChange and scrollSnapChanging.
Experimenting with measuring soft navigations
The Chrome team is working on better measuring so-called soft navigations used by Single Page Applications and a new API is now available behind a flag to allow sites to experiment with this too.
4 ways to capture screenshots with DevTools
Discover 4 unique ways to capture screenshots with DevTools.
WebDriver BiDi production-ready in Firefox, Chrome and Puppeteer
Puppeteer 23 introduces stable support for Firefox 129 and up, offering a unified API for Chrome and Firefox automation, based on WebDriver BiDi.
What's new in DevTools, Chrome 128
Console insights go live in Europe, enhanced Network track and API to customize tracks in the Performance panel, and more.
Participate in the Chrome built-in AI experiment
An update on built-in AI, the Prompt API, and Chrome's AI plans.
Passkeys UX updates on Chrome on Android
Chrome on Android now integrates the Credential Manager allowing 3P password managers provide passkeys on Android 14 and later
Author-defined CSS names and shadow DOM: In specification and in practice
Explaining the current interoperability status of author-defined names as used in the shadow DOM in CSS.
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.
Automation with WebDriver BiDi now available on BrowserStack
BrowserStack introduces WebDriver BiDi support: Enhance your Selenium Grid tests with event-driven automation.
Beyond regular expressions: Enhancing CSS value parsing in Chrome DevTools
Learn how the DevTools team improved how styles are presented in the Styles tab.
Faster page loads using server think-time with Early Hints
Find out how your server can send hints to the browser about critical subresources.
Network panel: Analyze network load and resources
Analyze network load and resources
Line-breakable <ruby> and CSS ruby-align property
Line-breakable ruby element and CSS ruby-align property
Chrome 128 beta
Get a preview of the next Chrome release with this post detailing the features in the current beta.
New in Chrome 127
Chrome 127 is rolling out now! With support for font-size-adjust, user activations propagated in the Document Picture-in-Picture API, keyboard focusable scroll containers and there's plenty more. Adriana Jara has all the details about what's new for developers in Chrome 127.
What's New in WebGPU (Chrome 127)
Experimental support for OpenGL ES on Android, GPUAdapter info attribute, WebAssembly interop improvements, and more.
Chrome 127
Chrome 127 is starting to roll out on July 23rd, 2024, with CSS font-size-adjust, keyboard focusable scroll containers, and there's plenty more.
How Chrome helps users install the apps they value
Chrome's internal user research shows that many people value installing web apps. There are many benefits such as: There are multiple ways Chrome and web developers can help, including a new machine learning promotion feature. This post gives an
Request for developer feedback on reading-flow and elements with display: contents
Help us to make sure reading-flow meets your needs.
Network features reference
A comprehensive reference of Chrome DevTools Network panel features.
Preferences
Preferences tab reference.
Help with ChromeDriver
If you have a general question or need help using ChromeDriver, you can email the chromedriver-users group. Before filing a bug, look at the existing issues for the same topic. ChromeDriver is an open source project, worked on by various
Clicking issues
ChromeDriver clicking works by simulating a mouse click in the middle of the element's first client rect (or bounding client rect if it doesn't have a first client rect). The easiest way to find out where ChromeDriver is attempting to click is to
Contribute to ChromeDriver
ChromeDriver is a Chromium project and the code lives in the Chromium repository. Chromium is the open source project on which Google Chrome is based. Follow the instructions to check out the entire Chromium source tree. After you have your source
Recorder panel: Record and measure user flow
Analyze and record user flows.
Misconceptions about view transitions
With more and more people starting to look into the View Transition API, it's time to debunk some misconceptions.
Deceptive Installation Tactics FAQ
Frequently asked questions about Chrome Web Store's policies on deceptive installation tactics.
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.
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
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
Extensions quality guidelines FAQ
Frequently asked questions about the single purpose policy.
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
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.
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
What's new in DevTools, Chrome 127
CSS anchor positioning in Elements, enhanced 'Never Pause Here' in Sources, new scroll snap event listeners, updated network throttling presets, and more.
Inspect mode: Quickly analyze element properties
Inspect elements on your web app
Performance features reference
A reference on all the ways to record and analyze performance in Chrome DevTools.
Aurora
A collaboration between Chrome and open-source web frameworks to improve user experience on the web.
The Long Animation Frame API has now shipped
The Long Animation Frame API (LoAF) has shipped from Chrome 123 and we've now also updated our tooling and guidance to help you make the most of this new API.
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.
Avoid an excessive DOM size
Learn how a large DOM can reduce your web page's performance and how you can reduce the size of your DOM at load time.
CrUX methodology
Technical documentation on CrUX eligibility, metrics, dimensions and accessing the data.
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
Prerender pages in Chrome for instant page navigations
The Chrome team has been working on options to bring back full prerendering of future pages that a user is likely to navigate to.
Behind the Chrome Web Store: Asking Trust & Safety your questions
We sat down with the team that leads review in the Chrome Web Store.
Maximum IndexedDB performance with Storage Buckets
The Chrome team has made a number of performance-related improvements to the implementation of IndexedDB (IDB).
Chrome release notes and updates
Chrome's latest releases
Cache AI models in the browser
To make future launches of your AI-powered applications faster, explicitly cache the model data on-device.
What's New in WebGPU (Chrome 126)
Increase maxTextureArrayLayers limit, buffer upload optimization for Vulkan backend, shader compilation time improvements, submitted command buffers must be unique, and Dawn updates.
Chrome 127 beta
Test the latest features coming to Chrome by downloading the beta.
An origin trial for a new HTML <permission> element
The Chrome team is experimenting with a new declarative HTML <permission> element for asking the user for access to powerful features.
Chrome 126
Chrome 126 is starting to roll out on June 11th, 2024, with cross document view transitions, reenabling the CloseWatcher API, trigger-rumble for the Gamepad API, and there's plenty more.
The latest in CSS and web UI: I/O 2024 recap
Read all of the CSS and Web UI announcements from Google I/O 2024.
New in Chrome 126
Chrome 126 is rolling out now! With support for cross-document transitions in the ViewTransitions API, the CloseWatcher API re-enabled, trigger-rumbled for the Gamepad API and there's plenty more, and plenty more. Adriana Jara has all the details about what's new for developers in Chrome 126.
Deprecating the unload event
The unload event will be gradually deprecated starting from Chrome 117. Learn what this means and how sites and enterprises can prepare for this
3 new features to customize your performance workflows in DevTools
Learn about the latest features to help you declutter the Performance panel and focus on the information you need most
Protocol monitor: View and send CDP requests
Monitor CDP requests and responses.
Analyze CSS selector performance during Recalculate Style events
Analyze CSS selector performance during Recalculate Style events.
Workbox
Build progressive web apps (PWAs) with Workbox - the Service Worker library from the Chrome team
Extensions / Develop
Learn how to develop extensions
Skip review for eligible changes to extensions
We are excited to announce a new feature that will allow developers to skip the review process for eligible changes to Manifest V3 extensions using the Declarative Net Request API.
Content filtering
An explanation of content filtering and how to approach it in your Chrome Extension.
Does not have a tag with width or initial-scale
Learn about the "Does not have a tag with width or initial-scale" Lighthouse audit.
Reference
Reference for APIs available to Chrome Apps
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.virtualKeyboard
The chrome.virtualKeyboard API is a kiosk only API used to configure virtual keyboard layout and behavior in kiosk sessions. boolean optional Whether virtual keyboards can provide auto-complete. boolean optional Whether virtual keyboards can provide
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.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.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.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.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.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.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.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.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.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.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.clipboard
The chrome.clipboard API is provided to allow users to access data of the clipboard. This is a temporary solution for chromeos platform apps until open-web alternative is available. It will be deprecated once open-web solution is available, which
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.bluetoothLowEnergy
The chrome.bluetoothLowEnergy API is used to communicate with Bluetooth Smart (Low Energy) devices using the Generic Attribute Profile (GATT). The following keys must be declared in the manifest to use this API. ManufacturerData [] optional List of
chrome.bluetoothSocket
Use the chrome.bluetoothSocket API to send and receive data to Bluetooth devices using RFCOMM and L2CAP connections. The following keys must be declared in the manifest to use this API. "system_error" A system error occurred and the connection may be
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.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.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.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.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.mdns
Use the chrome.mdns API to discover services over mDNS. This comprises a subset of the features of the NSD spec: http://www.w3.org/TR/discovery-api/ string The IP address of an mDNS advertised service. string[] Metadata for an mDNS advertised
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.serial
Use the chrome.serial API to read from and write to a device connected to a serial port. number optional See ConnectionOptions.bitrate. This field may be omitted or inaccurate if a non-standard bitrate is in use, or if an error occurred while
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.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.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.bluetooth
Use the chrome.bluetooth API to connect to a Bluetooth device. All functions report failures via chrome.runtime.lastError. The following keys must be declared in the manifest to use this API. string The address of the adapter, in the format
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.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.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.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.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.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.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.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.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.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.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.sockets.tcpServer
Use the chrome.sockets.tcpServer API to create server applications using TCP connections. This API supersedes the TCP functionality previously found in the chrome.socket API. The following keys must be declared in the manifest to use this API. number
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.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.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.socket
Use the chrome.socket API to send and receive data over the network using TCP and UDP connections. Note: Starting with Chrome 33, this API is deprecated in favor of the sockets.udp, sockets.tcp and sockets.tcpServer APIs. number number optional The
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.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.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.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.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.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.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.documentScan
Use the chrome.documentScan API to discover and retrieve images from attached document scanners.
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.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.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.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.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.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.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.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.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.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.webviewTag
Use the webview tag to actively load live content from the web over the network and embed it in your Chrome App. Your app can control the appearance of the webview and interact with the web content, initiate navigations in an embedded web page, react
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.app.window
Use the chrome.app.window API to create windows. Windows have an optional frame with title bar and size controls. They are not associated with any Chrome browser windows. See the Window State Sample for a demonstration of these options. Window The
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.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.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.system.network
Use the chrome.system.network API. string The available IPv4/6 address. string The underlying name of the adapter. On *nix, this will typically be "eth0", "wlan0", etc. number The prefix length Retrieves information about local adapters on this
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.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. To interact with the user's
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.sockets.udp
Use the chrome.sockets.udp API to send and receive data over the network using UDP connections. This API supersedes the UDP functionality previously found in the "socket" API. The following keys must be declared in the manifest to use this API.
chrome.hid
Use the chrome.hid API to interact with connected HID devices. This API provides access to HID operations from within the context of an app. Using this API, apps can function as drivers for hardware devices. Errors generated by this API are reported
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.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.fileSystem
Use the chrome.fileSystem API to create, read, navigate, and write to the user's local file system. With this API, Chrome Apps can read and write to a user-selected location. For example, a text editor app can use the API to read and write local
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.browser
Use the chrome.browser API to interact with the Chrome browser associated with the current application and Chrome profile. string The URL to navigate to when the new tab is initially opened. Opens a new tab in a browser window associated with the
chrome.sockets.tcp
Use the chrome.sockets.tcp API to send and receive data over the network using TCP connections. This API supersedes the TCP functionality previously found in the chrome.socket API. The following keys must be declared in the manifest to use this API.
chrome.usb
Use the chrome.usb API to interact with connected USB devices. This API provides access to USB operations from within the context of an app. Using this API, apps can function as drivers for hardware devices. Errors generated by this API are reported
chrome.mediaGalleries
Use the chrome.mediaGalleries API to access media files (audio, images, video) from the user's local disks (with the user's consent). string boolean string Identifies the modified gallery. GalleryChangeType Type of change event. "contents_changed"
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.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.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
Network conditions: Override the user agent string
Learn how to emulate other browsers with the Network conditions panel.
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.
What's new in DevTools, Chrome 126
Improved track configuration mode, ignore list in the flame chart, and throttle down CPU by 20 times in the Performance panel, and more.
Chrome Extensions at Google I/O 2024
Another Google I/O is behind us and we have covered all the exciting extensions updates!
Debug JavaScript
Learn how to use Chrome DevTools to find and fix JavaScript bugs.
Debug speculation rules with Chrome DevTools
Learn all about the Chrome DevTools features to debug speculation rules used to prefetch and prerender future page navigations.
Skip review for eligible changes
An overview of expedited review for Declarative Net Request changes.
Quick source panel
View source files and have access to other tools.
Chrome 126 beta
Chrome 126 Beta includes cross-document view transitions, along with the Gamepad API trigger-rumble extension, and other features.
WebAssembly and WebGPU enhancements for faster Web AI, part 2
Part 2/2. Learn how WebAssembly and WebGPU enhancements improve machine learning performance on the web.
What's new in JavaScript Frameworks (May 2024)
This document provides brief highlights of recent happenings in the JavaScript frameworks ecosystem.
Encourage useful product reviews with client-side web AI
The following codelab offers client-side AI. No AI development knowledge, servers, or API keys required.
Evaluate product reviews with AI
On-device AI is the latest offering for bringing powerful models to users, while protecting sensitive data and improving latency.
Performance monitor panel
Analyze your website's runtime performance in real-time.
I/O 2024 Web AI wrap up: New models, tools, and APIs for your next web app
Read a wrap up from Web AI at I/O 2024. Learn about the new models, tools, and APIs for your next web app.
WebAssembly and WebGPU enhancements for faster Web AI, part 1
Part 1/2. Learn how WebAssembly and WebGPU enhancements improve machine learning performance on the web.
What's new in view transitions? (Google I/O 2024 update)
Announcing cross-document view transitions for MPA, selective view transitions with active types, and sharing animation styles with view-transition-class.
Introducing UIA support on Windows
From Chrome 126 the Windows UI Automation framework is supported.
SVG support for the Async Clipboard API
The Async Clipboard API can now deal with SVG images.
When to choose client-side AI
Client-side AI is the latest offering for bringing powerful models to users, while protecting sensitive data and improving latency.
New in Chrome 125
Chrome 125 is rolling out now! With the CSS Anchor Positioning API, the Compute Pressure API, an expansion to the Storage Access API, and plenty more. Adriana Jara has all the details about what's new for developers in Chrome 125.
DevTools Tips: Override and mock network responses
Learn how you can override and mock network responses with DevTools.
10 updates from Google I/O 2024: Unlocking the power of AI for every web developer
Discover exciting features from the Google I/O Developer Keynote and sessions.
Chrome 125
Chrome 125 is starting to rolling out on May 14th, 2024, with CSS Anchor Positioning, the Compute Pressure API, new Baseline features, and there's plenty more.
Override web content and HTTP response headers locally
Use local overrides to mock remote resources and keep the changes you make in DevTools across page loads.
How Spotify used the Picture-in-Picture API to build the Spotify Miniplayer
Learn about the Spotify Miniplayer's transformation from a "canvas hack" to a refined experience enabled by the Document Picture-in-Picture API.
Understand errors and warnings better with console insights
Understand errors and warnings in the Console better with Gemini.
Introducing the CSS anchor positioning API
Position elements relative to each other using the new anchor positioning API.
Tools from Chrome for frictionless, automated testing
A brief overview of Puppeteer, Chrome Headless and Chrome for Testing and other resources from the Chrome Tooling team.
Implement testing in your enterprise with Chrome
Learn how to overcome challenges with testing in enterprise environments
What's new in DevTools, Chrome 125
Error causes in the Console, CSS selector statistics in Performance, Early Hints headers in Network, and more.
:has() case studies
Find out how Policybazaar and Tokopedia benefit from using :has().
View transitions case studies
redBus, Policybazaar, and Tokopedia all use the View Transition API and benefit from better performance and a smooth UI.
Scroll-driven animations case studies
Discover the benefits of Scroll-driven animations with Policybazaar, redBus, and Tokopedia.
Container queries case studies
Learn about the benefits of container queries from redBus and Tokopedia.
Why do CSS and UI capabilities matter for your ecommerce site?
Learn how ecommerce sites benefit from implementing the latest CSS and UI features—View Transitions, Scroll-driven animations, Popover API, and more.
What's New in WebGPU (Chrome 125)
Subgroups in development and render to slice of 3D texture.
Introducing "Unleash the power of Scroll-Driven Animations"
A 10-part video course to learn all about scroll-driven animations
Extensions / Get started
All the basics to get started with Chrome extensions
An alternative proposal for CSS masonry
A proposal to define masonry and grid in different specifications.
Overview of WebGPU
WebGPU allows high-performance 3D graphics and data-parallel computation on the web.
Version selection
Version selection is the process of matching a Chrome binary of a given version to a compatible ChromeDriver binary. Starting with M115 the ChromeDriver release process is integrated with that of Chrome. The latest Chrome + ChromeDriver releases per
Manifest - Minimum Chrome Version
Reference documentation for the minimum_chrome_version property of manifest.json.
Popover case studies
Tokopedia uses the Popover API to reduce the amount of code in their application.
The Private Network Access (PNA) for non-secure contexts deprecation trial is ending—implement the PNA permission prompt
To access private network devices from a website that cannot be converted to HTTPS, you must use permission prompts to relax mixed content checks.
Scroll and zoom a captured tab
The Captured Surface Control API lets web apps scroll and zoom captured tabs.
WebAudio: View WebAudio API metrics
View WebAudio API metrics in the WebAudio panel
Manifest - Trial tokens
Reference documentation for the trial_tokens property of manifest.json.
Chrome 125 beta
CSS Anchor Positioning, CSS stepped functions, the Compute Pressure API, and more.
Does not register a service worker that controls page and start_url
Learn how to register a service worker that supports Progressive Web App features like offline functionality, push notifications, and installability.
Page load is not fast enough on mobile networks
Learn how to make your web page load quickly on mobile networks.
Current page does not respond with a 200 when offline
Learn how to make your Progressive Web App work offline.
Throttling
Throttling tab reference.
Does not set a theme color for the address bar
Learn how to set an address bar theme color for your Progressive Web App.
Web app manifest does not meet the installability requirements
Learn how to make your Progressive Web App installable.
Access to MIDI devices now requires user permission
Chrome now gates the entire Web MIDI API behind a permission prompt.
Does not use HTTPS
Learn how to protect your website with HTTPS.
New in Chrome 124
Chrome 124 is rolling out now! There are two new APIs that allow the declarative shadow DOM to be used from JavaScript. You can use streams in Web Sockets. View Transitions get a little better. And there's plenty more. Pete LePage has all the details about what's new for developers in Chrome 124.
Manifest doesn't have a maskable icon
Learn how to add maskable icon support to your PWA.
start_url does not respond with a 200 when offline
Learn how to configure your Progressive Web App's start_url so your app is accessible offline.
Origin trial for Foldable APIs
The Foldable APIs are two APIs in Chrome that are designed to help developers target foldable devices.
Site works cross-browser
Learn how to use Workbox to make sure your web page works across browsers.
Each page has a URL
Learn about the Lighthouse "Each page has a URL" audit.
Content is not sized correctly for the viewport
Learn how to size your web page content to fit on mobile screens.
Does not provide fallback content when JavaScript is not available
Learn how to make sure users can view at least some content on your web page when JavaScript isn't available.
Is not configured for a custom splash screen
Learn how to create a custom splash screen for your Progressive Web App.
Animations: Inspect and modify CSS animation effects
Inspect and modify animations with the Animations panel.
Does not redirect HTTP traffic to HTTPS
Learn how to make your site more secure by redirecting all pages to HTTPS.
Does not provide a valid apple-touch-icon
Learn how to specify what icon your Progressive Web App displays on iOS home screens.
Chrome 124
Chrome 124 is starting to rolling out on April 16th, 2024, with setHTMLUnsafe, streams in WebSockets, and there's plenty more.
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.
Page transitions don't feel like they block on the network
Learn how to make transitions between web pages feel responsive, even on a slow network.
Autofill: Inspect and debug saved addresses
Inspect and debug addresses saved in Chrome with the Autofill panel.
Cross-document view transitions for multi-page applications
Get started with cross-document view transitions for use in your multi-page application (MPA).
Smooth transitions with the View Transition API
The View Transition API lets you add transitions between views of a website.
Fun & Powerful: Intro to Chrome DevTools
Discover how DevTools can improve your web application development.
How to view Chrome UX Report data on PageSpeed Insights
PageSpeed Insights (PSI) is a tool for web developers to understand what a page's performance is and how to improve it. In this guide, learn how to use PSI to extract insights from CrUX and better understand the user experience.
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
What's New in WebGPU (Chrome 124)
Read-only and read-write storage textures, service workers and shared workers support, new adapter information attributes, and bug fixes.
CrUX guides
Learn how to use CrUX with easy to follow guides
Rollback a published Chrome Web Store item
How to rollback an extension that you previously published on the
Navigation types now available in CrUX
Learn about the new navigation_types metric in the Chrome User Experience Report (CrUX) and how it can be used to explain and optimize your web performance metrics.
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.
Ensure text remains visible during webfont load
Learn how to use the font-display API to make sure your web page text will always be visible to your users.
Goodbye JS Profiler, profiling CPU with the Performance panel
Learn the path forward in profiling CPU performance, understand why and how we deprecate the JavaScript profiler.
What's new in DevTools, Chrome 124
Scroll-driven animations support, new Autofill panel, new options for WebRTC in network throttling, and more.
Back/forward cache notRestoredReasons API
Report information on whether frames present in the document were blocked from using the back/forward cache on navigation.
Profile Node.js performance with the Performance panel
Learn how to profile Node.js application performance with the Performance panel.
WebAssembly JavaScript Promise Integration (JSPI) enters origin trial
JavaScript Promise Integration (JSPI) is an API that allows synchronous sequential code compiled to WebAssembly to access asynchronous Web APIs.
The fetchLater API Origin Trial
Learn about the fetchLater API—now in an Origin Trial—a new API for requesting a deferred fetch that will complete even if the page is closed.
Network requests: Test your site by blocking network requests
Test how your site handles missing resources.
Chrome for Developers
google-site-verification: google2d9992045b4571ad.html
Keyboard focusable scrollers
A change is rolling out to make scrollers without tabindex value set and with no focusable children keyboard focusable.
Chrome 124 beta
The writingsuggestions HTML attribute, the WebSocketStream API, priority HTTP request header, and more.
New in Chrome 123
Chrome 123 is rolling out now! With the new light-dark function, Long Animation Frames API, Service Worker Static Routing API and there's plenty more. Adriana Jara has all the details about what's new for developers in Chrome 123.
Use the Service Worker Static Routing API to bypass the service worker for specific paths
Find out how to use this new API, available from Chrome 123.
Private Network Access: Extended protection for web workers and navigation fetches
Learn about Private Network Access's key security mechanisms for web workers, navigation fetches, and upcoming protections. This document also covers what website owners should do if they utilize private networks.
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"
Performance tooling in 2024 and beyond
Learn about the Chrome team's plans to improve the Performance panel of DevTools.
Hide extension requests plus more Network panel improvements
Explore the latest improvements in Chrome DevTools Network panel, designed to simplify your web debugging experience.
Elements panel overview
Make changes to the DOM instantly.
Extensions / How to
Solve common development tasks around Chrome extensions
View and change CSS
Learn how to use Chrome DevTools to view and change a page's CSS.
Apply other effects: enable automatic dark theme, emulate focus, and more
Highlight ad frames, emulate focus on a page, disable local fonts and image formats, enable an automatic dark theme, and emulate vision deficiencies.
CSS features reference
Discover new workflows for viewing and changing CSS in Chrome DevTools.
Pause your code with breakpoints
Learn about all the ways you can pause your code in Chrome DevTools.
What's New in WebGPU (Chrome 123)
DP4a built-in functions support, unrestricted pointer parameters, syntax sugar for dereferencing composites in WGSL, and more.
Supercharge compression efficiency with shared dictionaries
Compression on the web is getting a big boost from shared dictionary compression. Learn what they are, how they work, and how they could substantially reduce load times even further than standard compression for both static and dynamic resources on the web.
Download old Headless Chrome as chrome-headless-shell
You can now download the old Headless Chrome as a standalone binary for every user-facing Chrome release.
Application panel overview
Gain vital information about your web app straight from the browser.
Internationalize the interface
Use the chrome.i18n API to render your interface in multiple languages.
What's new overview
Discover the latest features in Chrome DevTools
Make your extension accessible
For many users, accessibility literally is the user interface, and its features are useful to many others.
Improvements to the Speculation Rules API
Details of the latest updates to the Speculation Rules API including document rules, eagerness setting, limits, and speculation rules support on platforms.
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.
What's new in DevTools (Chrome 123)
An Easter egg, focused page emulation in Elements > Styles, new Lighthouse audit, and more.
Blog
Latest news from the Chrome Developer Relations team
A Next.js package for managing third-party libraries
Learn how to use the @next/third-parties library to optimize loading of popular third-party resources
Changes to BFCache behavior with extension message ports
We are making changes to Chrome BFCache which potentially impact extensions using message ports.
Chrome 123 beta
The CSS light-dark() color function, align-content for blocks, the field-sizing property, and the pagereveal event.
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
Support for align-content in block and table layouts
From Chrome 123 use align-content to align items without creating a flex or grid container.
Keyboard shortcuts
The canonical documentation for Chrome DevTools keyboard shortcuts.
New in Chrome 122
Chrome 122 is rolling out now! With the new Storage Buckets API, DevTools Performance panel updates, unsanitized option to read HTML with the Async Clipboard API and there's plenty more. Adriana Jara has all the details about what's new for developers in Chrome 122.
Simulate mobile devices with device mode
Use virtual devices in Chrome's device mode to build mobile-first websites.
Announcing Chrome for Developers in China
We are publishing our sites on a .cn domain to make them easier to access in China.
Changes to CSS ::backdrop inheritance
As of Chrome 122 the `::backdrop` element inherits properties from its originating element.
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.
A 400% faster Performance panel through perf-ception
The Performance panel in DevTools is a powerful tool to diagnose, debug and fix performance issues of web apps. On this occasion, we will walk you through how we used the Performance panel in DevTools to improve the performance of the Performance panel itself, and how we achieved a very significant improvement.
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.
Register your developer account
How to register as a Chrome Web Store developer.
Manifest - Content Security Policy
Reference documentation for the content security policy properties of manifest.json.
What's New in WebGPU (Chrome 122)
Compatibility mode in development, increase maxVertexAttributes limit, and Dawn updates.
Record heap snapshots
Learn how to record heap snapshots with the heap profiler and find memory leaks.
CSS field-sizing
One line of code for auto sizing elements with editable content.
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
Overview of CrUX
Introduction to the CrUX dataset.
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.
Chromium Issue Tracker migration is complete
Chromium issue tracking is now migrated.
Use Web Push
Step by step guide on how to use Web Push with Chrome Extensions
Permission warning guidelines
How permission warnings work in Chrome extensions.
Declare permissions
An overview of the valid values for the permissions property in manifest.json.
Chromium Issue Tracker migration beginning Feb 2, 2024 at 5pm PST
The Chromium Issue Tracker migration begins today.
What's new in DevTools (Chrome 122)
Third-party cookies phaseout warnings in the Network and Application panels, enhanced debugging in the Network panel, breadcrumbs in the Performance panel, and more.
Introducing a new way to build custom web editing experiences using the EditContext API
EditContext is a new API launching in Chrome and Edge that helps developers to build advanced text editing features in the browser. Learn more about it in this post!
Program Policies
The Web Store program policies.
DevTools Tips: Debugging speculative navigations for faster page loads
Make web browsing faster with speculative loads and learn how to debug them.
Join Privacy Sandbox Office Hours #12: Learn about Chrome-facilitated testing
Join the 12th edition of Privacy Sandbox office hours dedicated to Chrome-facilitated testing, where the Privacy Sandbox team will provide some Privacy Sandbox tester updates and answer your questions with product and technical leads.
The deprecation trial for SharedArrayBuffer on desktop Chrome is extended to Chrome 124
The deprecation trial for SharedArrayBuffer without cross-origin isolation on Chrome desktop is extended until Chrome 124.
Respond to commands
Respond to custom key combinations in an extension.
Customize the Recorder with extensions
Customize and integrate the Recorder by installing extensions.
Chrome 122 beta
Chrome 122 beta brings you Iterator helpers, set methods, the Storage Buckets API, read unsanitized HTML in the Async Clipboard API, and more.
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.
New in Chrome 121
Chrome 121 is rolling out now! With CSS updates, improvements to the Speculation Rules API, an origin trial for Element Capture API and there's plenty more. Adriana Jara has all the details about what's new for developers in Chrome 121.
Trigger actions from the omnibox
Trigger actions from the omnibox.
What's New in WebGPU (Chrome 121)
Support WebGPU on Android, use of DXC for shader compilation, timestamp queries in compute and render passes, default entry points to shader modules, support display-p3 as GPUExternalTexture color space, memory heaps info, and more.
Scrollbar styling
Use the `scrollbar-width` and `scrollbar-color` properties to style scrollbars.
Test Web Bluetooth with Puppeteer
Use Puppeteer to test features that use the Web Bluetooth API in Chrome.
Safely accessing the DOM with Angular SSR
Learn how to safely use the DOM together with SSR in Angular
Web AI model testing in Google Colab
Learn how to test client-side, browser-based AI models in, while remaining scalable, automatable, and within a standardized hardware setup.
Use Firebase Cloud Messaging (FCM) with chrome.gcm
Step by step guide on how to use Firebase Messaging with chrome.gcm
Supercharge Web AI model testing: WebGPU, WebGL, and Headless Chrome
Discover our solutions for how to consistently automate browser testing and improve application performance.
CSS vertical writing mode for form control elements
Chrome adds another new international CSS feature.
Implement an action
Respond to a user clicking the toolbar.
Persistent permissions for the File System Access API
This post explains how persistent permissions for the File System Access API can be managed. It also provides a quick recap of the current state of the problem and the challenges that are being solved.
DevTools Tips: Authoring colors
Learn how to author colors in a few clicks.
Inspect and debug HD and non-HD colors with the Color Picker
Learn how to use the Color Picker in Elements > Styles to inspect and debug HD and non-HD colors.
DevTools Tips: Debugging fetch priority
Learn how to debug fetch priority.
Real-time Updates in Extensions
Managing real-time updates in Extensions
Web App Scope Extensions
From Chrome 122 you can subscribe to the origin trial for the scope_extensions app manifest member which allows sites that control multiple subdomains and top level domains to be presented as a single web app.
CSS text-wrap: balance
A classic typography technique of hand-authoring line breaks for balanced text blocks, comes to CSS.
Harness the power of WebDriver BiDi: Chrome and Firefox automation with Puppeteer
Puppeteer now talks to Firefox! 🎉 But wait, didn't it already? 🤔 Let's dive into WebDriver BiDi, the new protocol in Puppeteer and discover what this exciting development means for the Firefox automation workflow.
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.
Distribute your extension
How to host your Chrome extension.
Google Chrome on Android
For a complete list of developer features in Chrome on Android, refer to chromestatus.com. Download Chrome on the Play Store. When the user signs into Chrome on one device, the tabs and browsing history of that session are available to the user when
Add a popup
Implement a popup, which is a window that lets users invoke extension features.
How do modern frameworks perform on the new INP metric
This post discusses the relevance of the new INP metric to framework-based websites and Aurora's work to support frameworks in optimizing this metric.
Android Intents with Chrome
Launch apps directly from a web page with an Android Intent.
Extensions / Reference
Reference for the extensions manifest, related permissions and APIs
Exclusive Accordion
Create an exclusive accordion with multiple `` elements that have the same `name`.
Chrome enables desktop mode by default on premium tablets
Chrome has adapted to the Android tablet ecosystem by enabling desktop mode by default on premium tablets.
Chrome Archive
Chrome Archive Chrome Apps Chrome-specific APIs to create experiences with more access to the underlying operating system. These were deprecated in 2020, supported only for ChromeOS until Jan 2025. Native Client A sandbox to run compiled C and C++
What's new in DevTools (Chrome 121)
@font-palette-values support in Elements, improved source map support, enhanced Performance > Interactions track, and more.
What's New in WebGPU
Stay up to date with the latest WebGPU changes.
What's New in WebGPU (Chrome 120)
Support for 16-bit floating-point values in WGSL, limits increase, depth-stencil state changes, adapter information updates, and more.
Better tab sharing with Region Capture
The web platform now ships with Region Capture, a performant and robust way for cropping a video track.
Chromium Chronicle
Chromium Chronicle
Chromium
Find resources on the Chromium project.
Chrome 121 beta
CSS Scrollbars, the Storage Buckets API, the Speculation Rules API, and more.
CSS Wrapped: 2023!
2023 was a huge year for CSS! Learn about what landed in Chrome and across the web platform this year.
Get Inspired
Read these case studies to find inspiration for your next project with Chrome.
DevTools Tips: Debugging bfcache
Learn how to debug bfcache and make your page load instantly.
Revisiting Chrome's installability criteria
In the coming months Chrome will be running experiments with the goal of simplifying the app install criteria, to improve developer and user experience. This post shares the changes you can expect, and the reasons we are running these experiments.
Feeds
You can add the following RSS feeds to your feed reader to get automatic updates for areas of the site you are particularly interested in.
View frame details
View frame details.
View, add, edit, and delete cookies
Learn how to view, add, edit, and delete a page's HTTP cookies using Chrome DevTools.
Access local servers and Chrome instances with port forwarding
Host a site on a development machine web server, and then access the content from an Android device.
DevTools Tips: What is DOM? HTML versus DOM
Learn how to debug the DOM with DevTools.
New in Chrome 120
Chrome 120 is rolling out now! With the CloseWatcher API to enable a consistent experience when handling close requests, an straightforward implementation of an accordion pattern using the details element, permission policy violation reports are now available and there's plenty more.
How Chrome DevTools helps to defend against self-XSS attacks
Learn how Chrome DevTools mitigates self-XSS attacks by blocking code pasting for inexperienced users of DevTools.
Private Network Access Permission prompt origin trial: A path to migrate websites with HTTPS
Google Chrome is deprecating access to private network endpoints from non-secure public websites as part of the Private Network Access (PNA) specification.
Introducing four new international features in CSS
Chrome is adding four new international CSS features.
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,
Page Lifecycle API
The Page Lifecycle API brings app lifecycle features common on mobile operating systems to the web. Browsers are now able to safely freeze and discard background pages to conserve resources, and developers can safely handle these interventions without affecting the user experience.
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.
Ignore List
Ignore List tab reference.
Unsanitized HTML in the Async Clipboard API
From Chrome 120, a new unsanitized option is available in the Async Clipboard API. Learn how to use it in this guide.
Automatic picture-in-picture for video conferencing web apps
Chrome allows video conferencing web apps to automatically enter picture-in-picture.
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
What’s new in the Angular NgOptimizedImage directive
Learn about the new features included in the Angular NgOptimizedImage directive that further improve image performance in Angular apps.
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
Modules
Dig deeper into specific Workbox modules.
Service Worker Static Routing API Origin Trial
Learn about the first phase of the Service Worker Static Routing—now in an Origin Trial—a new API for declaratively specifying how routes should be handled (or not) by your Service Worker.
Capturing the WebGPU ecosystem
Learn about how the WebGPU ecosystem extends beyond the JavaScript, C++, and Rust realms.
CSS nesting relaxed syntax update
Lookahead nesting enabled in Chrome 120.
What's new in DevTools (Chrome 120)
Third-party cookie phaseout issues reported in the Issues panel, Privacy Sandbox Analysis Tool for cookies, effective Content Security Policy in the Applications panel, improved animations debugging, enhanced ignore listing, and more.
A change to the default durability mode in IndexedDB
The durability mode in IndexedDB is changing from strict to relaxed from Chrome 121.
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.
Chrome 120 beta
CSS masking, relaxed rules for CSS nesting, create accordion patterns with the element, the enterpictureinpicture action for the Media Session API.
file_handlers
Reference documentation for the file_handlers property of manifest.json.
WebAssembly Garbage Collection (WasmGC) now enabled by default in Chrome
There are two types of programming languages: garbage-collected programming languages and programming languages that require manual memory management. With to WebAssembly Garbage Collection, garbage-collected languages can be ported to WebAssembly.
New in Chrome 119
Chrome 119 is rolling out now! With an update to the expiration date upper limit for cookies already in storage. CSS has new pseudo classes, relative color syntax, Fenced Frames improvements like ad size macros, and there’s plenty more.
CSS prefers-reduced-transparency
Optimize and adjust for users who prefer an opaque UI.
What's New in WebGPU (Chrome 119)
Filterable 32-bit float textures, unorm10-10-10-2 vertex format, rgb10a2uint texture format, and more.
Select element: now with horizontal rules
Learn how expanded select element capabilities enable visual horizontal breaks for better grouping.
CSS text-wrap: pretty
Opt-in optimized text wrapping, for beauty over speed.
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.
Chromium issue tracker migration
Chromium issue tracking is migrating to a tool powered by the Google Issue tracker in January 2024.
Sanitizer API deprecation
The current Sanitizer API implementation is deprecated from Chrome 119 to catch up with future specification updates.
Serial over Bluetooth on the web
The Web Serial API added support for Bluetooth RFCOMM services.
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.
Find and follow a bug
Check whether a bug or feature request has already been reported.
Submit a feature request
Submit a request for a feature that you believe could improve the extension platform.
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.
CSS relative color syntax
Create new colors based on another color's channels and values.
New in Chrome 118
Chrome 118 is rolling out now! Declare specific styles within a component with the @scope css rule. Use new media feature: prefers-reduced-transparency. DevTools has improvements in the Sources panel and there's plenty more.
What's New in DevTools (Chrome 119)
Improved @property section in Styles, updated devices list, enhanced pretty-printing in Sources and autocompletion in the Console.
API Improvements for working with files in the browser
Support for multiple readers and writers for FileSystemSyncAccessHandle and exclusive writer for FileSystemWritableFileStream. The origin private file system (sometimes also referred to as the bucket file system) allows developers to access files
New origin trial for fullscreen popup windows
There's now a new origin trial available for opening popup windows in fullscreen mode with just one step.
Chrome 119 beta
Chrome 119 beta brings you CSS relative color syntax, new pseudo-classes, and much more.
Limit the reach of your selectors with the CSS @scope at-rule
Learn how to use @scope to select elements only within a limited subtree of your DOM.
Chrome now supports passkeys on iCloud Keychain on macOS
Chrome on macOS starts supporting passkeys on iCloud Keychain. This lets users create passkeys on iCloud Keychain and synchronize them across Apple devices.
What's New in WebGPU (Chrome 118)
Extended source support for copyExternalImageToTexture, experimental support for read-write and read-only storage texture, and more.
DevTools Tips: Debugging Chrome extensions
Learn how to use DevTools to debug Chrome extensions.
Seamless navigation made possible with view transitions
An in-depth walkthrough of how and why CyberAgent, RedBus, Nykaa, and PolicyBazaar implemented view transitions.
Storage and cookies
Overview of how web storage APIs and cookies work in extensions.
We are Chrome for Developers
Celebrating Chrome's 15th anniversary and our role as a trusted, helpful partner to developers.
From WebGL to WebGPU
Learn some tips for WebGL developers who are migrating to WebGPU.
What's New in DevTools (Chrome 118)
New section for custom properties in Elements > Styles, more local overrides improvements, enhanced search, streamlined workspace in Sources, and more.
Chrome 118 beta
Scoped styles for CSS, additional media features, keyboard-focusable scroll containers, and more.
New in Chrome 117
Chrome 117 is rolling out now! With three new CSS features that make it easy to add smooth entry and exit animations, array grouping to compute higher order datasets, devtools makes local overrides easier and there’s plenty more.
Transition from Chrome Apps
How to migrate your Chrome packaged or hosted app.
What's New in WebGPU (Chrome 117)
Unset vertex buffer and bind group, make lost devices appear to function, and more.
Publish your extension
Guidance for publishing a new Manifest V3 extension
Google Summer of Code and Chrome Extensions
Experience and advice on participating in Google Summer of Code.
DevTools Tips: Snippets and live expressions
Use Snippets to run code you frequently use and live expressions to watch values in real time.
Astro View Transitions
Highlight how the Astro community embraced View Transitions when Chrome was shaping up the API and the journey towards landing first-class support for it in Astro + persistent islands.
Faster Chrome releases (round two!)
From Chrome 119, we will shorten the time between the branch for a release and release to stable.
Introducing the scheduler.yield origin trial
`scheduler.yield` is a proposed new addition to the scheduler API currently in origin trial, and is a novel approach to breaking up tasks for more responsive user experiences. Understand the benefits of this proposed addition to the scheduling API, and sign up for the origin trial to help us gain insights and feedback.
Craft your Chrome Devtools Protocol (CDP) commands efficiently with the new command editor
To make it easier to type Chrome Devtools Protocol (CDP) commands, DevTools introduced a new user-friendly editor so that you don't have to use JSON.
What's new in Lighthouse 11
Lighthouse 11 is here with new accessibility changes and audit updates
What's New in DevTools (Chrome 117)
Override XHR/fetch requests and hide extension requests from the Network panel, see changes in fetch priority in the Performance panel, experience multiple UI improvements, check out new colors and experimental features, and more.
Four new CSS features for smooth entry and exit animations
Learn about new capabilities that enable smooth transitioning of discrete animations and between the top layer
Chrome 117 beta
CSS grid subgrid, entry and exit animation support for CSS, array grouping, iterator helpers, and more.
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.
New in Chrome 116
Chrome 116 is rolling out now! Use the document picture in picture API to increase user productivity, it is now easier to debug missing stylesheets in DevTools, and there’s plenty more.
Manifest - content scripts
Reference documentation for the "content_scripts" property of manifest.json.
Chrome for Developers
User-agent: * Disallow: Sitemap: https://developer.chrome.com/sitemap.xml
Secure popup interactions with restrict-properties
Get cross-origin isolation and cross-site leaks protection while interacting with popups.
What's New in WebGPU (Chrome 116)
WebCodecs integration, video playback improvements, and more.
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.
One-time permissions in Chrome
"Allow this time" is a one-time option for permission grants in Chrome. It will initially be available on desktop only for geolocation, camera, and microphone.
DevTools Tips: Breakpoints and logpoints
Use breakpoints and logpoints to debug with ease.
PostMessage for TWA
From Chrome 115 Trusted Web Activities (TWA) can send messages using postMessage. This document walks through the setup needed to communicate between your app and the web.
What's new in Chrome 116 for Extensions
A summary of important changes in Chrome 116 for Chrome Extension developers.
Chrome 116 beta
CSS motion path, Back/forward cache NotRestoredReason API, Document Picture-in-Picture, and more.
Debugging websites in Chrome on iOS 16.4+
Learn how to use Safari Web Inspector debugging for Chrome on iOS.
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.
New in Chrome 115
Use ScrollTimeline and ViewTimeline to create scroll-driven animations that enhance user experience. Fenced frames work along other Privacy Sandbox APIs to embed relevant content while preventing unnecessary context sharing. With the Topics API the browser can share information with third parties about a user's interests while preserving privacy and there’s plenty more.
A case study on scroll-driven animations performance
The new API is much smoother than the classic way of implementing scroll-driven animations.
DevTools Tips: Record and replay user flows with the Recorder
Learn how to record, replay, and debug user flows with the Recorder panel in DevTools.
Use WebSockets in service workers
Step-by-step instructions on how to connect to a WebSocket in your Chrome extension.
WebRTC: Legacy getStats() migration guide
Learn how to use Safari Web Inspector debugging for Chrome on iOS.
DevTools Tips: Local and session storage
Use Application > Local Storage and Session Storage to debug key-value pairs.
Better full screen mode with the Keyboard Lock API
Use the Keyboard Lock API to capture the Escape key in full screen mode. If you've ever played a full screen web game that popped up an in-game dialog that you instinctively canceled with the Escape key, you probably found yourself kicked out of full
What's New in DevTools (Chrome 116)
DevTools gets a number of improvements to help you identify and debug issues with missing stylesheets faster: The Network panel consistently populates the Initiator column with links to the exact line that references a stylesheet that failed to load.
Use geolocation
How to use geolocation in Chrome extension service workers, popups, side panels, or content scripts.
What's New in WebGPU (Chrome 115)
Supported WGSL language extensions, experimental support for Direct3D 11, and more.
Chrome for Testing: reliable downloads for browser automation
Chrome for Testing is a new Chrome flavor that specifically targets web app testing and automation use cases.
Debug C/C++ WebAssembly
Learn how to use Chrome DevTools to find and fix bugs in C/C++ WebAssembly.
How Photoshop solved working with files larger than can fit into memory
Learn how Adobe managed to let users edit even the biggest files on the web version of its iconic Photoshop app. (This article is also available in form of a video.) In 2021, Adobe, together with Chrome engineering, brought a version of Photoshop to
How vector image editing app Boxy SVG uses the Local Font Access API to let users pick their favorite local fonts
The Local Font Access API provides a mechanism to access the user's locally installed font data, including higher-level details such as names, styles, and families, as well as the raw bytes of the underlying font files. Learn how the SVG editing app
Chrome 115 beta
Multiple keywords for the CSS display property, WGSLLanguageFeatures for WebGPU, HTTPS upgrades, and more.
Migrate away from data URLs in SVG element
Support for data: URLs in SVG element will be removed. We recommend migration to alternatives.
What's New in WebGPU (Chrome 114)
JavaScript optimization and more.
Mutation events will be removed from Chrome
Announcing the deprecation and planned removal of mutation events, and sharing how you can migrate your code before the removal in July 2024.
Chrome disables modifying document.domain
If your website relies on setting document.domain, your action is required.
Design a superior user experience with the new Side Panel API
Introducing the new Side Panel API for Chrome extensions.
What's New in DevTools (Chrome 115)
The Elements panel gets a new subgrid badge for subgrid. This feature is currently experimental in Chrome Canary. To inspect and debug a nested grid that is a subgrid, and therefore inheriting the number and size of tracks from its parent, click the
New in Chrome 114
Chrome 114 is rolling out now! Chrome 114 is rolling out now! With text-wrap: balance to improve text layouts, Cookies Having Independent Partitioned State are here, the new Popover API makes popovers easier than ever, and there’s plenty more.
Help test bounce tracking mitigations
We plan to launch mitigations to limit tracking from a particular technique called "bounce tracking" later this year. We would like to invite developers to test this new feature with feature flags and provide feedback.
How the game editor Construct 3 uses the File System Access API to let users save their games
The File System Access API allows read, write, and file management capabilities. Learn how Construct 3 makes use of this API. (This article is also available in form of a video.) Construct 3 is a game editor developed by the brothers Thomas and
Announcing the second Compute Pressure origin trial
A new origin trial from Chrome that allows web developers to monitor compute pressure.
DevTools Tips: Workspace
Use Workspace to save changes you make in DevTools to local source files.
Create complex animation curves in CSS with the linear() easing function
Introducing linear(), an easing function in CSS that interpolates linearly between its points, allowing you to recreate bounce and spring effects.
Manifest - background
Reference documentation for the background property of manifest.json.
Introducing the popover API
Learn how to build tooltips, menus, and more with the new popover API.
How LEGO® Education uses the Web Bluetooth and the Web Serial APIs
LEGO Education uses the power of the web to make connecting LEGO models to the computer as simple as possible.
What's New with Aurora?
Learn what the Chrome Aurora team has been up to lately and their roadmap for 2023.
How the 3D model editor Blockbench uses the EyeDropper API to let users choose colors from everywhere
The EyeDropper API provides a mechanism for creating an eyedropper tool that lets users sample colors from their screens, including outside of the browser window. Learn how the 3D model editor Blockbench uses this API in their codebase. (This article
Web SQL deprecation timeline updated
Web SQL was completely removed in Chromium 119.
How the image editing app Photopea uses the File Handling API to let users open files from their file explorer
The File Handling API allows web applications to register themselves as a file handler for file formats the application can support. Learn how the image editing application Photopea makes use of this API. (This article is also available in form of a
Storage Buckets origin trial available
The Storage Standard defines an API for persistent storage and quota estimates, and the platform storage architecture. We're experimenting with an API for making persistent storage eviction under heavy memory pressure more predictable. Try the Storage Buckets API in an origin trial that runs from Chrome 115 to Chrome 118.
What's new in CSS and UI: I/O 2023 Edition
The top 20 CSS and UI features highlighted at Google I/O 2023 that you don't want to miss.
10 updates at Google I/O
Learn how we're making it easier for developers to deliver powerful experiences to their users through key updates and new launches that we shared at Google I/O 2023.
What’s new for web on Android 2023
Updates to tools that bring the web to Android. Privacy enhancements and better support for large screens in WebView, partial custom tabs in Custom Tabs, easier installation and integrated features for PWA, Play Store billing management for TWA and more.
Find form issues with Chrome DevTools
The Chrome DevTools team is building additional new features to help find form issues and debug Autofill. These features are at an early stage of design and implementation, and we need your testing and feedback.
Shared autofill across iframes: an initial proposal
Some forms have fields in iframes, which causes problems for browser autofill. With shared-autofill, the parent frame can designate the trustworthiness of cross-origin iframes, to support a better autofill experience for the user.
WebGPU: Unlocking modern GPU access in the browser
Learn how WebGPU unlocks the power of the GPU for faster machine learning performance and better graphics rendering.
WebDriver BiDi: 2023 status update
This article gives an overview of what’s new in WebDriver BiDi in 2023.
Get ready for Google I/O
Build your own agenda to prepare for Google I/O.
What's New in DevTools (Chrome 114)
DevTools enables Settings > Experiments > WebAssembly Debugging: Enable DWARF support by default. For more information, see Debugging WebAssembly with modern tools. This experiment lets you pause execution and debug C and C++ code in Wasm apps,
Animate elements on scroll with Scroll-driven animations
Learn how to work with Scroll Timelines and View Timelines to create scroll-driven animations in a declarative way.
About extension service workers
Extension service workers are an extension's central event handler. That makes them different from web service workers.
New in Chrome 113
Chrome 113 is rolling out now! WebGPU is here, it allows high-performance 3D graphics and data-parallel computation on the web, devtools can now override network response headers, First Party Sets, part of the Privacy Sandbox, that allows organizations to declare related sites is starting to roll out, and there's plenty more.
Chrome 114 beta
CSS headline balancing, CHIPS, the scrollend event, and popover.
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.
Blur camera background
A new origin trial from Chrome that allows web developers to control camera background blur.
Events in service workers
Extension service workers respond to both standard service worker events and many events in the extension APIs.
Improved video calling with faster AV1 encoding
Chrome 113 includes improvements to the AV1 software encoder from the Chrome Open Media team.
Extension service worker basics
Extension service workers are installed and updated differently from web service workers.
What's New in WebGPU (Chrome 113)
WebGPU ships in Chrome with WebCodecs integration in origin trial.
CSS update Media Query
Adapt your UI to the screen's refresh rate capabilities.
DevTools Tips: Source maps in DevTools
Use source maps in DevTools to debug your original code instead of deployed.
Developer Resources: View and manually load source maps
Use the Developer Resources panel to check if source maps load successfully and load them manually.
Warm-up and pre-fetch: using the Custom Tabs Service
Learn how to take advantage of the Custom Tabs Service for an improved user experience.
Customizing the UI
How to make a Custom Tab match the look and feel of your app.
Getting started
How to launch a Custom Tab from your Android app.
Multi-tasking with Partial Custom Tabs
Learn how to you use partial Custom Tabs to let your users interact with your app while viewing web content.
Adding custom interactivity
How to add custom actions to a Custom Tabs.
Measure user engagement
How to measure user engagement in Custom Tabs.
Richer UI install available for desktop
Mobile devices and app stores have changed how users discover, evaluate, and install software. Web apps now offer a surface for developers to highlight their apps at install time.
A look back in time: the evolution of test automation
A journey into the evolution of test automation on the web.
Audio recording and screen capture
How to record audio or video from a tab, window, or screen.
The Chromium Chronicle #33: Views AnimationBuilder
Using layer based animations in Views can improve performance and reduce jankiness, but they're rather difficult to set up. The AnimationBuilder classes can vastly reduce complexity and improve readability for layer animations. Suppose you needed to
Solving the CSS layout and source order disconnect
Your feedback is wanted on a proposed solution for the problem of layout methods arranging items in an order that is disconnected from the source of the document.
What's New in DevTools (Chrome 113)
You can now override response headers in the Network panel. Previously, you needed access to the web server to experiment with HTTP response headers. With response header overrides, you can locally prototype fixes for various headers, including but
How the new Breakpoints sidebar helps you debug faster
To make it easier to perform common actions such as deleting or disabling breakpoints, we've redesigned the breakpoints sidebar so that you can perform them with a single click.
Chrome ships WebGPU
The Chrome team ships WebGPU, which allows high-performance 3D graphics and data-parallel computation on the web.
Chrome 113 beta
New CSS media features, the linear() easing function, and WebGPU.
Faster Chrome releases
From Chrome 114 there will less time between the branch for a release and release to stable.
New in Chrome 112
Chrome 112 is rolling out now! Now CSS supports nesting rules, the algorithm to set the initial focus on dialog elements was updated, no-op fetch handlers on service workers are skipped from now on to make navigations faster and there’s plenty more.
Handle events with service workers
Learn how to create and debug an extension service worker.
DevTools Tips: What are source maps?
Learn how source maps can help you debug your original code instead of deployed.
The ignoreList source map extension
Improve debugging experience in Chrome DevTools with the ignoreList source map extension.
Specify how multiple animation effects should composite with animation-composition
When multiple animations affect the same property simultaneously, should they replace each other, add, or accumulate?
From Web SQL to SQLite Wasm: the database migration guide
With SQLite Wasm backed by the origin private file system, there is a versatile replacement for the deprecated Web SQL database technology. This article is a guide to migrating your data from Web SQL to SQLite Wasm. The post Deprecating and removing
Partnering with Fastly—Oblivious HTTP relay for FLEDGE's 𝑘-anonymity server
We are improving Chrome’s privacy measures by partnering with Fastly to implement the 𝑘-anonymity server for FLEDGE. With data being relayed through an OHTTP relay in this implementation, Google servers do not receive the IP addresses of end users. The 𝑘-anonymity server is an incremental step towards the full implementation of FLEDGE.
Improving user privacy by requiring opt-in to send X-Requested-With header from WebView
We want to protect user privacy by limiting when the X-Requested-With header is sent.
Chrome 112 beta
CSS nesting, animation-composition, and a submitter parameter for the FormData constructor.
Update your code
The first of three sections describing changes needed for code that is not part of the extension service worker.
What's New in DevTools (Chrome 112)
The Recorder introduces support for custom replay options that you can embed into DevTools with an extension. Try out the example extension. Select the new custom replay option to open the custom replay UI. To customize the Recorder to your needs and
Migrate to a service worker
A service worker enables extensions to run only when needed, saving resources.
Replace blocking web request listeners
The second 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.
SPA view transitions land in Chrome 111
The View Transition API allows page transitions within single-page apps, and will later include multi-page apps.
Manifest V3 migration checklist
A quick reference for upgrading your extensions from Manifest V2 to Manifest V3.
Improve extension security
The last of three sections describing changes needed for code that is not part of the extension service worker.
CSS Nesting
One of our favorite CSS preprocessor features is now built into the language: nesting style rules.
New in Chrome 111
Chrome 111 is rolling out now! Create polished transitions in your single page app with the View Transitions API, and bring colors to the next level with support for CSS color level 4. Discover new tools in the style panel to make the most of the new color functionality, and there’s plenty more.
A new home for the Project Fugu API Showcase
The Project Fugu API Showcase is a collection of apps that make use of APIs that are part of Project Fugu. The cross-company Capabilities Project (code name Project Fugu ) at Google has the objective of making it possible for web apps to do anything
Privacy win! Users now share their screens more wisely
Using the nudge theory, we got users to stop shooting themselves in the foot during video conferencing calls.
Tether elements to each other with CSS anchor positioning
A new API is coming to the web platform to help you position elements in an adaptive way with no tricks.
Working with the industry to evolve CHIPS
Exploring two challenges that the Chrome team faced in implementing CHIPS and how community feedback played a key role in evolving the proposal design.
Framework tools for font fallbacks
Learn how Next.js, Nuxt.js, and other libraries help to generate fallback font CSS without CLS.
Improving standards of behavior in standards discussions
How the Chrome team aims to encourage more professional, respectful and inclusive discussions.
Native messaging
Exchange messages with native applications from your Chrome Extension.
Getting Started with Style Queries
Style queries allow developers to query a parent element's style values using the @container rule. In Chrome 111, style queries for CSS custom properties are landing stable. Learn how to get started with them.
DevTools Tips: Discover CSS issues
Use the Styles and Computed panes to discover CSS issues with DevTools.
Get help with Chrome extensions
Where to go for help with questions not covered by the documentation.
Workspace
Workspace tab reference.
Shortcuts
Shortcuts tab reference.
Locations
Locations tab reference.
Devices
Devices tab reference.
Experiments
Experiments tab reference.
What's New in DevTools (Chrome 111)
Debugging HD color, enhanced breakpoint UX, and more.
Settings overview
Settings overview.
Improved font fallbacks
The new `size-adjust` and font metric overrides allow developers to create font fallbacks that closely match web fonts. This reduces layout shifts.
What's new in Lighthouse 10
Lighthouse 10 is here with new scoring and audits.
Chrome 111 beta
New CSS color types and color spaces, CSS trigonometric functions, and the View Transitions API.
More control over :nth-child() selections with the of S syntax
Pre-filter a set of child elements before applying An+B logic on it.
Talking to the Stadia controller with WebHID
The flashed Stadia controller acts like a standard gamepad, which means not all its buttons are accessible using the Gamepad API. With WebHID, you can now access the missing buttons. Since Stadia shut down, many feared that the controller would end
What are Chrome flags?
Enable additional debugging tools or try out new or experimental features in Chrome.
New in Chrome 110
Chrome 110 is rolling out now! Add custom style to your picture-in-picture elements with the new :picture-in-picture pseudo-class, set your web app launch behavior with launch_handler, use the credentialless attribute in iframes to embed third party content that doesn’t set a cross origin embedder policy and there’s plenty more.
How to use the CrUX History API
Learn about the CrUX History API and how to use it to track user experience trends.
What's New In DevTools (Chrome 110)
Clearing Performance panel on reload, view and highlight the code in the Recorder, and more.
The Chromium Chronicle #32: Mind the patch gap
Learn how Chromium developers can reduce the chance of n-day exploitation.
New requirements for the Web Share API in third-party iframes
For improved privacy and security, Web Share API calls in third-party iframes now need to be explicitly allowed. This article covers a potentially breaking change in the Web Share API. This change is already in Firefox, will land in Chrome from
High definition CSS color guide
CSS Color 4 brings wide gamut color tools and capabilities to the web.
Meet the new CSS color spaces
CSS Color 4 brings wide gamut color tools and capabilities to the web: more colors, manipulation functions, and better gradients.
Migrate to HD CSS color
CSS Color 4 brings wide gamut color tools and capabilities to the web.
The future of Picture-in-Picture
News of an origin trial from Chrome that enables arbitrary HTML content in an always-on-top window.
Private Network Access update: Announce extension of the Deprecation Trial
Chrome is deprecating access to private network endpoints from non-secure public websites as part of the Private Network Access specification. A deprecation trial is available until Chrome 113.
Access more colors and new spaces
CSS Color 4 brings wide gamut color tools and capabilities to the web.
Test service worker termination with Puppeteer
A guide explaining how to test service worker termination using Puppeteer.
CSS color-mix()
Mix colors, in any of the supported color spaces, right from your CSS.
DevTools Tips: Debugging PWA
Debug Progressive Web Apps with DevTools.
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.
Basic offline page for web apps on Chrome Android
From Chrome 109, the browser will automatically generate a default page to indicate that the app is currently offline when an installed web app on Android does not have its own offline experience.
Offscreen Documents in Manifest V3
Introducing the Offscreen Documents API for Chrome extension development.
Scrollend, a new JavaScript event
Delete your timeout functions and shake off their bugs, here's the event you really need: scrollend.
What's new in DevTools
Stay up to date with the latest DevTools changes.
Control your drop caps with CSS initial-letter
Say "Goodbye" to interesting workarounds to style your drop caps!
Discovering the capable web
What advanced web capabilities does your browser support? And what are the web apps that make use of these capabilities? To answer these questions, check out a browser testing site and a browser extension. Project Fugu is a cross company effort to
Ensure the page can be restored from the back/forward cache
How to use Lighthouse to test if a page can be restored from the back/forward cache.
Cookie Expires and Max-Age attributes now have upper limit
As of Chrome release M104 (August 2022) cookies can no longer set an expiration date more than 400 days in the future.
Iframe credentialless: Easily embed iframes in COEP environments
Iframe credentialless is implemented in Chrome 110. It provides developers a way to load documents in third-party iframes using a new and ephemeral context. In return, they are no longer subject to the COEP embedding rules. Developers using COEP can now embed third party iframes that do not use COEP themselves.
Chrome 110 beta
CSS initial letters, web app launch handler, cross-origin iframe support for the FedCM API, and more.
Fetching favicons
How to get a website's favicon.
SQLite Wasm in the browser backed by the Origin Private File System
Use SQLite to handle all your storage needs performantly on the web. SQLite is a popular, open-source, lightweight, embedded relational database management system. Many developers use it to store data in a structured, easy-to-use manner. Because of
Change the destination output device in Web Audio
Learn how to programmatically change the audio output destination in Web Audio.
New in Chrome 109
Chrome 109 is rolling out now. The Origin Private File System API is now available for Android, there is a set of new properties in CSS, you can easily add math notations in your HTML with the support for MathML core, and there’s plenty more.
What's New In DevTools (Chrome 109)
Copy step as script in the Recorder, actual function names in performance’s recordings, and more.
RenderingNG deep-dive: LayoutNG block fragmentation
Block fragmentation in LayoutNG is now complete. Learn how it works and why it is important in this article.
DevTools Tips: Debugging Project Fugu APIs
Use DevTools to debug Project Fugu APIs.
Change in release schedule from Chrome 110
From Chrome 110 an early stable version will be released to a small percentage of users.
Understand Chrome Variations
A mechanism for Chrome to test new browser features
What are Chrome release channels?
Learn how Chrome uses the Canary, Dev, Beta, and Stable release channels to test new features, and roll out updates.
Help choose the syntax for CSS Nesting
The CSS Working Group is continuing a debate over the best way to define nesting in CSS. If you are someone who writes CSS, we’d like your help.
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
Affiliate Ads FAQ
Frequently asked questions about Chrome Web Store's policies on affiliate ads.
Chrome Dev Insider: The year that was
An update from Chrome’s Web Platform team where we take developers behind the scenes to share perspectives, conversations and updates.
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.
Maximize ad relevance
New documentation for the Privacy Sandbox on ad relevance without third-party cookies.
What developers need to know about Chrome's Memory and Energy Saver modes
Learn how to ensure your page can gracefully handle Chrome's new Memory and Energy saver modes.
DevTools Tips: Device Mode
Simulate mobule devices with Device Mode in DevTools.
Chrome 109 beta
MathML, conditional focus for getDisplayMedia(), Origin Private File System on Android, and more.
Secure Payment Confirmation on Chrome Android
Secure Payment Confirmation brings a phishing resistant payment confirmation with the power of passkeys to the web. It will be available in Chrome Android from Chrome 109.
Passwordless sign-in on forms with WebAuthn passkey autofill
WebAuthn conditional UI leverages browser's form autofill functionality to let users sign in with a passkey seamlessly in the traditional password based flow.
Chrome Extensions: Extending API to support Instant Navigation
The Extensions API has been updated to support back/forward cache, preloading navigations.
New in Chrome 108
Chrome 108 is rolling out now. There are new Intl APIs to give you more control when formatting numbers. There’s an origin trial for the new Pop Up API, making it easy to surface critical content to the user. There are a handful of CSS improvements. And there’s plenty more.
Better screen sharing with Conditional Focus
Conditionally focus a tab or window when screen sharing on the web.
Screen sharing improvements in Chrome 109
Details of two screen sharing improvements for the web—a mechanism for controlling tab focus when screen sharing, and a mechanism to control local audio playback.
DevTools Tips: Identify CSS improvements
Use the CSS Overview panel to identify potential CSS improvements.
Find invalid, overridden, inactive, and other CSS
Discover issues with CSS properties at a glance.
Manifest - oauth2
Reference documentation for the oauth2 property of manifest.json.
DevTools Tips: Faster DevTools navigation
Learn how to speed up your workflow with faster DevTools navigation using shortcuts and settings.
CrUX Dashboard
Using the CrUX Dashboard for visualizing BigQuery CrUX data
Not all storage is created equal: introducing Storage Buckets
Storage Buckets is an API for making persistent storage eviction under heavy memory pressure more predictable.
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
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
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
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
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.
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
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
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
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,
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
Prepare for viewport resize behavior changes coming to Chrome on Android
What changes are coming to the viewport resize behavior in Chrome 108, why Chrome is making this change, and what you can do to prepare.
Manifest - input_components
Reference documentation for the input_components property of manifest.json.
Chrome 108 beta
New CSS viewport units, Federated Credential Management API, Variable COLRv1 fonts, and more.
Update to the CanMakePayment event behavior of the Payment Handler API
The `canmakepayment` service worker event in the Payment Handler API lets the merchant know whether the user has a card on file in an installed payment app. Chrome is removing properties attached to the event.
DevTools Tips: Different ways to open DevTools
Discover all the ways to open Chrome DevTools.
What's New In DevTools (Chrome 108)
Hints for inactive CSS properties, new XPath and text selectors in the Recorder, and more.
New in Chrome 107
Chrome 107 is rolling out now! There are new properties in the Screen Capture API that improve the screen sharing experiences.You can now precisely identify whether a resource on your page is render blocking or not.There is a new way to send data to a backend server with the declarative PendingBeacon API in origin trial. And there’s plenty more.
Breaking change: sync methods for AccessHandles
To simplify working with AccessHandles in contexts like Emscripten, we're making the methods of the FileSystemSyncAccessHandle interface synchronous.
DevTools Tips: Discover and fix low contrast text
Learn how to use Chrome DevTools to discover and fix low contrast text.
Make your website more readable
Find and fix low contrast text with DevTools.
Trust Tokens renamed Private State Tokens
Trust Token API will be renamed Private State Token API to better describe its privacy and utility benefits.
Customize and automate user flows beyond Chrome DevTools Recorder
Learn how to customize and automate user flows beyond Chrome DevTools Recorder.
Advanced Web Apps Fund - Update Oct 2022
Through the Advanced Web Apps Fund, we've sponsored 11 projects, distributing more than $100k through the Open Collective, to recognize the importance of this work and to enable more people to spend time on these projects.
Inside the container query polyfill
Learn how the container query polyfill brings container query support to older browsers.
Help pick a syntax for CSS nesting survey results
See the results of 7,590 developers opinions.
A new way to start your Chrome Extension development journey
A better way to start the Chrome developer learning journey.
A change to overflow on replaced elements in CSS
An advanced warning of a change to CSS behavior that may cause unwanted overflow.