Trusted tester extensions and an inability to publish without "Pending review"

167 views
Skip to first unread message

Lindsey Simon

unread,
Jan 11, 2021, 11:26:12 AM1/11/21
to Chromium Extensions
My extension takes screenshots and as such requires the <all_urls> host permission. It seems that, perhaps because of that?, I cannot publish new packages without going into a multi-day "Pending review" state followed by "Published to testers". 

I am using an extension to prototype something with my colleagues and only ever intend to distribute it using the Google Groups trusted tester mechanism. I would really like to be able to iterate more quickly than this. I wonder if I'm just doing something wrong ;0

Any thoughts or approaches are welcome here! Thank you.

Simeon Vincent

unread,
Jan 12, 2021, 1:00:54 AM1/12/21
to Chromium Extensions, els...@gmail.com
First, trusted testers may not be the right deployment mechanism for you. Based on what you shared so far it sounds like you are relatively early and need to quickly iterate. For better or worse, the Chrome Web Store does not serve that scenario very well. 

Since you're prototyping with colleagues, another solution you might want to consider is setting up a network drive and having everyone load the unpacked extension from that location. You could even combine this with some simple polling logic in the extension to check if it has the latest version and to use chrome.runtime.reload when a new version is detected. It's not elegant, but it should work. Or if not a shared drive, perhaps use rsync to push out changes? You could even combine this with the --load-extension command line flag on your Chrom(e|ium) shortcuts to load the unpacked extension.

An alternative (and significantly more complicated) route is to self-host your extension on your own web servers and to use enterprise policies to force install the development version on the desired devices. This would leverage Chrome's automatic update flow, but it requires a lot more work to update, package, and deploy (or at least set up that process). Our docs on this topic aren't great, but at the moment I think the Managing Extensions in your Enterprise whitepaper is probably the single best resource. You'll most likely want to focus on the "Create your own on-premises web store" section.

Second, based on the information you've provided so far you may not actually <all_urls>. If you only want to take screenshots in direct response to the user action such as clicking the browser action or invoking a keyboard shortcut, you can potentially use the activeTab permission. 

Cheers,

Simeon - @dotproto
Chrome Extensions DevRel

Lindsey Simon

unread,
Jan 12, 2021, 12:16:55 PM1/12/21
to Chromium Extensions, Simeon Vincent, Lindsey Simon
On Monday, January 11, 2021 at 10:00:54 PM UTC-8 Simeon Vincent wrote:
First, trusted testers may not be the right deployment mechanism for you. Based on what you shared so far it sounds like you are relatively early and need to quickly iterate. For better or worse, the Chrome Web Store does not serve that scenario very well. 

Bummer, I think this is at the root of my problem - thanks for acking it though =) 
 
Since you're prototyping with colleagues, another solution you might want to consider is setting up a network drive and having everyone load the unpacked extension from that location. You could even combine this with some simple polling logic in the extension to check if it has the latest version and to use chrome.runtime.reload when a new version is detected. It's not elegant, but it should work. Or if not a shared drive, perhaps use rsync to push out changes? You could even combine this with the --load-extension command line flag on your Chrom(e|ium) shortcuts to load the unpacked extension.

This approach may work - if I can make a github repo somehow feel like a network drive easily. ;)

An alternative (and significantly more complicated) route is to self-host your extension on your own web servers and to use enterprise policies to force install the development version on the desired devices. This would leverage Chrome's automatic update flow, but it requires a lot more work to update, package, and deploy (or at least set up that process). Our docs on this topic aren't great, but at the moment I think the Managing Extensions in your Enterprise whitepaper is probably the single best resource. You'll most likely want to focus on the "Create your own on-premises web store" section.

Second, based on the information you've provided so far you may not actually <all_urls>. If you only want to take screenshots in direct response to the user action such as clicking the browser action or invoking a keyboard shortcut, you can potentially use the activeTab permission. 

Yeah, the problem is that the user action is not clicking the extension icon but performing a drag on an element I've created in a toolbar which does happen to be rendered by extension on the activeTab but.. I don't think that suffices for activeTab permission. Worth asking though - If I wasn't using <all_urls> would publishing be more instantaneous?

Thank you Simeon,
Lindsey

Simeon Vincent

unread,
Jan 13, 2021, 12:56:48 AM1/13/21
to Lindsey Simon, Chromium Extensions

…which does happen to be rendered by extension on the activeTab but…

Quick point of clarity: active tab is a special permission that gives you a temporary access to the host in the currently focused. It does not mean the tab that is currently active. See activeTab for additional details.

If I wasn't using <all_urls> would publishing be more instantaneous?

It may be faster, but it wouldn't be instantaneous. This way, if you have the <all_urls> permission, your extension has constant access to every site that the user visits. That's pretty dangerous. If you have the activeTab permission, your extension only has site access when the user invokes your extension. Still dangerous, but a lot less dangerous. 

Cheers,

Simeon - @dotproto
Chrome Extensions DevRel

Reply all
Reply to author
Forward
0 new messages