It seems that Chrome Store refuses to accept manifest 2, and FireFox does not understand manifest 3. That is, I can no longer create one extension ZIP file and upload to both Chrome Store and FireFox Store.
Is there a way to have both 2 and 3 versions in one manifest.json file at the same time?
No, a manifest file can only have one version defined.
If your extension works in both manifest versions, what you can do is have two manifest.json files (like manifest_v2.json and manifest_v3.json and then create two zip files, one using version 2 manifest for Firefox and one using version 3 manifest for Chrome. You do need to rename them to manifest.json before creating the zip though.
If you build manually, it's a bit of manual work to rename a file, create zip, rename it back, rename the other file and repeat. If you have some build tools included, you can automate that process.
Related
Firefox standard and beta version does not allow unsigned extensions, so I use Firefox developer edition and set xpinstall.signatures.required to false in about:config.
I download source from https://github.com/mdn/webextensions-examples and use my script to build xpi (after putting it to root directory of repo and copying my manifest-firefox.json as well).
For each extension, as you can see from the script, I copy it to a temp folder, modify manifest.json (remove chrome-only fields if any and add gecho for firefox) and zip all into one file.
However, when I tried to install them one by one, I failed to install all.
Every time I installed one, it would replace previous.
Steps:
Click Menu bar - Tools - Add-ons to open Add-ons Manager
Click Extensions and then gear on the right
Click Install Add-on From File and choose one under path/to/webextensions-examples/dist
Did I miss anything in my build script to cause this? Or is this as designed to only allow one unsigned extension?
I'm 4 years too late but for anyone that finds this question later this is due to having the same "id" for the multiple extensions if you're using "browser_specific_settings" in your manifest
When uploading my zip file using the Developer Dashboard, I'm getting the following error:
An error occurred: Failed to process your item.
Can not process the manifest file.,Can not process the message.json file.,Can not process the key.pem file.,Chrome Web Store system error, please try again later.
I've followed 3 different tutorials (2 on extensions, and 1 on uploading to the Developer Dashboard) that I found on creating an extension on Googles' site. None of them say to create a message.json so I didn't create one (not sure why its telling me it can't process it). There is also no key.pem file, as they said do not generate this file and don't include it - as it will be generated when you upload it.
It says try again later, but I've tried several weeks now with no luck.
Currently, I'm exploring if my zip file is generated "funny" from 7-zip. I'd use the built in windows zip once I get that working again - however it seems corrupted.
My manifest file is in the root folder, and and the extension works in developer mode on my chrome. I've quadruple checked that the JSON is valid as well.
The extension works great for me, but fails the upload process.
How do I get past this step of the process?
Make sure manifest.json is in the root of the zip archive (not inside any directory)
Use the standard deflate zipping method in 7-zip, not anything fancy like deflate64
The answer to this was:
In the 7-Zip settings, I was using the compression method Deflate64, I changed it to Deflate and it the zip file was accepted. Thanks to #wOxxOm
I probably wouldn't have had this problem but my windows built in zip is currently corrupted and used 7zip to make a zip file.
I get the .crx file of an extension name simulty in order to edit the source ( for personal use )
So i have follow all the steps :
get .crx
unzip .crx
Load in Google chrome extension
But when i try to load i have the same error " Cannot load extension with file or directory name _metadata "
There is a _metadata and a locales files in the directy and it seems that google chrome don't want to load it. Is there any way to take off the "" ... and load it ? I heard that its a google chrome bug...
Anybody find the solution ?
Or know any other way to edit the source of an chrome extension?
You can just delete the _metadata folder when loading an unpacked extension.
It contains cryptographic hashes of files to ensure they have not been modified. It is not expected to be present for an unpacked extension (it's automatically added by CWS when generating a crx), so just delete it.
I would also suggest editing the manifest to wipe update_url and key fields (if present), to completely dissociate with the original extension.
I'm trying to install a Chrome external extension using a visual studio setup project and following the instructions listed in http://code.google.com/chrome/extensions/external_extensions.html#registry, I did the following to add an external extension to Google chrome:
Packed the extension and moved the resulting .crx file to a folder C:\Hafez\Grid_Bootstrapper
I've added a registry sub key named fnfnbeppfinmnjnjhedifcfllpcfgeea under the following path: HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\Extensions\ with the next two values:
1.path with a value of "C:\Hafez\Grid_Bootstrapper\fnfnbeppfinmnjnjhedifcfllpcfgeea.crx" and
2.version with a value of "1.0.0.1"
which are, by the way, the exact values but unfortunately when I start Chrome the extension is not listed.
BTW, I'm doing this in a installer custom action and it writes the values exactly the way I want them.
I can't find what is wrong because I do the exact steps listed in the link.
May you discover what have I done wrong?
I need in Chrome extension these actions:
Download binary file to temp
Unzip it (it's clear .zip package)
Move files from unpacked directory, to directory of my extension
Delete temp files
I've been looking for similar what Firefox Scriptable XPCOM interfaces offer, https://developer.mozilla.org/en/XPCOM_Interface_Reference
Is there any simple way to do this, or I need to create the components myself in C/C++ and one of NPAPI, PPAPI, NSPR ?