CRX3 - how to convert existing extension to CRX3 format

7,935 views
Skip to first unread message

Sumeet Agrawal

unread,
Jan 2, 2019, 11:49:45 PM1/2/19
to chromium-...@chromium.org

As per : https://groups.google.com/a/chromium.org/forum/#!topic/chromium-discuss/ZsHYZ9yteZ0Anything uploaded as a ZIP to Chrome Web Store has been repackaged by Google as a CRX3 already, no action is necessary in this case. :)


However, I have not found any official documentation including the Google Chrome Extensions Development site regarding how can we convert existing Chrome extensions to CRX3 format.


I tried to use my existing source code and package the extension using Chrome 71 'chrome://extensions' page - Developer mode and then checked the manifest_version field from manifest.json file but that still shows version 2. How would we know if the newly packaged extension is now in CRX3 format, given that we know the file extension is going to remain .crx?


--
sums(sumeet agrawal)
slg....@gmail.com

sim...@chromium.org

unread,
Jan 3, 2019, 12:34:18 AM1/3/19
to Chromium Extensions
This tripped me up as well. The CRX format change discussed in that thread refers to the file format used to package extensions, not the manifest_version field of the manifest.json file in your extension.

For most extension authors this change is an implementation detail. Do you have a use case where you need to verify the extension has the correct CRX format?

Simeon
Chrome Developer Advocate
sums(sumeet agrawal)
slg...@gmail.com

sim...@chromium.org

unread,
Jan 3, 2019, 12:54:41 PM1/3/19
to Chromium Extensions
> Thank you 
> My use case is simple: I just want to make sure that my Chrome extension is
> in correct format. I don't want my extension that is already in Webstore to
> go to 'Pending Review' or 'Removed' statuses just due to this issue.
>
> I don't want to know about any programmable method to verify this. Just want
> to make sure my extension file is in desired format when Chrome v75 comes
> calling.
>
> Being a Chrome extension author / developer myself, I'd like to know what you
> meant by "For most extension authors this change is an implementation
> detail."?

Hm… that may not have been the best choice of words on my part. By "implementation detail" I meant the CRX3 format change primarily affects how the Chrome Web Store and Chrome browser communicate. It's a detail of that system that doesn't directly impact most authors or end users.

Enterprise extension authors that distribute extensions outside of the Chrome Web Store may need to be aware of this change as they are responsible for packaging their extensions.

Simeon
Chrome Developer Advocate

Darren Govoni

unread,
Jan 4, 2019, 5:31:00 PM1/4/19
to sim...@chromium.org, Chromium-extensions
There is still the problem of creating a valid crx file when an enterprise is hosting it's extension on its own internal servers.

Does Google provide a solution to that dillema?

--
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extens...@chromium.org.
To post to this group, send email to chromium-...@chromium.org.
Visit this group at https://groups.google.com/a/chromium.org/group/chromium-extensions/.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-extensions/5b0a475f-6f58-45d4-a881-d677e079b2be%40chromium.org.
For more options, visit https://groups.google.com/a/chromium.org/d/optout.

sim...@chromium.org

unread,
Jan 4, 2019, 6:58:06 PM1/4/19
to Chromium Extensions, sim...@chromium.org
Hitting both Darren & Sumeet's questions in one ;)

> Thank you Simeon.
> Actually we happen to be one of the Extension developers that distribute to
> Enterprise too. So I'd actually be interested in knowing how this CRX3 change
> will impact us? Do I just need to repackage the extension? Do I need to update
> the extension manifest json file? Or are there any other steps involved?

As I mentioned before the CRX3 format is not related to your extension's manifest.json.

Documentation on manually packaging an extension can be found on https://developer.chrome.com/extensions/linux_hosting. If you're packaging your extension as part of an automated build process, you'll be especially interested in the "Package through Command Line" section.

As long as your packaging pipeline is using a version of Chrome newer than 64.0.3242.0 you should be good. Note that this includes the stable release of Chrome 64 (64.0.3282). 

Cheers,

Simeon
Chrome Developer Advocate

