CINXE.COM
Troubleshooting Chrome Web Store violations | Extensions | 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/docs/webstore/troubleshooting"><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/docs/webstore/troubleshooting" /><link rel="alternate" hreflang="x-default" href="https://developer.chrome.com/docs/webstore/troubleshooting" /><link rel="alternate" hreflang="ar" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=fr" /><link rel="alternate" hreflang="de" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=de" /><link rel="alternate" hreflang="he" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=he" /><link rel="alternate" hreflang="hi" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=hi" /><link rel="alternate" hreflang="id" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=id" /><link rel="alternate" hreflang="it" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=it" /><link rel="alternate" hreflang="ja" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=th" /><link rel="alternate" hreflang="tr" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developer.chrome.com/docs/webstore/troubleshooting?hl=vi" /><link rel="alternate" hreflang="en-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting" /><link rel="alternate" hreflang="x-default" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting" /><link rel="alternate" hreflang="ar-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=ar" /><link rel="alternate" hreflang="bn-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=bn" /><link rel="alternate" hreflang="zh-Hans-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=zh-tw" /><link rel="alternate" hreflang="fa-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=fa" /><link rel="alternate" hreflang="fr-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=fr" /><link rel="alternate" hreflang="de-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=de" /><link rel="alternate" hreflang="he-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=he" /><link rel="alternate" hreflang="hi-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=hi" /><link rel="alternate" hreflang="id-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=id" /><link rel="alternate" hreflang="it-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=it" /><link rel="alternate" hreflang="ja-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=ja" /><link rel="alternate" hreflang="ko-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=ko" /><link rel="alternate" hreflang="pl-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=pl" /><link rel="alternate" hreflang="pt-BR-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=pt-br" /><link rel="alternate" hreflang="ru-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=ru" /><link rel="alternate" hreflang="es-419-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=es-419" /><link rel="alternate" hreflang="th-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=th" /><link rel="alternate" hreflang="tr-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=tr" /><link rel="alternate" hreflang="vi-cn" href="https://developer.chrome.google.cn/docs/webstore/troubleshooting?hl=vi" /><title>Troubleshooting Chrome Web Store violations | Extensions | Chrome for Developers</title> <meta property="og:title" content="Troubleshooting Chrome Web Store violations | Extensions | Chrome for Developers"><meta name="description" content="Guidelines for understanding why an item was rejected or removed from the Chrome Web Store and how to fix the problem."> <meta property="og:description" content="Guidelines for understanding why an item was rejected or removed from the Chrome Web Store and how to fix the problem."><meta property="og:url" content="https://developer.chrome.com/docs/webstore/troubleshooting"><meta property="og:locale" content="en"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "dateModified": "2020-11-16", "headline": "Troubleshooting Chrome Web Store violations" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Docs", "item": "https://developer.chrome.com/docs" },{ "@type": "ListItem", "position": 2, "name": "Extensions", "item": "https://developer.chrome.com/docs/webstore" },{ "@type": "ListItem", "position": 3, "name": "Troubleshooting Chrome Web Store violations", "item": "https://developer.chrome.com/docs/webstore/troubleshooting" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="chrome-theme" type="article" 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'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="Extensions" 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="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 "> <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/docs/webstore" 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="Extensions" > Extensions </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://developer.chrome.com/docs/extensions" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - overview" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" > Overview </a> </tab> <tab > <a href="https://developer.chrome.com/docs/extensions/get-started" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions/get-started" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - get started" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Get Started" track-name="get started" > Get Started </a> </tab> <tab > <a href="https://developer.chrome.com/docs/extensions/develop" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions/develop" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - develop" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" > Develop </a> </tab> <tab > <a href="https://developer.chrome.com/docs/extensions/how-to" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions/how-to" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - how to" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: How To" track-name="how to" > How To </a> </tab> <tab class="devsite-dropdown "> <a href="https://developer.chrome.com/docs/extensions/reference" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions/reference" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Reference" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions/reference" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" 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 "> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/extensions/reference/api" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions/reference/api" track-metadata-position="nav - reference" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> API </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/extensions/reference/permissions-list" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions/reference/permissions-list" track-metadata-position="nav - reference" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Permissions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/extensions/reference/manifest" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions/reference/manifest" track-metadata-position="nav - reference" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Manifest </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://developer.chrome.com/docs/extensions/samples" track-metadata-eventdetail="https://developer.chrome.com/docs/extensions/samples" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - samples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" > Samples </a> </tab> <tab class="devsite-dropdown devsite-active "> <a href="https://developer.chrome.com/docs/webstore" track-metadata-eventdetail="https://developer.chrome.com/docs/webstore" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - chrome web store" track-metadata-module="primary nav" aria-label="Chrome Web Store, selected" data-category="Site-Wide Custom Events" data-label="Tab: Chrome Web Store" track-name="chrome web store" > Chrome Web Store </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Chrome Web Store" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/webstore" track-metadata-position="nav - chrome web store" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Chrome Web Store" track-name="chrome web store" 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 "> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/webstore/prepare" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/webstore/prepare" track-metadata-position="nav - chrome web store" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Prepare your Extension </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/webstore/publish" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/webstore/publish" track-metadata-position="nav - chrome web store" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Publish in the Chrome Web Store </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.chrome.com/docs/webstore/program-policies" track-type="nav" track-metadata-eventdetail="https://developer.chrome.com/docs/webstore/program-policies" track-metadata-position="nav - chrome web store" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Program Policies </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <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-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> </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> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/docs/extensions" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/extensions/get-started" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Get Started" track-name="get started" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Get Started" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Get Started </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/extensions/develop" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Develop" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Develop </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/extensions/how-to" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: How To" track-name="how to" data-category="Site-Wide Custom Events" data-label="Responsive Tab: How To" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > How To </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/extensions/reference" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > <span class="devsite-nav-text" tooltip menu="Reference"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Reference"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/extensions/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/webstore" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Chrome Web Store" track-name="chrome web store" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Chrome Web Store" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Chrome Web Store </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Chrome Web Store" track-name="chrome web store" > <span class="devsite-nav-text" tooltip menu="Chrome Web Store"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Chrome Web Store"> </span> </span> </li> </ul> </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 devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Before you publish</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/webstore/register" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/register" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/register" ><span class="devsite-nav-text" tooltip>Register your developer account</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/set-up-account" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/set-up-account" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/set-up-account" ><span class="devsite-nav-text" tooltip>Set up your developer account</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/prepare" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/prepare" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/prepare" ><span class="devsite-nav-text" tooltip>Prepare your extension</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/group-publishers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/group-publishers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/group-publishers" ><span class="devsite-nav-text" tooltip>Set up a group publisher</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/best-listing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/best-listing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/best-listing" ><span class="devsite-nav-text" tooltip>Creating a great listing page</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/best-practices" ><span class="devsite-nav-text" tooltip>Design a high-quality extension</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Publish for the first time</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/webstore/publish" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/publish" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/publish" ><span class="devsite-nav-text" tooltip>Publish in the Chrome Web Store</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/cws-dashboard-listing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/cws-dashboard-listing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/cws-dashboard-listing" ><span class="devsite-nav-text" tooltip>Complete your listing information</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/cws-dashboard-privacy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/cws-dashboard-privacy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/cws-dashboard-privacy" ><span class="devsite-nav-text" tooltip>Fill out the privacy fields</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/cws-dashboard-distribution" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/cws-dashboard-distribution" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/cws-dashboard-distribution" ><span class="devsite-nav-text" tooltip>Declare payment and set visibility</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Manage your item</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/webstore/review-process" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/review-process" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/review-process" ><span class="devsite-nav-text" tooltip>Chrome Web Store review process</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/check-review" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/check-review" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/check-review" ><span class="devsite-nav-text" tooltip>Check on your review status</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/skip-review" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/skip-review" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/skip-review" ><span class="devsite-nav-text" tooltip>Skip review for eligible changes</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/update" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/update" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/update" ><span class="devsite-nav-text" tooltip>Update your Chrome Web Store item</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/rollback" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/rollback" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/rollback" ><span class="devsite-nav-text" tooltip>Rollback to a previous version</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshooting Chrome Web Store violations</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/using-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/using-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/using-api" ><span class="devsite-nav-text" tooltip>Publish programmatically</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/api" ><span class="devsite-nav-text" tooltip>Chrome Web Store API Reference</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Promote your item</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/webstore/discovery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/discovery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/discovery" ><span class="devsite-nav-text" tooltip>Discovery on the Chrome Web Store</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/support-users" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/support-users" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/support-users" ><span class="devsite-nav-text" tooltip>Manage user feedback</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/metrics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/metrics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/metrics" ><span class="devsite-nav-text" tooltip>Analyze your store listing metrics</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/google-analytics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/google-analytics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/google-analytics" ><span class="devsite-nav-text" tooltip>Use your Google Analytics account with the Chrome Web Store</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Guidelines</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/webstore/rating" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/rating" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/rating" ><span class="devsite-nav-text" tooltip>Content Ratings Guidelines</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/cws-payments-deprecation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/cws-payments-deprecation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/cws-payments-deprecation" ><span class="devsite-nav-text" tooltip>Chrome Web Store payments deprecation</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/branding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/branding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/branding" ><span class="devsite-nav-text" tooltip>Branding Guidelines</span></a></li><li class="devsite-nav-item"><a href="/docs/webstore/images" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/images" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/images" ><span class="devsite-nav-text" tooltip>Supplying Images</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/docs/webstore/account-deletion" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/account-deletion" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/account-deletion" ><span class="devsite-nav-text" tooltip>Deleting Chrome Web Store developer accounts</span></a></li> <li class="devsite-nav-item"><a href="/docs/webstore/cws-enterprise" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/webstore/cws-enterprise" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/webstore/cws-enterprise" ><span class="devsite-nav-text" tooltip>Enterprise publishing options</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> <ul class="devsite-nav-list" menu="Reference" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/extensions/reference/api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: API" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > API </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/extensions/reference/permissions-list" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Permissions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Permissions </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/extensions/reference/manifest" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Manifest" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Manifest </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Chrome Web Store" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/webstore/prepare" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Prepare your Extension" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Prepare your Extension </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/webstore/publish" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Publish in the Chrome Web Store" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Publish in the Chrome Web Store </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/webstore/program-policies" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Program Policies" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Program Policies </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="" > Home </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" > 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/docs/webstore" 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="Extensions" > Extensions </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <h1 class="devsite-page-title" tabindex="-1"> Troubleshooting Chrome Web Store violations </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>This page is provided to help you understand why your extension was rejected or removed from the Chrome Web Store and how you can fix the violation.</p> <p>Each section in this document describes the issues that correspond to a particular category of violation. In order to make it easier to reference specific violations, the Chrome Web Store assigns each violation a human-readable ID. These IDs are composed of two words: a color and an element. For example, Yellow Magnesium corresponds to the general class of errors where the extension does not behave as expected.</p> <h2 id="additional-requirements-for-manifest-v3" data-text="Additional requirements for Manifest V3" tabindex="-1">Additional requirements for Manifest V3</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Blue Argon</code></p> <p>The intent of this policy is to ensure that Manifest V3 extensions are not including remotely hosted code.</p> <h3 id="common_reasons_for_rejection" data-text="Common reasons for rejection" tabindex="-1">Common reasons for rejection</h3> <ul> <li><p>Including a <code translate="no" dir="ltr"><script></code> tag that points to a resource that is not within the extension's package.</p></li> <li><p>Using JavaScript's <code translate="no" dir="ltr">eval()</code>` method or other mechanisms to execute a string fetched from a remote source.</p></li> <li><p>Building an interpreter to run complex commands fetched from a remote source, even if those commands are fetched as data.</p></li> </ul> <h3 id="how-can-you-rectify-this_23" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li><p>Double check all code for references to external JavaScript files, which should be replaced with internal extension files.</p></li> <li><p>Review the Manifest V3 migration guide <a href="/docs/extensions/migrating/improve-security">Improve extension security</a> for a walkthrough on alternatives to execution of arbitrary strings and remotely hosted code.</p></li> </ul> <h3 id="relevant_policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/mv3-requirements">developer program policies</a>:</p> <aside class="note"><h4 id="additional-requirements-for-manifest-v3_1" data-text="Additional Requirements for Manifest V3" tabindex="-1">Additional Requirements for Manifest V3</h4> 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. This means that the logic of how each extension operates should be self-contained. The extension may reference and load data and other information sources that are external to the extension, but these external resources must not contain any logic.</aside> <h2 id="does-not-work" data-text="Functionality not working" tabindex="-1">Functionality not working</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Yellow Magnesium</code></p> <p>The intent of this policy is to ensure a minimum quality level for all items published in the Chrome Web Store. Extensions should provide the functionality described in their listings and, if they cannot, communicate that to the user.</p> <h3 id="common-reasons-for-removalrejection_18" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>Your item has packaging errors. Examples: <ul> <li>There are files mentioned in your manifest that are not present in your package. This is most commonly seen with image files.</li> <li>The path or name of the files mentioned in your package are incorrect</li> </ul></li> <li>A functionality in your item is not working due to a server side issue at the time of reviewing.</li> <li>Your item is just not functioning as it expected based on the item's listing.</li> </ul> <h3 id="how-can-you-rectify-this_18" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Test the code that you submit to the web store locally. <ul> <li>Test the exact files that you submit to the web store, not just a local development version of your extension. This may mean extracting resources from the package that you submitted.</li> <li>Unpacked and packed extensions can have different behaviors. Make sure that Chrome loads a packed version of your extension as expected by manually <a href="/docs/extensions/mv3/linux_hosting#create">packing your extension</a> and dragging the generated .crx file onto the chrome://extensions page.</li> </ul></li> <li>Verify that your submission contains the files you expect at the paths you expect. <ul> <li>Ensure that all the files mentioned in your <code translate="no" dir="ltr">manifest.json</code> are present in the package and their names and paths are correct.</li> <li>Check for <a href="https://en.wikipedia.org/wiki/Case_sensitivity">case sensitivity</a> bugs. For example, say your background script was named <code translate="no" dir="ltr">Background.js</code>, but your manifest.json references <code translate="no" dir="ltr">background.js</code>. Some file systems will treat these as the same file while others will treat them as two distinct files, causing Chrome to error when loading the extension.</li> </ul></li> <li>Make sure that your extensions clearly communicate error conditions to the user. <ul> <li>It should be as obvious as possible for new users to understand how your extension works and verify it's behaving correctly.</li> <li>If your extension requires an account or special network environment, make sure that requirement is communicated to the user. If these conditions are not met, consider ways that you can make the user aware that the extension will not work as expected.</li> <li>Test your experience on an unreliable internet connection (e.g. <a href="https://web.dev/performance-poor-connectivity/#what-is-lie-fi">lie-fi</a>). The extension's UI should gracefully handle request timeouts, HTTP 400 and 500 errors, certificate timeouts, and other such error conditions.</li> </ul></li> <li>If you cannot determine why the reviewer thought that your extension was not working as expected, <a href="https://support.google.com/chrome_webstore/contact/one_stop_support">contact developer support</a> to request more information about the rejection. <ul> <li>In some cases, reviewers may encounter issues you cannot reproduce. Use the <a href="https://support.google.com/chrome_webstore/contact/one_stop_support">developer support contact form</a> to request clarification about what features or user flows did not behave as expected.</li> </ul></li> </ul> <h3 id="does-not-work-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/minimum-functionality">developer program policies</a>:</p> <aside class="note"><h4 id="spam-placement-in-the-store" data-text="Spam & Placement in the Store" tabindex="-1">Spam & Placement in the Store</h4> <strong>Functionality:</strong> 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.</aside> <h2 id="excessive-permissions" data-text="Excessive permissions" tabindex="-1">Excessive permissions</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Purple Potassium</code></p> <p>The intent of this policy is to prevent excessive and unnecessary access to user data by extensions.</p> <h3 id="common-reasons-for-removalrejection" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension is requesting a permission but not using it.</li> <li>The extension is requesting a permission that is not required to implement the functionality the extension provides.</li> </ul> <h3 id="misunderstood-perms" data-text="Commonly misunderstood permissions" tabindex="-1">Commonly misunderstood permissions</h3> <h4 id="misunderstood-perms-activetab" data-text="activeTab" tabindex="-1">activeTab</h4> <p>This permission grants temporary access to a tab in response to a user invoking your extension. It DOES NOT grant passive access to the user's currently focused tab.</p> <ul> <li><strong>When is it required?</strong> <ul> <li>When you need temporary access to a tab after the user invokes your extension.</li> </ul></li> <li><strong>When is it NOT required?</strong> <ul> <li>When the extension has access to broad host permissions or host permissions for the specific domains that are relevant to the extension's operations.</li> <li>When using methods on the <a href="/docs/extensions/reference/action">action</a>, <a href="/docs/extensions/reference/browserAction">browserAction</a>, <a href="/docs/extensions/reference/pageAction">pageAction</a> APIs. These APIs can use activeTab to grant temporary host permissions for the currently focused tab, but they do not need activeTab to function.</li> <li>When using <a href="/docs/extensions/reference/tabs#method-sendMessage">tabs.sendMessage</a> to send a message to a specific tab.</li> <li>For basic use of <a href="/docs/extensions/reference/tabs#method-query">tabs.query</a>, such as querying <a href="/docs/extensions/reference/tabs#get-the-current-tab">the user's current tab</a>.</li> </ul></li> </ul> <h4 id="misunderstood-perms-tabs" data-text="tabs" tabindex="-1">tabs</h4> <p>This permission ONLY grants access to the <code translate="no" dir="ltr">url</code>, <code translate="no" dir="ltr">pendingUrl</code>, <code translate="no" dir="ltr">title</code>, or <code translate="no" dir="ltr">favIconUrl</code> properties of Tab objects.</p> <ul> <li><strong>When is it required?</strong> <ul> <li>When an extension does not have broad host access, but needs to be able to read sensitive data like the URL of an arbitrary tab.</li> </ul></li> <li><strong>When is it NOT required?</strong> <ul> <li>When using methods on the <a href="/docs/extensions/reference/tabs">tabs</a> API.</li> <li>When the extension has access to broad host permissions. Host permissions grant the extension access to the same data as well as other capabilities.</li> </ul></li> </ul> <h4 id="misunderstood-perms-cookies" data-text="cookies" tabindex="-1">cookies</h4> <p>This exposes the <a href="/docs/extensions/reference/cookies">chrome.cookies</a> API and allows the extension to modify cookies on origins that it has host permissions to access.</p> <ul> <li><strong>When is it required?</strong> <ul> <li>When accessing <a href="/docs/extensions/reference/cookies">chrome.cookies</a> from the extension's <a href="/docs/extensions/mv3/service_workers">background context</a> or in another context using the extension's origin such as an extension's popup.</li> <li>When using <a href="/docs/extensions/reference/cookies">chrome.cookies</a> to interact with detailed cookie data, such as <a href="https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite">SameSite</a> values.</li> </ul></li> <li><strong>When is it NOT required?</strong> <ul> <li>When using <a href="https://developer.mozilla.org/docs/Web/API/Document/cookie"><code translate="no" dir="ltr">document.cookie</code></a> or the <a href="https://developer.mozilla.org/docs/Web/API/Cookie_Store_API">Cookie Store API</a>.</li> </ul></li> </ul> <h4 id="misunderstood-perms-storage" data-text="storage" tabindex="-1">storage</h4> <p>The storage permission exposes the <a href="/docs/extensions/reference/storage">chrome.storage</a> API to the extension.</p> <ul> <li><strong>When is it required?</strong> <ul> <li>When using the <a href="/docs/extensions/reference/storage">chrome.storage</a> API.</li> </ul></li> <li><strong>When is it NOT required?</strong> <ul> <li>When using the <a href="https://developer.mozilla.org/docs/Web/API/Web_Storage_API">Web Storage API</a> (<code translate="no" dir="ltr">document.localStorage</code>, <code translate="no" dir="ltr">document.sessionStorage</code>) or <a href="https://developer.mozilla.org/docs/Web/API/IndexedDB">IndexedDB</a>.</li> </ul></li> </ul> <h3 id="how-can-you-rectify-this" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Review the list of <a href="#misunderstood-perms">commonly misunderstood permissions</a> to see if you have committed one of the mistakes listed there.</li> <li>Request only the narrowest permission required to implement your extension's functionality.</li> <li>Remove all unused permissions from your manifests.json's <code translate="no" dir="ltr">permissions</code>, <code translate="no" dir="ltr">optional_permissions</code>, and <code translate="no" dir="ltr">host_permissions</code> arrays.</li> <li>If the message from review does not contain enough information to determine which permissions were considered excessive, <a href="https://support.google.com/chrome_webstore/contact/one_stop_support">contact developer support</a> to request more information about the rejection.</li> <li>If the reviewer indicated that your extension did not use a given permission but you believe it does, <a href="https://support.google.com/chrome_webstore/contact/one_stop_support">contact developer support</a> to appeal the decision and to provide a detailed explanation of why the permission is necessary and how it is used.</li> </ul> <h3 id="excessive-permissions-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/permissions">developer program policies</a>:</p> <aside class="note"><h4 id="use-of-permissions" data-text="Use of Permissions" tabindex="-1">Use of Permissions</h4> <p>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.</p> <p>Don't attempt to "future proof" your Product by requesting a permission that might benefit services or features that have not yet been implemented.</p> </aside> <h2 id="no-metadata" data-text="Missing or insufficient metadata" tabindex="-1">Missing or insufficient metadata</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Yellow Zinc</code></p> <p>The intent of this policy is to ensure a basic quality level of all items in the Chrome Web Store. Users should be able to understand what features and functionality an item provides based on its listing before they choose to install it. Items that misrepresent their capabilities or fail to disclose important information may be subject to enforcement action.</p> <h3 id="common_reasons_for_removalrejection_3" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension is missing an icon, title, screenshot, or description.</li> <li>The extension's title is not meaningful or is misleading.</li> <li>The extension's screenshots or description is not meaningful or doesn't adequately explain the functionality it provides.</li> </ul> <h3 id="how_can_you_rectify_this_4" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Ensure the extension has a meaningful icon, title, screenshots, and description.</li> <li>Clearly explain the extension's functionality in the description and screenshots. <ul> <li>List all major features the extension provides.</li> </ul></li> <li>Review the rectification guidance in the <a href="#does-not-work">Functionality not working</a> section.</li> </ul> <h3 id="relevant_policy_4" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/impersonation-and-intellectual-property">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies" data-text="Content Policies" tabindex="-1">Content Policies</h4> Impersonation or Deceptive Behavior: If your product has a blank description field or is missing an icon or screenshots, it will be rejected. If any of your product's content, title, icon, description, or screenshots contains false or misleading information, we may remove it.</aside> <h2 id="deceptive-behavior" data-text="Deceptive behavior" tabindex="-1">Deceptive behavior</h2> <p>Corresponds to notification IDs: <code translate="no" dir="ltr">Red Nickel</code>, <code translate="no" dir="ltr">Red Potassium</code>, and <code translate="no" dir="ltr">Red Silicon</code></p> <p>The intent of this policy is to prevent extensions from deceiving or misleading the users.</p> <h3 id="common-reasons-for-removalrejection_2" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension does not provide the functionality described in the metadata<sup>1</sup>.</li> <li>The extension provides different functionality than what is described in the metadata<sup>1</sup>.</li> <li>The extension performs actions not mentioned in the metadata<sup>1</sup>.</li> <li>The extension impersonates another entity<sup>2</sup>.</li> <li>The extension copies or is copied from another entity<sup>2</sup>.</li> <li>The extension pretends to be authorized by another entity<sup>2</sup>.</li> </ul> <p><sup>1</sup> Metadata means the title, icon, description, screenshots, and other developer-provided information specified in the developer dashboard.</p> <p><sup>2</sup> An entity here means any company, organization, or extension.</p> <h3 id="how-can-you-rectify-this_2" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Ensure the functionality promised by your extension is working as intended.</li> <li>Clearly state the functionality of your extension in the metadata.</li> <li>Do not perform actions not mentioned in the metadata.</li> <li>Do not pretend to be another entity.</li> <li>Do not copy another extension. You may offer the same functionality as another extension but do not copy from other extensions.</li> <li>Do not pretend that your extension was endorsed, authorized or produced by another entity.</li> </ul> <h3 id="deceptive-behavior-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/impersonation-and-intellectual-property">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies_1" data-text="Content Policies" tabindex="-1">Content Policies</h4> Impersonation or Deceptive Behavior: <ul> <li>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.</li> <li>Developers should not divert users or provide links to any other site that mimics the Chrome Web Store or passes itself off as the Chrome Web Store. Your Product and its user experience also must not mimic functionality or warnings from a user's operating system or browser.</li> <li>Any changes to device settings must be made with the user's knowledge and consent and be easily reversible by the user.</li> <li>We do not allow products that deceive or mislead users, including in the content, title, description, or screenshots.</li> <li>Don't misrepresent the functionality of your product or include non-obvious functionality that doesn't serve the primary purpose of the product. Descriptions of your product must directly state the functionality so that users have a clear understanding of the product they are adding. For example, products should not contain: <ul> <li>Claimed functionalities that are not possible to implement (e.g. "Who has viewed your social media account") or which are not directly provided by the extension (e.g. file converters which only link to other file conversion services)</li> <li>Any metadata that misrepresents the extension's or developer's current status or performance on the Chrome Web Store (e.g. "Editor's Choice" or "Number One")</li> </ul> </li> <li>If your product has a blank description field or is missing an icon or screenshots, it will be rejected. If any of your product's content, title, icon, description, or screenshots contains false or misleading information, we may remove it.</li> </ul> </aside> <h2 id="udp-disclosure-policy" data-text="User data policy - disclosure policy" tabindex="-1">User data policy - disclosure policy</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Purple Lithium</code></p> <p>The User Data Privacy policy is a broad category under which several other policies are gathered. All of these policies have to do with the handling and transmission of sensitive information about the user.</p> <p>This policy applies to all extensions that collect user data. This particular section is to ensure that users are aware of what data is collected, and how it is collected, used, and shared.</p> <h3 id="common-reasons-for-removalrejection_3" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension is collecting user data but has not provided a privacy policy.</li> <li>The privacy policy is not provided in the designated field—a common mistake here is providing the privacy policy in the description.</li> <li>The privacy policy URL is not working.</li> <li>The privacy policy is not accessible.</li> <li>The privacy policy URL is not leading to privacy policy.</li> <li>The privacy policy does not talk about user data collection, usage, handling or sharing.</li> </ul> <h3 id="how-can-you-rectify-this_3" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Add a valid, working and accessible link to your privacy policy <a href="/docs/webstore/cws-dashboard-privacy#set-privacy-policy">in the designated field</a>. <ul> <li>Visit the Privacy tab for your extension to verify that a privacy policy link appears in the "Privacy Policy" box (located at the bottom of the Privacy tab) and that the link works as expected.</li> </ul></li> <li>Ensure the privacy policy talks about data collection, usage, handling, and sharing.</li> <li>If you have done the above but are still encountering review issues, <a href="https://support.google.com/chrome_webstore/contact/one_stop_support">contact developer support</a> to request clarification or appeal the verdict.</li> </ul> <h3 id="udp-disclosure-policy-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/privacy">developer program policies</a>:</p> <aside class="note"><h4 id="personal-or-sensitive-user-data" data-text="Personal or Sensitive User Data" tabindex="-1">Personal or Sensitive User Data</h4> <p>Posting a Privacy Policy & Secure Transmission: If your Product handles personal or sensitive user data (including personally identifiable information, financial and payment information, health information, authentication information, website content and resources, form data, web browsing activity, user-provided content and personal communications), then your Product must:</p> <ul> <li>Post a privacy policy, and</li> <li>Handle the user data securely, including transmitting it via modern cryptography.</li> </ul> </aside> <h2 id="illegal-activities" data-text="Illegal activities" tabindex="-1">Illegal activities</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Grey Zinc</code></p> <p>The intent of this policy is to prevent the use of extensions and the Chrome Web Store to promote or participate in illegal activities.</p> <h3 id="common-reasons-for-removalrejection_4" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <p>The extension is doing anything illegal. See the policy extract for specific examples.</p> <h3 id="how-can-you-rectify-this_4" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>If this is the primary functionality of your extension, there is no direct rectification. You should unpublish your extension.</li> <li>If this was an unintended functionality, then remove the content or services that are in violation and resubmit your extension.</li> <li>If you would like more information about why this verdict was applied to your extension, <a href="https://support.google.com/chrome_webstore/contact/one_stop_support">developer support</a> may be able to provide you with further details.</li> </ul> <h3 id="illegal-activities-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/regulated-goods-and-services">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies_2" data-text="Content Policies" tabindex="-1">Content Policies</h4> Illegal Activities: Keep it legal. 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 that may result in physical harm to those involved.</aside> <h2 id="gambling" data-text="Online gambling" tabindex="-1">Online gambling</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Grey Copper</code></p> <p>Do not post content or provide services that facilitate online gambling.</p> <h3 id="common-reasons-for-removalrejection_5" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>Providing online gambling within an extension.</li> <li>Facilitating online gambling on other sites through the extension. <ul> <li>For example, providing functionality to calculate the odds of a bet on a gambling site. While this extension does not directly allow the user to gamble, it does facilitate online gambling.</li> </ul></li> <li>Directing users to an online gambling site.</li> <li>Providing games of skill that offer prizes of cash or other value.</li> </ul> <h3 id="how-can-you-rectify-this_5" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>If this is the primary functionality of your extension, then it is recommended to unpublish your extension.</li> <li>If this was an unintended functionality, then remove the content or services that are in violation and resubmit your extension.</li> </ul> <h3 id="gambling-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/regulated-goods-and-services">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies_3" data-text="Content Policies" tabindex="-1">Content Policies</h4> Gambling: We don't allow content or services that facilitate online gambling, including but not limited to online casinos, sports betting, lotteries, or games of skill that offer prizes of cash or other value.</aside> <h2 id="pornography" data-text="Pornographic content" tabindex="-1">Pornographic content</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Grey Lithium</code></p> <p>The intent of this policy is to prevent the use of extensions and the Chrome Web Store as a platform for pornography.</p> <h3 id="common-reasons-for-removalrejection_6" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension itself contains sexually explicit material.</li> <li>The extension is displaying or providing sexually explicit material.</li> <li>The extension is directing users to pornographic sites.</li> <li>The extension is primarily meant to enhance sites that provide sexually explicit material.</li> </ul> <h3 id="how-can-you-rectify-this_6" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>If the primary purpose of your extension is to provide access to sexually explicit material or enhance pornographic sites, you should unpublish your extension; such extensions are not allowed on the Chrome Web Store.</li> <li>If this was an unintended functionality, then remove the content or services that are in violation and resubmit your extension.</li> <li>Make sure that your extension does not contain sexually explicit images, video, text, etc.</li> <li>If your extension provides integrations with adult-oriented sites, make sure that the "Mature content" flag is enabled for your extension in the <a href="/docs/webstore/cws-dashboard-listing#mature-content">developer dashboard</a>.</li> </ul> <h3 id="pornography-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/explicit-material">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies_4" data-text="Content Policies" tabindex="-1">Content Policies</h4> 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 sexual acts. Google has a zero-tolerance policy against child pornography. If we become aware of content with child pornography, we will report it to the appropriate authorities and delete the Google Accounts of those involved with the distribution. Content which contains non-sexual nudity - such as artistic, educational, scientific, or cultural nudity - is generally allowed, but may impact the visibility of your Product.</aside> <h2 id="hate" data-text="Hate content" tabindex="-1">Hate content</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Grey Magnesium</code></p> <p>The intent of this policy is to prevent the use of extensions and the Chrome Web Store as a platform to spread hateful content.</p> <h3 id="common-reasons-for-removalrejection_7" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>Providing content or directing users to content that is considered hate speech. See the policy text for additional details.</li> </ul> <h3 id="how-can-you-rectify-this_7" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>If promotion or distribution of hate speech is a primary feature of your extension, then you should unpublish the extension as such content is not permitted in the Chrome Web Store.</li> <li>If your extension provides access to user-generated content, you must ensure that you have content moderation in place to prevent users from sharing hate speech.</li> <li>If your extension contains functionality intended to draw negative attention to an individual's membership in one of the groups outlined in the policy text, you should remove this functionality from your extension.</li> </ul> <h3 id="hate-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/hate-and-violence">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies_5" data-text="Content Policies" tabindex="-1">Content Policies</h4> Hate Speech: We don't allow content advocating against or inciting hatred towards groups of people based on their race or ethnic origin, religion, disability, gender, age, veteran status, nationality, sexual orientation, gender, gender identity, or any other characteristic that is associated with systematic discrimination or marginalization. Additionally, the visibility of your Product may be impacted if it contains generally hateful content not covered by the above definition.</aside> <h2 id="not-family-safe" data-text="Not family safe" tabindex="-1">Not family safe</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Grey Nickel</code></p> <p>The intent of this policy is to prevent non-family-safe content from reaching an inappropriate audience.</p> <h3 id="common-reasons-for-removalrejection_8" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension has content that is not suitable for audiences of all ages and the extension has not been marked 'Mature'.</li> </ul> <h3 id="how-can-you-rectify-this_8" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Either remove the violating content or mark the extension as containing "Mature content" in your <a href="/docs/webstore/cws-dashboard-listing#mature-content">developer dashboard</a> and resubmit the extension.</li> </ul> <h3 id="not-family-safe-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/explicit-material">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies:" data-text="Content Policies:" tabindex="-1">Content Policies:</h4> <p>Our content policies apply to your Product's content, including any ads it shows to users and any user-generated content it hosts or links to. Further, they apply to any content from your developer account that is publicly displayed in Chrome Web Store, including your developer name and the landing page of your listed developer website. Products that include content that may not be suitable for all ages should be marked "Mature" on the <a href="/docs/webstore/cws-dashboard-listing#mature-content">Developer Dashboard</a>.</p> </aside> <h2 id="violence" data-text="Violent content" tabindex="-1">Violent content</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Grey Potassium</code></p> <p>The intent of this policy is to prevent the use of extensions and the Chrome Web Store as a platform to spread the content mentioned in the relevant policy text.</p> <h3 id="common-reasons-for-removalrejection_9" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension contains content or is directing users to content mentioned in the policy text,</li> </ul> <h3 id="how-can-you-rectify-this_9" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>If providing access to violent or bullying content is one of the primary features of your extension, unpublish the extension; such extensions are not permitted in the Chrome Web Store.</li> <li>If this was an unintended functionality, then remove the content or services that are in violation and resubmit your extension.</li> </ul> <h3 id="violence-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/hate-and-violence">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies_6" data-text="Content Policies" tabindex="-1">Content Policies</h4> Violent or Bullying Behavior: Depictions of gratuitous violence are not allowed. Products should not contain materials that threaten, harass, or bully other users. For example, Products should not contain: <ul> <li>Content which makes a specific threat of serious harm against an individual person or a defined group of people.</li> <li>Content whose predominant purpose is to single out another person for abuse, malicious attack, or ridicule. Content that results in the unwanted sexualization of a person, including malicious claims about a person's sexual activities, sexual orientation, or gender identity.</li> <li>A series of posts/comments/photos that, taken together, clearly have the primary intention of harassment, even if each individual piece of content is not severe.</li> </ul> </aside> <h2 id="single-use" data-text="Single purpose" tabindex="-1">Single purpose</h2> <p>Corresponds to notification IDs: <code translate="no" dir="ltr">Red Magnesium</code>, <code translate="no" dir="ltr">Red Copper</code>, <code translate="no" dir="ltr">Red Lithium</code>, and <code translate="no" dir="ltr">Red Argon</code>.</p> <p>This policy is aimed at maintaining the quality of extensions on the Chrome Web Store. As mentioned in the policy text, if there are multiple unrelated functionalities, they should be provided in separate extensions.</p> <h3 id="common-reasons-for-removalrejection_10" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension provides two or more purposes in the same extension (for example an extension providing image format conversion and bibliography generation).</li> <li>The extension provides one or more unrelated additional functionalities using the extension's action icon.</li> <li>The extension provides a modified search experience on a new tab page which does not respect the user’s choice of search provider.</li> <li>The following are considered distinct purposes. Extensions that provide any of the features listed below may not provide any other functionality. <ul> <li>Replacing any single <a href="/docs/extensions/mv3/override">override page</a>.</li> <li>Using <a href="/docs/extensions/mv3/settings_override">override settings</a> to replace the default search provider.</li> <li>Injecting ads into web pages.</li> </ul></li> </ul> <p>See the <a href="/docs/webstore/program-policies/quality-guidelines-faq">Single Purpose FAQ</a> for additional information.</p> <h3 id="how-can-you-rectify-this_10" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Narrow the functionality of your extension to clearly fit within one well-defined purpose and ensure that purpose is clearly described in your extension's metadata.</li> <li>If your extension is offering some functionality and also injecting ads, then either stop injecting ads or remove all other functionality besides ad injection.</li> <li>Chrome does not support optional new tab pages. If you wish to provide some functionality and an optional new tab page, you should separate the new tab page into a standalone extension.</li> <li>Don't offer another unrelated functionality in the extension's action icon.</li> <li>If your new tab page extension includes a search experience, use the <a href="https://developer.chrome.com/docs/extensions/reference/api/search">Chrome Search API</a> to ensure it respects the user’s choice of search provider.</li> </ul> <h3 id="single-purpose-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/quality-guidelines">developer program policies</a>:</p> <aside class="note"><h4 id="extensions-quality-guidelines" data-text="Extensions Quality Guidelines" tabindex="-1">Extensions Quality Guidelines</h4> <p>Single Purpose: An extension must have a single purpose that is narrow and easy-to-understand. Do not 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 two different extensions, and users should have the ability to install and uninstall them separately.</p> <p>Common violations include:</p> <ul> <li>Functionality that displays product ratings and reviews, but also injects ads into web pages.</li> <li>Toolbars that provide a broad array of functionality or entry points into services are better delivered as separate extensions, so that users can select the services they want. <li>Email notifiers combined with a news aggregator.</li> <li>New Tab Page extensions that alter the user's search experience and do not respect the user's existing search settings.</li> </ul> </aside> <h2 id="udp-prominent-disclosure" data-text="User data policy - prominent disclosure" tabindex="-1">User data policy - prominent disclosure</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Purple Nickel</code></p> <p>The User Data Privacy policy is a broad category under which several other policies are gathered. All of these policies have to do with the handling and transmission of sensitive information about the user.</p> <p>This section of the policy aims to ensure that users are aware of the data that is being collected and that user consent is obtained before data collection. Be aware that extensions may only collect data in direct support of their single purpose. See the <a href="/docs/webstore/program-policies/limited-use">Limited Use of User Data</a> policy for additional information.</p> <h3 id="common-reasons-for-removalrejection_11" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension is not prominently disclosing how the user data is being used.</li> <li>User consent is not obtained before data collection</li> </ul> <h3 id="how-can-you-rectify-this_11" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Prominently disclose to the user what data is being collected and how it will be handled. This information must be provided in the extension's Privacy Policy and may be provided elsewhere.</li> <li>Ensure data is collected only if the user consents to it. <ul> <li>Prominent disclosure of data collection in the extension's Chrome Web Store listing is sufficient.</li> <li>Collecting data that is not prominently disclosed in the Chrome Web Store listing is allowed so long as this data collection is consistent with the extension's single purpose, the user is informed of the data collection before it begins, and the user consents to the data collection.</li> </ul></li> <li>Consider providing the user with ways to opt out of data collection from within the extension's <a href="/docs/extensions/mv3/options">options page</a>.</li> <li>Consider providing users with an "offline mode" that only stores user data locally.</li> </ul> <h3 id="udp-prominent-disclosure-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/disclosure-requirements">developer program policies</a>:</p> <aside class="note"><h4 id="personal-or-sensitive-user-data_1" data-text="Personal or Sensitive User Data" tabindex="-1">Personal or Sensitive User Data</h4> <p>Prominent Disclosure Requirement: If your Product handles personal or sensitive user data that is not closely related to functionality described prominently in the Product's Chrome Web Store page and user interface, then prior to the collection, it must:</p> <ul> <li>Prominently disclose how the user data will be used, and</li> <li>Obtain the user's affirmative consent for such use.</li> </ul> </aside> <h2 id="udp-secure" data-text="User data policy - secure transmission" tabindex="-1">User data policy - secure transmission</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Purple Copper</code></p> <p>The User Data Privacy policy is a broad category under which several other policies are gathered. All of these policies have to do with the handling and transmission of sensitive information about the user.</p> <p>This particular section is to ensure that user data is being handled securely.</p> <h3 id="common-reasons-for-removalrejection_12" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension is not transmitting user data securely.</li> <li>The data is being transmitted to an unsecure domain</li> </ul> <h3 id="how-can-you-rectify-this_12" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Ensure data is securely transmitted. <ul> <li>Don't transmit user data over HTTP. If possible, use secure protocols for all requests.</li> <li>Don't encode data in request headers or query parameters, even over HTTPS. Headers and request URLs often appear in server logs, which can unintentionally leak this information.</li> <li>See <a href="https://developer.mozilla.org/docs/Glossary/Safe/HTTP">Safe HTTP methods</a> for additional information.</li> </ul></li> </ul> <p>Use the Chrome DevTools or other network monitoring tools to watch the network requests the extension makes.</p> <h3 id="udp-secure-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/privacy">developer program policies</a>:</p> <aside class="note"><h4 id="personal-or-sensitive-user-data_2" data-text="Personal or Sensitive User Data" tabindex="-1">Personal or Sensitive User Data</h4> <p>Posting a Privacy Policy & Secure Transmission: If your Product handles personal or sensitive user data (including personally identifiable information, financial and payment information, health information, authentication information, website content and resources, form data, web browsing activity, user-provided content and personal communications), then your Product must:</p> <ul> <li>Post a privacy policy, and</li> <li>Handle the user data securely, including transmitting it via modern cryptography.</li> </ul> </aside> <h2 id="udp-other-requirements" data-text="User data policy - other requirements" tabindex="-1">User data policy - other requirements</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Purple Magnesium</code></p> <p>The User Data Privacy policy is a broad category under which several other policies are gathered. All of these policies have to do with the handling and transmission of sensitive information about the user.</p> <p>This particular section is to ensure that no sensitive information is being collected unnecessarily and is not disclosed publicly.</p> <h3 id="common-reasons-for-removalrejection_13" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension is collecting Web Browsing Activity when it is not needed for a user facing feature.</li> <li>Sensitive user information collected using the extension is being disclosed publicly.</li> </ul> <h3 id="how-can-you-rectify-this_13" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Don't collect Web Browsing Activity unless it is required for a user-facing feature.</li> <li>Ensure user information is not being disclosed publicly</li> </ul> <h3 id="udp-other-requirements-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/data-handling">developer program policies</a>:</p> <aside class="note"><h4 id="personal-or-sensitive-user-data_3" data-text="Personal or Sensitive User Data" tabindex="-1">Personal or Sensitive User Data</h4> <p>Other Requirements: The following types of personal or sensitive user data are also subject to additional requirements:</p> <table> <tbody> <tr> <td><strong>Type of User Data</strong></td> <td><strong>Requirement</strong></td> </tr> <tr> <td>Financial or Payment Information</td> <td>Don't publicly disclose financial or payment information</td> </tr> <tr> <td>Authentication Information</td> <td>Don't publicly disclose authentication information</td> </tr> <tr> <td>Web Browsing Activity</td> <td>Collection and use of web browsing activity is prohibited except to the extent required for a user-facing feature described prominently in the Product's Chrome Web Store page and in the Product's user interface.</td> </tr> </tbody> </table> </aside> <h2 id="cryptocurrency-mining" data-text="Cryptocurrency mining" tabindex="-1">Cryptocurrency mining</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Grey Silicon</code></p> <p>The intent of this policy is to prevent the use of extensions and the Chrome Web Store as a platform to mine cryptocurrencies.</p> <h3 id="common-reasons-for-removalrejection_14" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension is mining cryptocurrencies on user machines.</li> <li>The extension is providing the functionality to mine cryptocurrencies</li> </ul> <h3 id="how-can-you-rectify-this_14" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>If this is the primary functionality of your extension, then it is recommended to unpublish your extension.</li> <li>If this was an unintended functionality, then remove the content or services that are in violation and resubmit your extension.</li> </ul> <h3 id="cryptocurrency-mining-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/malicious-and-prohibited">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies_7" data-text="Content Policies" tabindex="-1">Content Policies</h4> Prohibited Products: We don't allow products or services that: <ul> <li>Facilitate unauthorized access to content on websites, such as circumventing paywalls or login restrictions</li> <li>Encourage, facilitate, or enable the unauthorized access, download, or streaming of copyrighted content or media</li> <li>Mine cryptocurrency</li> </ul> </aside> <h2 id="prohibited-products" data-text="Prohibited products" tabindex="-1">Prohibited products</h2> <p>Corresponds to notification IDs: <code translate="no" dir="ltr">Blue Zinc</code>, <code translate="no" dir="ltr">Blue Copper</code>, <code translate="no" dir="ltr">Blue Lithium</code>, and <code translate="no" dir="ltr">Blue Magnesium</code></p> <p>The intent of this policy is to prevent the use of extensions and the Chrome Web Store as a platform to provide access to content protected by paywalls, login restrictions or intellectual property rights.</p> <h3 id="common-reasons-for-removalrejection_15" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension is providing access to content behind a paywall.</li> <li>The extension is providing access to content behind login restrictions.</li> <li>The extension is facilitating download of YouTube videos.</li> <li>The extension is facilitating download of content that is in violation of the content owner's intellectual property rights.</li> </ul> <h3 id="how-can-you-rectify-this_15" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>If this is the primary functionality of your extension, then it is recommended to unpublish your extension.</li> <li>If this was an unintended functionality, then remove the content or services that are in violation and resubmit your extension.</li> </ul> <h3 id="prohibited-products-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/malicious-and-prohibited">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies_8" data-text="Content Policies" tabindex="-1">Content Policies</h4> <p>Prohibited Products: We don't allow products or services that:</p> <ul> <li>Facilitate unauthorized access to content on websites, such as circumventing paywalls or login restrictions</li> <li>Encourage, facilitate, or enable the unauthorized access, download, or streaming of copyrighted content or media</li> <li>Mine cryptocurrency</li> </ul> </aside> <h2 id="keyword-stuffing" data-text="Keyword stuffing" tabindex="-1">Keyword stuffing</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Yellow Argon</code></p> <p>The intent of this policy is to ensure quality of items published to the Chrome Web Store and prevent developers from manipulating their placement in the Store.</p> <h3 id="common-reasons-for-removalrejection_16" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension is having excessive, irrelevant or inappropriate keywords in the metadata, more commonly, the description.</li> </ul> <h3 id="how-can-you-rectify-this_16" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Remove the content (keywords) that are in violation of the policy.</li> </ul> <h3 id="keyword-stuffing-examples" data-text="Examples" tabindex="-1">Examples</h3> <p>The following are examples of this type of violation:</p> <ul> <li>Including in an extension's metadata a long list of the different sites on which the extension works.</li> </ul> <h3 id="keyword-stuffing-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/spam-and-abuse">developer program policies</a>:</p> <aside class="note"><h4 id="spam-placement-in-the-store_1" data-text="Spam & Placement in the Store" tabindex="-1">Spam & Placement in the Store</h4> <p><strong>Keyword Spam:</strong> Keyword Spam is the practice of including irrelevant or excessive keywords in an extensions description in an attempt to manipulate its ranking, resulting in a spammy, negative user experience. We don't allow extensions with misleading, improperly formatted, non-descriptive, irrelevant, excessive, or inappropriate metadata, including but not limited to the extension's description, developer name, title, icon, screenshots, and promotional images. Developers should focus on providing a clear and well-written description that uses keywords appropriately and in context.</p> <p>Some examples of Keyword Spam include:</p> <ul> <li>Lists of sites/brands/keywords without substantial added value</li> <li>Lists of regional locations</li> <li>Unnatural repetition of the same keyword more than 5 times</li> <li>Unattributed or anonymous user testimonials in the product's description.</li> </ul> </aside> <h2 id="redirection" data-text="Redirection" tabindex="-1">Redirection</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Yellow Lithium</code></p> <p>The intent of this policy is to ensure quality of the products on the Chrome Web Store and prevent products from manipulating their placement in the Store</p> <h3 id="common-reasons-for-removalrejection_17" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The only functionality of the extension is to launch another app, theme, webpage, or extension.</li> <li>Examples of violations include <ul> <li>Extensions that display a website in a new tab or in a popup when the extension's action is clicked.</li> <li>Extensions that display a promotional page for another product immediately upon installation.</li> </ul></li> </ul> <h3 id="how-can-you-rectify-this_17" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>As mentioned in the policy, such extensions are not allowed on the Store and it is recommended to unpublish them.</li> </ul> <h3 id="redirection-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/minimum-functionality">developer program policies</a>:</p> <aside class="note"><h4 id="spam-placement-in-the-store_2" data-text="Spam & Placement in the Store" tabindex="-1">Spam & Placement in the Store</h4> <strong>Functionality:</strong> 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.</aside> <h2 id="spam" data-text="Spam" tabindex="-1">Spam</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Yellow Nickel</code></p> <p>The intent of this policy is to ensure quality of the products on the Chrome Web Store. The Spam policy is to prevent extensions that are harmful for the user's browsing experience and extensions that manipulate their placement on the Chrome Web Store.</p> <h3 id="common-reasons-for-removalrejection_19" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>You or your affiliates are submitting multiple extensions that provide duplicate experiences or functionality.</li> <li>You are manipulating the extension's reviews, ratings or installs data.</li> <li>The extension is showing notifications to the user in a way that is disruptive or harmful to the user's browsing experience.</li> <li>The extension is sending messages on behalf of the user without the user's consent.</li> </ul> <h3 id="how-can-you-rectify-this_19" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Don't submit multiple extensions with duplicate experiences or functionality.</li> <li>Don't try to manipulate the user generated content on your extension's Web Store listing</li> <li>Don't harm the user's browsing experience in any way.</li> </ul> <h3 id="spam-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/spam-and-abuse">developer program policies</a>:</p> <aside class="note"><h4 id="spam-placement-in-the-store_3" data-text="Spam & Placement in the Store" tabindex="-1">Spam & Placement in the Store</h4> <p><strong>Repetitive Content:</strong> 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 unique content or services.</p> <p><strong>User Ratings, Reviews, and Installs:</strong> Developers must not attempt to manipulate the placement of any extensions in the Chrome Web Store. This includes, but is not limited to, inflating product ratings, reviews, or install counts by illegitimate means, such as fraudulent or incentivized downloads, reviews and ratings.</p> <p><strong>Notification Abuse:</strong> We do not allow extensions that abuse, or are associated with abuse, of notifications by sending spam, ads, promotions, phishing attempts, or unwanted messages that harm the user's browsing experience.</p> <p><strong>Message Spam:</strong> We don't allow extensions that send messages on behalf of the user without giving the user the ability to confirm the content and intended recipients.</p> <p>In addition to these requirements, all extensions must comply with <a href="https://support.google.com/webmasters/answer/35769#3">Google's Webmaster Quality Guidelines</a>.</p> </aside> <h2 id="circumvents-api-ntp" data-text="Circumvents the overrides API" tabindex="-1">Circumvents the overrides API</h2> <p>Corresponds to notification IDs: <code translate="no" dir="ltr">Blue Nickel</code> and <code translate="no" dir="ltr">Blue Potassium</code></p> <p>The intent of this policy is to ensure quality of the products on the Chrome Web Store.</p> <h3 id="common-reasons-for-removalrejection_20" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>The extension is modifying the Chrome New Tab Page but not using the Overrides API.</li> <li>The extension is modifying the Omnibox Search but not using the Overrides API.</li> </ul> <h3 id="how-can-you-rectify-this_20" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Do not modify the Chrome New Tab Page or do so using the Overrides API.</li> <li>Do not modify the Omnibox Search or do so using the Overrides API.</li> </ul> <h3 id="circumvents-api-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/api-use">developer program policies</a>:</p> <aside class="note"><h4 id="extensions-quality-guidelines_1" data-text="Extensions Quality Guidelines" tabindex="-1">Extensions Quality Guidelines</h4> 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 API is not permitted.</aside> <h2 id="uws-distribution" data-text="Deceptive installation" tabindex="-1">Deceptive installation</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Red Zinc</code></p> <p>The intent of this policy is to ensure users are not deceived into installing extensions.</p> <h3 id="common-reasons-for-removalrejection_21" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>Unclear or inconspicuous disclosures on marketing collateral preceding the Chrome Web Store Product listing.</li> <li>Misleading interactive elements as part of your distribution flow. This includes misleading call-to-action buttons or forms that imply an outcome other than the installation of an extension.</li> <li>Adjusting the Chrome Web Store Product listing window with the effect of withholding or hiding extension metadata from the user.</li> </ul> <h3 id="how-can-you-rectify-this_21" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <p>Publish a new extension that does not employ deceptive methods to market to users or to gather a user base.</p> <h3 id="uws-distribution-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/deceptive-installation-tactics">developer program policies</a>:</p> <aside class="note"><h4 id="deceptive-installation-tactics" data-text="Deceptive Installation Tactics" tabindex="-1">Deceptive Installation Tactics</h4> <p>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 user. Extensions that use or benefit from deceptive installation tactics will be removed from the Chrome Web Store.</p> <p>Deceptive installation tactics include:</p> <ul> <li>Unclear or inconspicuous disclosures on marketing collateral preceding the Chrome Web Store product listing.</li> <li>Misleading interactive elements as part of your distribution flow. This includes misleading call-to-action buttons or forms that imply an outcome other than the installation of an extension.</li> <li>Adjusting the Chrome Web Store product listing window with the effect of withholding or hiding extension metadata from the user.</li> <li>Bundling other extensions or offers within the same installation flow.</li> <li>Requiring unrelated user action to access advertised functionality.</li> </ul> </aside> <h2 id="obfuscation" data-text="Obfuscation" tabindex="-1">Obfuscation</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Red Titanium</code></p> <p>The intent of this policy is to ensure the quality of the extensions and code submitted to the Chrome Web Store.</p> <h3 id="common-reasons-for-removalrejection_22" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <p>Using obfuscated code in the extension package.</p> <h3 id="how-can-you-rectify-this_22" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <p>Publish a new extension that does not employ deceptive methods to market to users or to gather a user base.</p> <h3 id="obfuscation-examples" data-text="Examples" tabindex="-1">Examples</h3> <p>The following are some examples of violations of this type of policy:</p> <ul> <li>Base 64 encoding (e.g. <code translate="no" dir="ltr">'SSdtIGluIHVyIGJhc2U='</code>)</li> <li>Character encoding (e.g. <code translate="no" dir="ltr">'\u{68}a\u0063\u006b\x69ng\u{20}u\u{72}\x20\u0067i\u0062\x73\x6fn'</code>)</li> </ul> <h3 id="obfuscation-policy" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/code-readability">developer program policies</a>:</p> <aside class="note"><h4 id="content-policies_9" data-text="Content Policies" tabindex="-1">Content Policies</h4> <p>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:</p> <ul> <li>Removal of whitespace, newlines, code comments, and block delimiters</li> <li>Shortening of variable and function names</li> <li>Collapsing files together</li> </ul> </aside> <h2 id="minimum_functionality" data-text="Minimum Functionality" tabindex="-1">Minimum Functionality</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Yellow Potassium</code></p> <p>The intent of this policy is to ensure all extensions in the Chrome Web Store are providing a basic degree of functionality and utility for users. Extensions should provide users with benefits and enrich their browsing experience.</p> <h3 id="common_reasons_for_removalrejection_24" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>Your submitted extension contained no files other than a manifest.</li> <li>The extension did not provide discernable value or utility to its users.</li> <li>A feature listed in the item's description was not provided directly by the item and instead simply linked to an external service.</li> <li>The extension metadata contained click-baity content designed to attract the attention of users and entice them to install.</li> </ul> <h3 id="how_can_you_rectify_this_25" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Ensure that your extension has a defined functionality which provides value.</li> <li>Ensure that any claimed functionality of your item is performed directly by the item itself and not achieved by linking users to an external source.</li> </ul> <h3 id="relevant_policy_25" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/minimum-functionality">developer program policies</a>:</p> <aside class="note"><h4 id="building-quality-products---minimum-functionality" data-text="Building Quality Products - minimum functionality" tabindex="-1">Building Quality Products - minimum functionality</h4> <p>Extensions must provide a basic degree of functionality and utility that provide value to the catalog of the Chrome Web Store. Some examples of common violations include:</p> <ul> <li>Extensions with no functionality or utility.</li> <li>Extensions with functionality that is not directly provided by the extension (e.g. file converters which only link to other file conversion services).</li> <li>Click-baity template extensions that only vary slightly in functionality with negligible utility (e.g. a "Word of the Day" extension and a "Daily Inspirational Quotes" extension, which use the same general extension template).</li> </ul> </aside> <h2 id="affiliate_ads" data-text="Affiliate Ads" tabindex="-1">Affiliate Ads</h2> <p>Corresponds to notification ID: <code translate="no" dir="ltr">Grey Titanium</code></p> <p>The intent of this policy is to ensure users are aware of extensions using affiliate links or codes for monetization, and to give them some amount of control by requiring user action before inclusion.</p> <h3 id="common_reasons_for_removalrejection_25" data-text="Common reasons for removal/rejection" tabindex="-1">Common reasons for removal/rejection</h3> <ul> <li>Your extension uses affiliate marketing links, codes, or cookies without properly disclosing their use in the item's description and user interface.</li> <li>No related user action is required before inclusion of affiliate codes, links, or cookies.</li> </ul> <h3 id="how_can_you_rectify_this_26" data-text="How can you rectify this?" tabindex="-1">How can you rectify this?</h3> <ul> <li>Modify your item's description and UI to properly inform users that you are using affiliate programs.</li> <li>Inclusion of affiliate codes must be preceded by a relevant action taken by the user. This action must be related to the affiliated platform such that a reasonable user would understand and consent to the inclusion of said codes.</li> </ul> <h3 id="relevant_policy_26" data-text="Relevant policy" tabindex="-1">Relevant policy</h3> <p>This section addresses extensions that are in violation of the following section of the Chrome Web Store <a href="/docs/webstore/program-policies/affiliate-ads">developer program policies</a>:</p> <aside class="note"><h4 id="ensuring-responsible-marketing-and-monetization---affiliate-ads" data-text="Ensuring Responsible Marketing and Monetization - Affiliate Ads" tabindex="-1">Ensuring Responsible Marketing and Monetization - Affiliate Ads</h4> <p>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 include:</p> <ul> <li>An extension that updates a shopping-related cookie without the user's knowledge while the user is browsing shopping sites.</li> <li>An extension that appends an affiliate code to the URL or replaces an existing affiliate code in the URL without the user's explicit knowledge or related user action.</li> <li>An extension that applies or replaces affiliate promo codes without the user's explicit knowledge or related user action.</li> </ul> </aside> </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 2020-11-16 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 2020-11-16 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&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&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 & 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="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>{"at": "True", "ga4": [], "ga4p": [], "gtm": [{"id": "GTM-5QF3RT2", "purpose": 0}], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Extensions", "signedIn": "False", "tenant": "chrome", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="GiYGy5BQ+xPFttWjI0QljAbfctd01C"> (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",null,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,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,["Analytics__enable_clearcut_logging","DevPro__enable_developer_subscriptions","MiscFeatureFlags__developers_footer_image","TpcFeatures__enable_required_headers","Cloud__enable_cloud_dlp_service","Profiles__require_profile_eligibility_for_signin","Search__enable_ai_eligibility_checks","Profiles__enable_public_developer_profiles","EngEduTelemetry__enable_engedu_telemetry","Experiments__reqs_query_experiments","Cloud__enable_cloudx_ping","Cloud__enable_cloud_shell","Cloud__enable_legacy_calculator_redirect","OnSwitch__enable","Search__enable_dynamic_content_confidential_banner","MiscFeatureFlags__enable_variable_operator","Profiles__enable_dashboard_curated_recommendations","Cloud__enable_cloud_facet_chat","Cloud__enable_llm_concierge_chat","Cloud__enable_free_trial_server_call","Profiles__enable_completecodelab_endpoint","MiscFeatureFlags__enable_explain_this_code","CloudShell__cloud_shell_button","MiscFeatureFlags__enable_project_variables","Concierge__enable_pushui","MiscFeatureFlags__developers_footer_dark_image","Profiles__enable_developer_profiles_callout","MiscFeatureFlags__enable_view_transitions","DevPro__enable_cloud_innovators_plus","Profiles__enable_awarding_url","Cloud__enable_cloud_shell_fte_user_flow","MiscFeatureFlags__enable_firebase_utm","MiscFeatureFlags__emergency_css","Profiles__enable_profile_collections","Profiles__enable_release_notes_notifications","Profiles__enable_page_saving","Search__enable_page_map","Profiles__enable_complete_playlist_endpoint","CloudShell__cloud_code_overflow_menu","Cloud__enable_cloudx_experiment_ids","Profiles__enable_recognition_badges","Search__enable_suggestions_from_borg","TpcFeatures__enable_mirror_tenant_redirects","BookNav__enable_tenant_cache_key"],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>