In order to test when extensions are disabled by Chrome I created a private extension in the Chrome Web Store.
I started with a simple definition for manifest.json
and then I added fields and settings one by one. For each test, I:
- uploaded a new version to the store
- waited for Google to publish the extension (this took a lot of time!)
- forced the extension update on a testers' account
- writed down the results
After 13 tests, this is what I've found:
Changes in manifest
that DISABLE the extension
- Adding an entry at
"content_scripts"
> "matches"
[Warning: "Read and change your data on example.com"]
- Adding
"externally_connectable"
> {"ids", "matches"}
[Warning: "Communicate with cooperating websites"]
Changes in manifest
that did NOT disabled the extension (no warnings)
- Adding
"declarativeContent"
permission
- Adding
"optional_permissions"
> all hosts
- Adding an entry at
"externally_connectable"
> "ids"
(after externally_connectable
was accepted)
- Adding an entry at
"externally_connectable"
> "matches"
(after externally_connectable
was accepted)
- Adding an entry of a host without permissions at
"externally_connectable"
> "matches"
(after externally_connectable
was accepted)
- Adding
"incognito": "split"
- Adding
"content_security_policy"
> script-src URL
- Adding
"web_accessible_resources"
Plus, permissions listed at permission_warnings#nowarning docs.
I probably did some silly tests like "web_accessible_resources"
, but I prefer that than having Chrome disabling my extension again.
Special test
Since I'm moving to optional_permissions
, all hosts listed in permissions
are removed. So, I wanted to know what would happen with the disabled extension when a new update does not have the problematic permission anymore:
Update 1: a new host is added at "content_scripts"
> "matches"
=> Extension disabled
Update 2: the problematic host is removed from "content_scripts"
=> Extension ENABLED again
To conclude, if you made a mistake you can release a new version rolling back the changes that caused the extension to be disabled.
If I move the site's list from permissions
to optional_permissions
does the user need to approve those sites again? or just the ones that I add over time.
The answer is straightforward, no. Chrome stores all permissions given to the extension over time. So, only the new hosts on optional_permissions
need to be approved.