Darren Govoni

unread,
Jan 4, 2019, 8:57:33 PM1/4/19
to sim...@chromium.org, Chromium-extensions
Thanks for the info. 

Our build pipeline is entirely server based. So there is no chrome executable to run.

In enterprise situations server install packages are strictly controlled and chrome is not whitelisted for server image profiles. It probably is a server side security concern.

Why can't there be a proper script (e.g. python ) that does this? Or publish the psuedo code so we can write one.

Thanks



--
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extens...@chromium.org.
To post to this group, send email to chromium-...@chromium.org.
Visit this group at https://groups.google.com/a/chromium.org/group/chromium-extensions/.

pba...@opera.com

unread,
Feb 4, 2019, 5:59:42 AM2/4/19
to Chromium Extensions, sim...@chromium.org
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extensions+unsub...@chromium.org.

Sumeet Agrawal

unread,
Feb 7, 2019, 10:51:12 PM2/7/19
to Chromium Extensions, sim...@chromium.org
So just so that I am 100% sure I understood this correctly:
If I am distributing my extension solely through the Chrome Webstore and if I package my Extension following the documented procedure as mentioned 'https://developer.chrome.com/extensions/hosting' then my extension WILL be in CRX3 format by default? And that the manifest_version has nothing to do with CRX3?

Simeon Vincent

unread,
Feb 7, 2019, 11:24:02 PM2/7/19
to Chromium Extensions
Correct!

It's just an unfortunatly confusing coincidence that two very different, but very important parts of extensions are moving to their third iterations at roughly the same time.

Simeon
Chrome Developer Advocate

Sumeet Agrawal

unread,
Feb 8, 2019, 1:48:06 AM2/8/19
to Chromium Extensions
Which 2 parts of the extension are you referring to? 
Sorry, I am relatively new at this so just trying to get the complete hang of it.

PhistucK

unread,
Feb 8, 2019, 5:30:49 AM2/8/19
to Sumeet Agrawal, Chromium Extensions
CRX3 and manifest_version: 3
The former is a file format iteration and the latter is an iteration of the extension API/system.
CRX3 is already a thing at this point, manifest_version: 3 is still in discussion and development.

PhistucK


--
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extens...@chromium.org.
To post to this group, send email to chromium-...@chromium.org.
Visit this group at https://groups.google.com/a/chromium.org/group/chromium-extensions/.

Sumeet Agrawal

unread,
Feb 8, 2019, 5:41:24 AM2/8/19
to PhistucK, Chromium Extensions
Got it, thanks! 
--
sums(sumeet agrawal)
slg....@gmail.com

Blake Griffith

unread,
Jul 7, 2019, 9:57:38 PM7/7/19
to Chromium Extensions
My use case: I distribute an extension to multiple browsers. I manually build a zip file (many files inside the src directory are excluded so I cannot use the instructions here: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-extensions/XvddmJZvGIY). I then do Q&A testing with this built extension. Not being able to convert my own zip into a crx means I cannot test the thing I am actually uploading to the chrome web store to be released.
Message has been deleted

PhistucK

unread,
Jul 8, 2019, 2:33:23 AM7/8/19
to Blake Griffith, Chromium Extensions
Why can you not follow those instructions? Just add one more step - extract the ZIP to a temporary folder and then create CRX3 using that script.

PhistucK


--
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extens...@chromium.org.

Decklin / Deco

unread,
Jul 8, 2019, 1:54:14 PM7/8/19
to Blake Griffith, Chromium Extensions
This would be impossible irrespective of the CRX3 change. You can create a source CRX by simply packaging the source code into an extension using a generated private key - this has been the case for years. As long as you package the extension on a chrome build greater than version 64, it will iterate to the CRX format automatically.

--

Darren Govoni

unread,
Jul 8, 2019, 2:07:49 PM7/8/19
to Decklin / Deco, Blake Griffith, Chromium-extensions
Someone posted a python script to build a crx v3 extension on this list a while back when I was asking for it. 

Reply all
Reply to author
Forward
0 new messages