CINXE.COM

Chrome 130  |  Release notes  |  Chrome for Developers

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Chrome for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#1a73e8"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/chrome/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/css/app.css"> <link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/css/dark-theme.css" disabled> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/images/favicon.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/images/touchicon-180.png"><link rel="canonical" href="https://developer.chrome.com/release-notes/130"><link rel="search" type="application/opensearchdescription+xml" title="Chrome for Developers" href="https://developer.chrome.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developer.chrome.com/release-notes/130" /><link rel="alternate" hreflang="x-default" href="https://developer.chrome.com/release-notes/130" /><link rel="alternate" hreflang="ar" href="https://developer.chrome.com/release-notes/130?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developer.chrome.com/release-notes/130?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developer.chrome.com/release-notes/130?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developer.chrome.com/release-notes/130?hl=zh-tw" /><link rel="alternate" hreflang="nl" href="https://developer.chrome.com/release-notes/130?hl=nl" /><link rel="alternate" hreflang="fa" href="https://developer.chrome.com/release-notes/130?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developer.chrome.com/release-notes/130?hl=fr" /><link rel="alternate" hreflang="de" href="https://developer.chrome.com/release-notes/130?hl=de" /><link rel="alternate" hreflang="he" href="https://developer.chrome.com/release-notes/130?hl=he" /><link rel="alternate" hreflang="hi" href="https://developer.chrome.com/release-notes/130?hl=hi" /><link rel="alternate" hreflang="id" href="https://developer.chrome.com/release-notes/130?hl=id" /><link rel="alternate" hreflang="it" href="https://developer.chrome.com/release-notes/130?hl=it" /><link rel="alternate" hreflang="ja" href="https://developer.chrome.com/release-notes/130?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developer.chrome.com/release-notes/130?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developer.chrome.com/release-notes/130?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developer.chrome.com/release-notes/130?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developer.chrome.com/release-notes/130?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developer.chrome.com/release-notes/130?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developer.chrome.com/release-notes/130?hl=th" /><link rel="alternate" hreflang="tr" href="https://developer.chrome.com/release-notes/130?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developer.chrome.com/release-notes/130?hl=vi" /><link rel="alternate" hreflang="en-cn" href="https://developer.chrome.google.cn/release-notes/130" /><link rel="alternate" hreflang="x-default" href="https://developer.chrome.google.cn/release-notes/130" /><link rel="alternate" hreflang="ar-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=ar" /><link rel="alternate" hreflang="bn-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=bn" /><link rel="alternate" hreflang="zh-Hans-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=zh-tw" /><link rel="alternate" hreflang="nl-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=nl" /><link rel="alternate" hreflang="fa-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=fa" /><link rel="alternate" hreflang="fr-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=fr" /><link rel="alternate" hreflang="de-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=de" /><link rel="alternate" hreflang="he-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=he" /><link rel="alternate" hreflang="hi-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=hi" /><link rel="alternate" hreflang="id-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=id" /><link rel="alternate" hreflang="it-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=it" /><link rel="alternate" hreflang="ja-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=ja" /><link rel="alternate" hreflang="ko-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=ko" /><link rel="alternate" hreflang="pl-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=pl" /><link rel="alternate" hreflang="pt-BR-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=pt-br" /><link rel="alternate" hreflang="ru-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=ru" /><link rel="alternate" hreflang="es-419-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=es-419" /><link rel="alternate" hreflang="th-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=th" /><link rel="alternate" hreflang="tr-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=tr" /><link rel="alternate" hreflang="vi-cn" href="https://developer.chrome.google.cn/release-notes/130?hl=vi" /><title>Chrome 130 &nbsp;|&nbsp; Release notes &nbsp;|&nbsp; Chrome for Developers</title> <meta property="og:title" content="Chrome 130 &nbsp;|&nbsp; Release notes &nbsp;|&nbsp; Chrome for Developers"><meta name="description" content="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&amp;#39;s plenty more!"> <meta property="og:description" content="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&amp;#39;s plenty more!"><meta property="og:url" content="https://developer.chrome.com/release-notes/130"><meta property="og:locale" content="en"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Release notes", "item": "https://developer.chrome.com/release-notes" },{ "@type": "ListItem", "position": 2, "name": "Chrome 130", "item": "https://developer.chrome.com/release-notes/130" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="chrome-theme" type="release-notes" appearance layout="docs" display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="chromeForDevelopers" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/images/lockup-dark-theme.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Chrome for Developers"> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/images/lockup.svg" class="devsite-site-logo" alt="Chrome for Developers"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab > <a href="https://developer.chrome.com/case-studies" track-metadata-eventdetail="https://developer.chrome.com/case-studies" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - get inspired" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Get inspired" track-name="get inspired" > Get inspired </a> </tab> <tab > <a href="https://developer.chrome.com/blog" track-metadata-eventdetail="https://developer.chrome.com/blog" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - blog" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Blog" track-name="blog" > Blog </a> </tab> <tab class="devsite-dropdown devsite-dropdown-full devsite-active "> <a href="https://developer.chrome.com/docs" track-metadata-eventdetail="https://developer.chrome.com/docs" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - docs" track-metadata-module="primary nav" aria-label="Docs, selected" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" > Docs </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Docs" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs" track-metadata-position="nav - docs" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section build-icon dcc-subnav"> <li class="devsite-nav-title" role="heading" tooltip>Build with Chrome</li> <li class="devsite-nav-description">Learn how Chrome works, participate in origin trials, and build with Chrome everywhere. </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/web-platform" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/web-platform" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="build with chrome" tooltip > <div class="devsite-nav-item-title"> Web Platform </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/capabilities" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/capabilities" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="build with chrome" tooltip > <div class="devsite-nav-item-title"> Capabilities </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/chromedriver" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/chromedriver" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="build with chrome" tooltip > <div class="devsite-nav-item-title"> ChromeDriver </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/extensions" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="build with chrome" tooltip > <div class="devsite-nav-item-title"> Extensions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/webstore" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/webstore" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="build with chrome" tooltip > <div class="devsite-nav-item-title"> Chrome Web Store </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/chromium" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/chromium" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="build with chrome" tooltip > <div class="devsite-nav-item-title"> Chromium </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/aurora" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/aurora" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="build with chrome" tooltip > <div class="devsite-nav-item-title"> Aurora </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/android" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/android" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="build with chrome" tooltip > <div class="devsite-nav-item-title"> Web on Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/origintrials/" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/origintrials/" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="build with chrome" tooltip > <div class="devsite-nav-item-title"> Origin trials </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/release-notes" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/release-notes" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="build with chrome" tooltip > <div class="devsite-nav-item-title"> Release notes </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section productivity-icon dcc-subnav"> <li class="devsite-nav-title" role="heading" tooltip>Productivity</li> <li class="devsite-nav-description">Create the best experience for your users with the web&#39;s best tools.</li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/devtools" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/devtools" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="productivity" tooltip > <div class="devsite-nav-item-title"> DevTools </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/lighthouse" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/lighthouse" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="productivity" tooltip > <div class="devsite-nav-item-title"> Lighthouse </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/crux" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/crux" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="productivity" tooltip > <div class="devsite-nav-item-title"> Chrome UX Report </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/accessibility" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/accessibility" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="productivity" tooltip > <div class="devsite-nav-item-title"> Accessibility </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section dcc-subnav second-column-list"> <li class="devsite-nav-description">Get things done quicker and neater, with our ready-made libraries. </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/workbox" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/workbox" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="productivity" tooltip > <div class="devsite-nav-item-title"> Workbox </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/puppeteer" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/puppeteer" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="productivity" tooltip > <div class="devsite-nav-item-title"> Puppeteer </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section experience-icon dcc-subnav"> <li class="devsite-nav-title" role="heading" tooltip>Experience</li> <li class="devsite-nav-description">Design a beautiful and performant web with Chrome. </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/ai" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/ai" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="experience" tooltip > <div class="devsite-nav-item-title"> AI </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/performance" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/performance" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="experience" tooltip > <div class="devsite-nav-item-title"> Performance </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/css-ui" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/css-ui" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="experience" tooltip > <div class="devsite-nav-item-title"> CSS and UI </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/identity" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/identity" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="experience" tooltip > <div class="devsite-nav-item-title"> Identity </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/payments" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/payments" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="experience" tooltip > <div class="devsite-nav-item-title"> Payments </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/privacy-security" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/privacy-security" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="experience" tooltip > <div class="devsite-nav-item-title"> Privacy and security </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section resources-icon dcc-subnav"> <li class="devsite-nav-title" role="heading" tooltip>Resources</li> <li class="devsite-nav-description">More from the Chrome team. </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="resources" tooltip > <div class="devsite-nav-item-title"> All documentation </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.dev/baseline" track-type="nav" track-metadata-eventdetail="https://web.dev/baseline" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="resources" tooltip > <div class="devsite-nav-item-title"> Baseline </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.dev" track-type="nav" track-metadata-eventdetail="https://web.dev" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" track-metadata-module_headline="resources" tooltip > <div class="devsite-nav-item-title"> web.dev </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://developer.chrome.com/new" track-metadata-eventdetail="https://developer.chrome.com/new" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - new in chrome" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: New in Chrome" track-name="new in chrome" > New in Chrome </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Release notes" tenant-name="Chrome for Developers" > <form class="devsite-search-form" action="https://developer.chrome.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-appearance-selector></devsite-appearance-selector> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="nl" >Nederlands</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section devsite-header-no-lower-tabs "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developer.chrome.com/release-notes" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Release notes" > Release notes </a> </li> </ul> </div> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" hidden> <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="chromeForDevelopers" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/images/lockup-dark-theme.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Chrome for Developers"> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/images/lockup.svg" class="devsite-site-logo" alt="Chrome for Developers"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/case-studies" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Get inspired" track-name="get inspired" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Get inspired" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Get inspired </span> </a> </li> <li class="devsite-nav-item"> <a href="/blog" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Blog" track-name="blog" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Docs" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Docs </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" > <span class="devsite-nav-text" tooltip menu="Docs"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Docs"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/new" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: New in Chrome" track-name="new in chrome" data-category="Site-Wide Custom Events" data-label="Responsive Tab: New in Chrome" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > New in Chrome </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/release-notes/130" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /release-notes/130" track-type="bookNav" track-name="click" track-metadata-eventdetail="/release-notes/130" ><span class="devsite-nav-text" tooltip>Chrome 130</span></a></li> <li class="devsite-nav-item"><a href="/release-notes/129" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /release-notes/129" track-type="bookNav" track-name="click" track-metadata-eventdetail="/release-notes/129" ><span class="devsite-nav-text" tooltip>Chrome 129</span></a></li> <li class="devsite-nav-item"><a href="/release-notes/128" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /release-notes/128" track-type="bookNav" track-name="click" track-metadata-eventdetail="/release-notes/128" ><span class="devsite-nav-text" tooltip>Chrome 128</span></a></li> <li class="devsite-nav-item"><a href="/release-notes/127" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /release-notes/127" track-type="bookNav" track-name="click" track-metadata-eventdetail="/release-notes/127" ><span class="devsite-nav-text" tooltip>Chrome 127</span></a></li> <li class="devsite-nav-item"><a href="/release-notes/126" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /release-notes/126" track-type="bookNav" track-name="click" track-metadata-eventdetail="/release-notes/126" ><span class="devsite-nav-text" tooltip>Chrome 126</span></a></li> <li class="devsite-nav-item"><a href="/release-notes/125" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /release-notes/125" track-type="bookNav" track-name="click" track-metadata-eventdetail="/release-notes/125" ><span class="devsite-nav-text" tooltip>Chrome 125</span></a></li> <li class="devsite-nav-item"><a href="/release-notes/124" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /release-notes/124" track-type="bookNav" track-name="click" track-metadata-eventdetail="/release-notes/124" ><span class="devsite-nav-text" tooltip>Chrome 124</span></a></li> </ul> <ul class="devsite-nav-list" menu="Docs" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build with Chrome </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/web-platform" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Web Platform" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Web Platform </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/capabilities" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Capabilities" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Capabilities </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/chromedriver" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ChromeDriver" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > ChromeDriver </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/extensions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Extensions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Extensions </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/webstore" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Chrome Web Store" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Chrome Web Store </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/chromium" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Chromium" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Chromium </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/aurora" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Aurora" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Aurora </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/android" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Web on Android" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Web on Android </span> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/origintrials/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Origin trials" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Origin trials </span> </a> </li> <li class="devsite-nav-item"> <a href="/release-notes" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Release notes" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Release notes </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Productivity </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/devtools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: DevTools" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > DevTools </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/lighthouse" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Lighthouse" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Lighthouse </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/crux" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Chrome UX Report" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Chrome UX Report </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/accessibility" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Accessibility" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Accessibility </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/workbox" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Workbox" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Workbox </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/puppeteer" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Puppeteer" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Puppeteer </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Experience </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs/ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: AI" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > AI </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/performance" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Performance" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Performance </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/css-ui" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: CSS and UI" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > CSS and UI </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/identity" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Identity" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Identity </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/payments" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Payments" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Payments </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/privacy-security" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Privacy and security" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Privacy and security </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Resources </span> </span> </li> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: All documentation" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > All documentation </span> </a> </li> <li class="devsite-nav-item"> <a href="https://web.dev/baseline" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Baseline" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Baseline </span> </a> </li> <li class="devsite-nav-item"> <a href="https://web.dev" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: web.dev" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > web.dev </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developer.chrome.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Chrome for Developers" > Chrome for Developers </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developer.chrome.com/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="" > Docs </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developer.chrome.com/release-notes" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Release notes" > Release notes </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <h1 class="devsite-page-title" tabindex="-1"> Chrome 130 </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <p> <p><b>Stable release date:</b> October 15th, 2024</p> <p> Unless otherwise noted, the following changes apply to Chrome 130 stable channel release for Android, ChromeOS, Linux, macOS, and Windows. </p> <aside> Want just the highlights? Check out <a href="/blog/new-in-chrome-130">New in Chrome 130</a>. </aside></p> <!-- ## Browser changes and development tools --> <!-- ## HTML and DOM --> <h2 id="css" data-text="CSS" tabindex="-1">CSS</h2> <h3 id="css_container_queries_flat_tree_lookup" data-text="CSS Container Queries flat tree lookup" tabindex="-1">CSS Container Queries flat tree lookup</h3> <p>The specification for container queries changed to look up flat tree ancestors. This change is only relevant for shadow DOM where an element will now be able to see non-named containers inside shadow trees into which the element or one of its ancestors are slotted, even if the CSS rule does not use <code translate="no" dir="ltr">::part()</code> or <code translate="no" dir="ltr">::slotted()</code>.</p> <p> <p> <small> <a href="https://issues.chromium.org/issues/340876720">Tracking bug #340876720</a> | <a href="https://chromestatus.com/feature/5242724333387776">ChromeStatus.com entry</a> | <a href="https://drafts.csswg.org/css-conditional-5/#container-queries">Spec</a> </small> </p></p> <h3 id="css_nesting_the_nested_declarations_rule" data-text="CSS Nesting: The nested declarations rule" tabindex="-1">CSS Nesting: The nested declarations rule</h3> <p>Keeps bare declarations following a nested rule in their place, by wrapping those declarations in <code translate="no" dir="ltr">CSSNestedDeclarations</code> rules during parsing.</p> <p> <p> <small> <a href="https://web.dev/blog/css-nesting-cssnesteddeclarations">CSS nesting improves with CSSNestedDeclarations</a> | <a href="https://chromestatus.com/feature/5084403030818816">ChromeStatus.com entry</a> </small> </p></p> <h3 id="full_and_unprefixed_box-decoration-break_support" data-text="Full and unprefixed box-decoration-break support" tabindex="-1">Full and unprefixed <code translate="no" dir="ltr">box-decoration-break</code> support</h3> <p>Adds support for <code translate="no" dir="ltr">box-decoration-break: clone</code> both for inline fragmentation (line layout) and block fragmentation (pagination for printing and multicol).</p> <p>Previously in Chrome, only <code translate="no" dir="ltr">box-decoration-break:slice</code> (the initial value) was supported for block fragmentation, whereas for inline fragmentation, <code translate="no" dir="ltr">box-decoration-break:clone</code> was also supported, but only when using the prefixed <code translate="no" dir="ltr">-webkit-box-decoration-break</code> property.</p> <p> <p> <small> <a href="/blog/box-decoration-break">The box-decoration-break property in Chrome 130</a> | <a href="https://issues.chromium.org/issues/41295617">Tracking bug #41295617</a> | <a href="https://chromestatus.com/feature/5162398704205824">ChromeStatus.com entry</a> | <a href="https://drafts.csswg.org/css-break/#break-decoration">Spec</a> </small> </p></p> <h3 id="allow_more_pseudo-elements_and_pseudo-classes_after_part" data-text="Allow more pseudo-elements and pseudo-classes after ::part()" tabindex="-1">Allow more pseudo-elements and pseudo-classes after <code translate="no" dir="ltr">::part()</code></h3> <p>CSS selectors that use the <code translate="no" dir="ltr">::part()</code> pseudo-element are allowed to have other CSS pseudo-elements (except <code translate="no" dir="ltr">::part()</code>) and many types of other CSS pseudo-classes after them. Combinators are still not allowed after <code translate="no" dir="ltr">::part()</code>, and pseudo-classes that depend on tree structure are not allowed.</p> <p>Previously Chrome only allowed a limited set of pseudo-classes and pseudo-elements after <code translate="no" dir="ltr">::part()</code>. This change allows all of the pseudo-classes and pseudo-elements that should be allowed. It means selectors such as <code translate="no" dir="ltr">::part(part-name):enabled</code> and <code translate="no" dir="ltr">::part(part-name)::marker</code> are now allowed.</p> <p> <p> <small> <a href="https://issues.chromium.org/issues/40623497">Tracking bug #40623497</a> | <a href="https://chromestatus.com/feature/5195333643272192">ChromeStatus.com entry</a> | <a href="https://drafts.csswg.org/css-shadow-parts-1/#part">Spec</a> </small> </p></p> <!-- ## JavaScript --> <!-- ## Loading --> <!-- ## Media --> <h2 id="web_apis" data-text="Web APIs" tabindex="-1">Web APIs</h2> <h3 id="compression_dictionary_transport_with_shared_brotli_and_shared_zstandard" data-text="Compression dictionary transport with shared Brotli and shared Zstandard" tabindex="-1">Compression dictionary transport with shared Brotli and shared Zstandard</h3> <p>This feature adds support for using designated previous responses, as an external dictionary for content encoding compressing responses with Brotli or Zstandard.</p> <p>Enterprises might experience potential compatibility issues with enterprise network infrastructure that intercepts HTTPS traffic and is sensitive to unknown content encodings. The enterprise policy <code translate="no" dir="ltr">CompressionDictionaryTransportEnabled</code> is available to turn off the compression dictionary transport feature.</p> <p> <p> <small> <a href="https://issues.chromium.org/issues/40255884">Tracking bug #40255884</a> | <a href="https://chromestatus.com/feature/5124977788977152">ChromeStatus.com entry</a> | <a href="https://datatracker.ietf.org/doc/draft-ietf-httpbis-compression-dictionary">Spec</a> </small> </p></p> <h3 id="concurrent_smooth_scrollintoview" data-text="Concurrent smooth scrollIntoView()" tabindex="-1">Concurrent smooth <code translate="no" dir="ltr">scrollIntoView()</code></h3> <p>The <a href="https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView"><code translate="no" dir="ltr">scrollIntoView()</code></a> method with <code translate="no" dir="ltr">behavior: &quot;smooth&quot;</code> lets you create scroll containers that scroll to their descendants with a gentle scroll animation. This feature fixes Chrome&#39;s implementation of the API so that ongoing <code translate="no" dir="ltr">scrollIntoView</code> animations are not canceled by unrelated scrolls on other scroll containers.</p> <p>The feature also fixes cases where Chrome fails to scroll to a page&#39;s fragment anchor because of a competing <code translate="no" dir="ltr">scrollIntoView</code> that is invoked when the page loads.</p> <p> <p> <small> <a href="https://davmila.github.io/MultiSmoothScrollDemo">Demo</a> | <a href="https://issues.chromium.org/issues/325081538">Tracking bug #325081538</a> | <a href="https://chromestatus.com/feature/6270155647352832">ChromeStatus.com entry</a> | <a href="https://www.w3.org/TR/cssom-view-1/#dom-element-scrollintoview">Spec</a> </small> </p></p> <h3 id="document_picture-in-picture_add_option_to_ignore_window_bounds_cache" data-text="Document picture-in-picture: add option to ignore window bounds cache" tabindex="-1">Document picture-in-picture: add option to ignore window bounds cache</h3> <p>This adds a new parameter (<code translate="no" dir="ltr">preferInitialWindowPlacement</code>) to the document picture-in-picture API that, when set to true, hints to the browser that it shouldn&#39;t try to reuse the position or size of the previous document picture-in-picture from this site when opening this one.</p> <p>Often, a document picture-in-picture window will close and re-open multiple times for the same site, such as moving a video conference to and from PiP. The browser is free to re-open the PiP window at its most recent size and location, so that it stays where the user last moved it and provides continuity between the PiP windows. However, if the new window is semantically unrelated to the previous window, such as if it is a new video call, then you can use this parameter to provide a hint to the user agent that this window might be better opened in its default position and size instead.</p> <p>Learn about how to <a href="/docs/web-platform/document-picture-in-picture#open_the_picture-in-picture_window_in_its_default_position_and_size">open the window in its default position and size</a>.</p> <p> <p> <small> <a href="https://developer.chrome.com/docs/web-platform/document-picture-in-picture#open_the_picture-in-picture_window_in_its_default_position_and_size">Picture-in-Picture for any Element, not just video</a> | <a href="https://chromestatus.com/feature/5183881532932096">ChromeStatus.com entry</a> | <a href="https://github.com/WICG/document-picture-in-picture/pull/119">Spec</a> </small> </p></p> <h3 id="improved_error_reporting_in_indexeddb_for_large_value_read_failures" data-text="Improved error reporting in IndexedDB for large value read failures" tabindex="-1">Improved error reporting in IndexedDB for large value read failures</h3> <p>Change to reporting for certain error cases that were previously reported with a <code translate="no" dir="ltr">DOMException</code> and the message &quot;Failed to read large IndexedDB value&quot;.</p> <p>Chrome now raises a <code translate="no" dir="ltr">DOMException</code> with the name <code translate="no" dir="ltr">&quot;NotFoundError&quot;</code> when the file containing the data being read by an IDBRequest is missing from the disk so that sites can take the appropriate corrective action when an unrecoverable failure occurs. Corrective actions could include deleting the entry from the database, notifying the user, or re-fetching the data from servers.</p> <p> <p> <small> <a href="https://issues.chromium.org/issues/362123231">Tracking bug #362123231</a> | <a href="https://chromestatus.com/feature/5140210640486400">ChromeStatus.com entry</a> | <a href="https://www.w3.org/TR/IndexedDB/#dom-idbrequest-error">Spec</a> </small> </p></p> <h3 id="keyboard_focusable_scroll_containers" data-text="Keyboard focusable scroll containers" tabindex="-1">Keyboard focusable scroll containers</h3> <p>This feature makes scrollers without focusable children keyboard-focusable by default.</p> <p>This is an important improvement to help make scrollers and contents within scrollers more accessible to all users. You can read more about its benefits in <a href="/blog/keyboard-focusable-scrollers">Keyboard focusable scrollers</a>. Keyboard focusable scrollers will be enabled by default starting in Chrome 130. If websites need time to adjust to this new feature, there are a few options:</p> <ul> <li>The <a href="/origintrials#/view_trial/2455024746870341633" target="_blank"> Keyboard focusable scrollers opt out deprecation trial</a> can be used to opt back out of the feature for a limited time on a given site. This can be used through Chrome 132, ending March 18, 2025.</li> <li>The <a href="https://chromeenterprise.google/policies/#KeyboardFocusableScrollersEnabled"><code translate="no" dir="ltr">KeyboardFocusableScrollersEnabled enterprise policy</code></a> available from Chrome 127 can be used for the same purpose.</li> </ul> <aside class="note"><strong>Note:</strong><span> The previous rollout of this feature (started in <a href="/release-notes/127">Chrome 127</a>) was stopped due to web compatibility issues, which should be fixed in the new implementation.</span></aside> <p> <p> <small> <a href="/blog/keyboard-focusable-scrollers">Keyboard focusable scrollers</a> | <a href="https://issues.chromium.org/issues/40113891">Tracking bug #40113891</a> | <a href="https://chromestatus.com/feature/5231964663578624">ChromeStatus.com entry</a> | <a href="https://drafts.csswg.org/css-overflow-3/#scroll-container">Spec</a> </small> </p></p> <h3 id="protected_audience_bidding_and_auction_services" data-text="Protected Audience Bidding and Auction Services" tabindex="-1">Protected Audience Bidding and Auction Services</h3> <p>The Protected Audience API (formerly known as FLEDGE) is a Privacy Sandbox proposal to serve remarketing and custom audience use cases, designed so third parties cannot track user browsing behavior across sites.</p> <p>This feature, Protected Audience Bidding and Auction Services, outlines a way to allow Protected Audience computation to take place on cloud servers in a trusted execution environment, rather than running locally on a user&#39;s device. Moving computations to cloud servers can help optimize the Protected Audience auction, to free up computational cycles and network bandwidth for a device.</p> <p> <p> <small> <a href="https://chromestatus.com/feature/4649601971257344">ChromeStatus.com entry</a> | <a href="https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md">Spec</a> </small> </p></p> <h3 id="support_non-special_scheme_urls" data-text="Support non-special scheme URLs" tabindex="-1">Support non-special scheme URLs</h3> <p>Previously, Chrome&#39;s URL parser didn&#39;t support non-special URLs. The parser parses non-special URLs as if they had an &quot;opaque path&quot;, which is not aligned with the URL Standard. Now, Chromium&#39;s URL parser parses non-special URLs correctly, following the URL Standard.</p> <p> <p> <small> <a href="http://bit.ly/url-non-special">Support Non-Special Scheme URLs</a> | <a href="https://issues.chromium.org/issues/40063064">Tracking bug #40063064</a> | <a href="https://chromestatus.com/feature/5201116810182656">ChromeStatus.com entry</a> | <a href="https://url.spec.whatwg.org/">Spec</a> </small> </p></p> <h3 id="webassembly_javascript_string_builtins" data-text="WebAssembly JavaScript String Builtins" tabindex="-1">WebAssembly JavaScript String Builtins</h3> <p>This feature exposes common JavaScript string operations for import into WebAssembly. This lets you create and manipulate JavaScript strings from WebAssembly without support within WebAssembly. This still allows for a similar performance as supported string references.</p> <p> <p> <small> <a href="https://chromestatus.com/feature/6695587390423040">ChromeStatus.com entry</a> | <a href="https://github.com/WebAssembly/js-string-builtins/blob/main/proposals/js-string-builtins/Overview.md">Spec</a> </small> </p></p> <h3 id="web_serial_connected_attribute_and_rfcomm_connection_events" data-text="Web Serial: connected attribute and RFCOMM connection events" tabindex="-1">Web Serial: <code translate="no" dir="ltr">connected</code> attribute and RFCOMM connection events</h3> <p>This feature adds a boolean <code translate="no" dir="ltr">SerialPort.connected</code> attribute. The attribute returns <code translate="no" dir="ltr">true</code> if the serial port is logically connected. For wired serial ports, a port is logically connected if the port is physically attached to the system. For wireless serial ports, a port is logically connected if the device hosting the port has any open connections to the host.</p> <p>Previously, only wired serial ports dispatched connect and disconnect events. With this feature, Bluetooth RFCOMM serial ports will dispatch these events when the port becomes logically connected or disconnected.</p> <p>This feature is intended to allow applications to detect when a Bluetooth RFCOMM serial port is available without opening the port.</p> <p>Learn more in <a href="/blog/bluetooth-rfcomm-updates-web-serial">Bluetooth RFCOMM updates in Web Serial</a>.</p> <p> <p> <small> <a href="/blog/bluetooth-rfcomm-updates-web-serial">Bluetooth RFCOMM updates in Web Serial</a> | <a href="https://issues.chromium.org/issues/40283485">Tracking bug #40283485</a> | <a href="https://chromestatus.com/feature/5118102654418944">ChromeStatus.com entry</a> | <a href="https://wicg.github.io/serial/#serialport-interface">Spec</a> </small> </p></p> <h2 id="rendering_and_graphics" data-text="Rendering and graphics" tabindex="-1">Rendering and graphics</h2> <h3 id="webgpu_dual_source_blending" data-text="WebGPU: Dual source blending" tabindex="-1">WebGPU: Dual source blending</h3> <p>Adds the optional GPU feature &quot;dual-source-blending&quot; that enables combining two fragment shader outputs into a single framebuffer. This technique is particularly useful for applications that require complex blending operations, such as those based on Porter-Duff blend modes. By reducing the need for frequent pipeline state object changes, dual source blending can enhance performance and flexibility.</p> <p> <p> <small> <a href="https://issues.chromium.org/issues/341973423">Tracking bug #341973423</a> | <a href="https://chromestatus.com/feature/5167711051841536">ChromeStatus.com entry</a> | <a href="https://github.com/gpuweb/gpuweb/pull/4621">Spec</a> </small> </p></p> <h2 id="privacy" data-text="Privacy" tabindex="-1">Privacy</h2> <h3 id="attribution_reporting_api_feature_attribution_scopes" data-text="Attribution Reporting API feature (Attribution Scopes)" tabindex="-1">Attribution Reporting API feature (Attribution Scopes)</h3> <p>This change is based on ad tech feedback and the need for more fine grained filtering controls before the attribution process takes place. It lets API callers specify a field called &quot;attribution scopes&quot; which will be used for filtering before starting the regular attribution flow. This allows API callers more fine grained control over the attribution granularity and the ability to receive proper attribution reports when there are multiple different advertisers or campaigns that all convert on the same destination site.</p> <p> <p> <small> <a href="https://chromestatus.com/feature/5096560068395008">ChromeStatus.com entry</a> </small> </p></p> <h3 id="attribution_reporting_api_feature_debug_key_privacy_improvement" data-text="Attribution Reporting API feature (debug key privacy improvement)" tabindex="-1">Attribution Reporting API feature (debug key privacy improvement)</h3> <p>This change helps to mitigate a potential privacy gap with debug keys.</p> <p>Currently the API allows a source debug key or a trigger debug key to be specified if third-party cookies are available and can be set by API callers. If either a source or trigger debug key is specified then it will be included in the attribution report. This may lead to a privacy leak if third-party cookies are only allowed on either the publisher or the advertiser site but not both.</p> <p>This change mitigates this issue by enforcing that source debug keys and trigger debug keys are only included in the attribution report if they&#39;re present on both the source and trigger, which would mean that third-party cookies were available on both the publisher and advertiser site. This change will apply to both event-level reports and aggregatable reports.</p> <p> <p> <small> <a href="https://chromestatus.com/feature/6257907243679744">ChromeStatus.com entry</a> | <a href="https://wicg.github.io/attribution-reporting-api/#attribution-debugging">Spec</a> </small> </p></p> <h2 id="origin_trials" data-text="Origin trials" tabindex="-1">Origin trials</h2> <h3 id="language_detector_api" data-text="Language Detector API" tabindex="-1">Language Detector API</h3> <p>A JavaScript API for <a href="/blog/august2024-language-detection">detecting the language of text</a>, with confidence levels.</p> <p> <p> <small> <a href="/origintrials#/view_trial/662592095176884225" target="_blank">Origin Trial</a> | <a href="/blog/august2024-language-detection">Language detection API available for early preview</a> | <a href="https://chromestatus.com/feature/6494349985841152">ChromeStatus.com entry</a> | <a href="https://github.com/WICG/translation-api/blob/main/README.md">Spec</a> </small> </p></p> <h3 id="webauthn_attestationformats" data-text="WebAuthn attestationFormats" tabindex="-1">WebAuthn <code translate="no" dir="ltr">attestationFormats</code></h3> <p>Support the <code translate="no" dir="ltr">attestationFormats</code> field from WebAuthn level 3.</p> <p>WebAuthn Level 3 supports a site expressing an ordered preference for credential attestation formats in the new <code translate="no" dir="ltr">attestationFormats</code> field. This feature enables support for this on Android, where multiple formats can be supported by passkey providers.</p> <p> <p> <small> <a href="/origintrials#/view_trial/1428204031829868545" target="_blank">Origin Trial</a> | <a href="https://chromestatus.com/feature/5121935290400768">ChromeStatus.com entry</a> | <a href="https://w3c.github.io/webauthn/#dom-publickeycredentialcreationoptions-attestationformats">Spec</a> </small> </p></p> <h2 id="deprecations_and_removals" data-text="Deprecations and removals" tabindex="-1">Deprecations and removals</h2> <h3 id="remove_expectedimprovement_in_delegatedinktrailpresenter" data-text="Remove expectedImprovement in DelegatedInkTrailPresenter" tabindex="-1">Remove <code translate="no" dir="ltr">expectedImprovement</code> in <code translate="no" dir="ltr">DelegatedInkTrailPresenter</code></h3> <p>The <code translate="no" dir="ltr">expectedImprovement</code> attribute tells web developers how much improvement the DelegatedInkTrails API will provide to their current ink latency. However, this attribute is not worth the increase to fingerprinting entropy.</p> <p> <p> <small> <a href="https://chromestatus.com/feature/5194773674328064">ChromeStatus.com entry</a> | <a href="https://wicg.github.io/ink-enhancement">Spec</a> </small> </p></p> <p><h2 id="further-reading" data-text="Further reading" tabindex="-1">Further reading</h2> <p>Looking for more? Check out these additional resources.</p> <ul> <li><a href="/blog/new-in-chrome-130">What's new in Chrome 130</a></li> <li><a href="/blog/new-in-devtools-130">What's new in Chrome DevTools 130</a></li> <li><a href="https://chromestatus.com/features#milestone%3D130">ChromeStatus.com updates for Chrome 130</a></li> <li><a href="https://chromiumdash.appspot.com/schedule">Chrome release calendar</a></li> <li><a href="https://chromestatus.com/features#browsers.chrome.status%3A%22Deprecated%22">Upcoming deprecations</a></li> <li><a href="https://chromestatus.com/features#browsers.chrome.status%3A%22Removed%22">Upcoming removals</a></li></ul> <h2 id="download-google-chrome" data-text="Download Google Chrome" tabindex="-1">Download Google Chrome</h2> <p> Download Chrome for <a href="https://play.google.com/store/apps/details?id=com.android.chrome">Android</a>, <a href="https://www.google.com/chrome/">Desktop</a>, or <a href="https://apps.apple.com/us/app/google-chrome/id535886823">iOS</a>. </p></p> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-10-15 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-10-15 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Contribute</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://issuetracker.google.com/issues/new?component=1400036&amp;template=1897236" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > File a bug </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://issuetracker.google.com/issues?q=status:open%20componentid:1400036&amp;s=created_time:desc" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > See open issues </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Related content</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://blog.chromium.org/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Chromium updates </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/case-studies" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Case studies </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/deprecated" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Archive </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://web.dev/shows" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Podcasts &amp; shows </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Follow</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://twitter.com/ChromiumDev" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > @ChromiumDev on X </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.youtube.com/user/ChromeDevelopers" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.linkedin.com/showcase/chrome-for-developers" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Chrome for Developers on LinkedIn </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/static/blog/feed.xml" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > RSS </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="nl" >Nederlands</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [], &#34;ga4p&#34;: [], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-5QF3RT2&#34;, &#34;purpose&#34;: 0}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;release-notes&#34;, &#34;projectName&#34;: &#34;Release notes&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;chrome&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="4ibtm3QydIpl1BHXYre6VBSsz7isuz"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/js/app_loader.js', '[53,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome","https://chrome-dot-devsite-v2-prod-3p.appspot.com",1,null,["/_pwa/chrome/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/images/favicon.png","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/chrome/images/lockup.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyCNm9YxQumEXwGJgTDjxoxXK6m1F-9720Q","AIzaSyCc76DZePGtoyUjqKrLdsMGk_ry7sljLbY","developer.chrome.com","AIzaSyB9bqgQ2t11WJsOX8qNsCQ6U-w91mmqF-I","AIzaSyAdYnStPdzjcJJtQ0mvIaeaMKj7_t6J_Fg",null,null,null,["Cloud__enable_cloud_dlp_service","Search__enable_ai_eligibility_checks","Profiles__enable_dashboard_curated_recommendations","MiscFeatureFlags__enable_project_variables","Cloud__enable_legacy_calculator_redirect","Search__enable_suggestions_from_borg","Profiles__enable_profile_collections","Cloud__enable_cloudx_experiment_ids","Profiles__enable_public_developer_profiles","TpcFeatures__enable_mirror_tenant_redirects","Cloud__enable_cloud_shell_fte_user_flow","MiscFeatureFlags__enable_firebase_utm","Profiles__require_profile_eligibility_for_signin","Concierge__enable_pushui","Cloud__enable_cloud_shell","Search__enable_dynamic_content_confidential_banner","MiscFeatureFlags__developers_footer_image","Profiles__enable_recognition_badges","MiscFeatureFlags__enable_variable_operator","MiscFeatureFlags__enable_explain_this_code","MiscFeatureFlags__developers_footer_dark_image","DevPro__enable_developer_subscriptions","Cloud__enable_cloud_facet_chat","Profiles__enable_complete_playlist_endpoint","Profiles__enable_developer_profiles_callout","OnSwitch__enable","MiscFeatureFlags__enable_view_transitions","Cloud__enable_llm_concierge_chat","TpcFeatures__enable_required_headers","BookNav__enable_tenant_cache_key","Cloud__enable_cloudx_ping","Search__enable_page_map","Analytics__enable_clearcut_logging","Profiles__enable_completecodelab_endpoint","MiscFeatureFlags__emergency_css","CloudShell__cloud_code_overflow_menu","Experiments__reqs_query_experiments","Cloud__enable_free_trial_server_call","Profiles__enable_awarding_url","Profiles__enable_release_notes_notifications","EngEduTelemetry__enable_engedu_telemetry","DevPro__enable_cloud_innovators_plus","Profiles__enable_page_saving","CloudShell__cloud_shell_button"],null,null,"AIzaSyA58TaKli1DculwmAmbpzLVGuWc8eCQgQc","https://developerscontentserving-pa.googleapis.com","AIzaSyDWBU60w0P9hEkr29kkksYs8Z7gvZ8u_wc","https://developerscontentsearch-pa.googleapis.com",2,4,null,"https://developerprofiles-pa.googleapis.com",[53,"chrome","Chrome for Developers","developer.chrome.com",null,"chrome-dot-devsite-v2-prod-3p.appspot.com",null,null,[null,null,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],null,null,null,null,[1,null,1],[1,1,null,1,1]],null,[69,null,null,null,null,null,"/images/lockup.svg","/images/touchicon-180.png",null,null,null,1,1,null,null,null,null,null,null,null,null,2,null,null,null,"/images/lockup-dark-theme.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],[1,1]],[[null,null,null,null,null,["GTM-5QF3RT2"],null,null,null,null,null,[["GTM-5QF3RT2",1]],1]],null,4]]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10