Back to Articles

Avoiding lengthy review times for Chrome webstore submissions

By Shash7. Posted on 24th May, 2020 - Updated on 16th Oct, 2022

Avoiding lengthy review times for Chrome webstore submissions

Since the launch of Snapfont we have been fighting with the Chrome webstore review process.It seems that a lot of extension developers are in the same boat anxiously waiting for their extension to be reviewed or hoping their extension's update doesn't trigger a manual review.

Here's our take on how to deal with it and what you can expect if your extension gets reviewed manually by Chrome Web Store(CWS from now on).

How long does Chrome webstore take to review extensions?

After submitting an extension to the CWS, extension authors can get hit with a manual review. This can lead to your update being delayed by up to 3 weeks. In some cases, authors have reported not getting their update approved even after 3 weeks.

This can be especially problematic if your last update had a serious bug and now you got hit with a manual review which means your extension is unusable for almost a month. By contrast, normal(automatic) review times are usually a few hours at most.

To generalize, Chrome webstore takes between 2-3 minutes to upto a week to review extensions.

If you're using the v2 manifest and you're just updating your extensions's code, it will take from 15 minutes to 2-3 hours to push the update.

If you're using the v2 manifest and you have updated your manifest.json, preview images and/or description, it will take from 2-3 hours to upto 7 days.

If you're using the v3 manifest and you're just updating your extensions's code, it will usually take less than a minute to push the update.

If you're using the v3 manifest and you have updated your manifest.json, preview images and/or description, it will take from 2-3 hours to upto 7 days.

What happens when you get a manual review?

So what happens when you get hit with a manual review?

First off, there's no way to know if you got a manual review. After the update, you'll get a message from the webstore stating something about a compliance check. This does not mean it is under manual review. Sometimes it may take 2-3 hours, sometimes more too but usually if your update is automatic, it will take less than 12 hours to go through.

If it takes more than 12 hours, there's a very good chance it's being reviewed manually. This may take up to 3 weeks and till then you can't back off your current update nor can you push a different one through.

The official Webstore policy is to wait for up to 3 weeks for the update to go through. If it takes more than 3 weeks, head over to the extension forums and voice your concerns there. As with everything Google, there's no guarantee you'll get an audience.

Basically, there's no way of knowing if you're update is under manual review- Worse off, you can't back out of the manual review nor can you push another update. Your extension is locked while its under review.- There's no notification from the webstore if your update goes through. You'll need to manually check the webstore.

But what if you get hit with a manual review? Remember that you're not alone. Most CWS developers face this nonsense.

PS: Just to be realistic, your manual review should be finished within a full business week. If it takes more than that, head over to the Chrome extensions Google group and voice your concerns there.

Anyways, with these implications, you should do everything to make sure you don't get hit with a manual review.

Combating Chrome's manual review

The main source of the problem for the manual review is your manifest.json file.
Here's a sample one which won't get a manual review, loosely modeled after the Snapfont's manifest:

{
  "manifest_version": 2,
  "name": "Test extension",
  "homepage_url": "https://xyz.com",
  "description": "I'm a test extension",
  "default_locale": "en",
  "permissions": [
    "storage",
    "activeTab",
  ],
  "icons": {
    "16": "icons/16.png",
    "48": "icons/48.png",
    "128": "icons/128.png"
  },
  "browser_action": {
    "default_popup": "popup.html",
    "default_title": "__MSG_extName__",
    "default_icon": {
      "19": "icons/19.png",
      "38": "icons/38.png"
    }
  }
}


Check your manifest's permissions

This is the biggest one. Setting the permission to `<all_urls>`, `tabs` or to `http://*` will trigger Chrome webstore's manual review for sure. The only way around this is to use the activeTab permission. Unfortunately, if your extension needs to be available on every page, you'll need this permission. See the last part of what you review times you can expect.

`content_security_policy`

For the most part, this won't cause any issues. But setting a custom csp with open permissions can potentially trigger the Chrome webstore's bots. When we introduced a custom csp for Snapfont we did notice a slightly longer delay in getting the update approved but it still got through within 12 hours.

Another big one is asking for permissions and background scripts and not using them. We encountered this when we had a background script but we weren't actively using it. Not sure what heuristics CWS uses to detect unused permissions but we can confirm that will invoke a manual review.

Webstore bugs

There are some UX problems with CWS that have been problematic for long time. For instance, if you click on publish, there may be a popup letting you know that this may potentially trigger a manual review. If you go back and click publish again, this will go through the manual review process without any warning.

To counter this, if you get a warning about a potential manual review, go back and think about it. Reupload a new build if possible. But if you don't do anything and press publish again, it will start the manual review without any warning so beware of this.

Also, promo screenshots will sometimes be marked invalid and you'll need to re-upload them again. This is a long-standing bug. We maintain a `/press` folder inside our repo where all these images are saved.

Whenever this bug pops up, we simply re-upload the promo images again.

And if you're wondering why your small tile promo image is awaiting approval, this is standard procedure of CWS to 'approve' that particular image before it shows up on the store. We don't even care about it anymore. Since day 1, Snapfont's small tile promo image has been stuck in approval process.

Also, the CWS v2 dashboard is very buggy in its current state. A lot of developers have mentioned the v2 dashboard showing you warnings of your app being flagged for manual review even though it hasn't triggered the manual review heuristic. You may be forced to use this when you update permissions and/or need to add a privacy policy.

The current meta is to avoid the v2 dashboard. Don't use it unless they significantly improve it.

Tips and best practices for updating Chrome extensions

With all that being said, there are definitely some practices that will consistently yield quicker extension update times.

  • When you want to push an update, don't bundling listing updates along with your package updated. Eg: don't make listing changes like, title, description, banner images along with your code updates.

  • If you're rolling out hotfixes, don't bundle manifest permission updates, nor listing updates along with it.

  • If you want to update your extension's listing, do it separately from your package updates.

  • Avoid pushing out updates on Friday. Especially manifest permission updates and listing updates.

Conclusion

Some people have suggested only developing for Firefox. Unfortunately, their process isn't that good either, not to mention the fact that Chrome has a significantly wider market share.

Publishing for CWS is certainly a pain, however, if you know the kinks of the system, it can become somewhat smoother after some time to continuously update your extension.If you're a extension developer, show me your manifest privately and I can point out what can potentially cause review issues.

In closing:

Chrome webstore is bad at dealing with manual reviews. Worst-case scenarios can take up to 3 weeks or even longer.

And besides, your app can still be flagged for a manual review for no reason so make sure extension's manifest is only asking for the permissions it absolutely needs. And don't keep updating your extension's listing information again and again or else your extension will take longer to update.


Update 5/8/2022

I've updated the article to better reflect current update times.

Currently, Chrome takes a lot less time pushing v3 manifest extensions through. My typical update times have been within a few minutes. They will still take more time if you change permissions or change the title, description, etc of the listing.

Also, the Chrome developer dashboard has improved a lot and its significantly more useful than what it was a few years ago.

And they have added a sweet stats panel with better analytics too.