Avoiding lengthy review times for Chrome webstore submissions

  By Shash7. Posted on 24/05/2020 - Updated on 5/8/2022

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).

Chrome Webstore's problem

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.

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.

To conclude:- 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.

With these implications, you should do everything to make sure you don't get hit with a manual review.
---
But what if you get hit with a manual review?Remember that you're not alone. Majority of CWS developers face this.

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"
    }
  }
}


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.

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.- There are some steps you can take to ensure your update doesn't trigger a manual review. However, your app can still be flagged for a manual review for no reason.- The new v2 dashboard is broken. Keep using the old one until they fix it.


Update 5/8/2022

Currently, Chrome takes a lot less time pushing v3 manifest extensions through. My typical update times have been 1-2 hours. 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.