Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extension installed from Chrome Webstore throws error "Package is invalid. Details: 'Cannot load extension with file or directory name _metadata...'

When a CRX is added to the Chrome web store, Google adds a directory _metadata to the crx. Older versions of Chrome do not know about this directory (tested on Chrome 27) and throw this error:

Package is invalid. Details: 'Cannot load extension with file or directory name
_metadata. Filenames starting with "_" are reserved for use by the system.'.

You can see this error if you try to install this extension on an older version of Chrome: https://chrome.google.com/webstore/detail/allcast-receiver/hjbljnpdahefgnopeohlaeohgkiidnoe

A good explanation: https://groups.google.com/a/chromium.org/d/msg/chromium-apps/huDqSeaQx3Q/Z5GOMxA7lQIJ

Is there a workaround for this? This makes it impossible to support older versions of Chrome.

like image 987
Don Rhummy Avatar asked May 28 '14 17:05

Don Rhummy


People also ask

How do I fix Google Chrome failed to load extension?

In the task manager, locate the extension and tap End Process. This will disable the extension from the browser. Now, go to More Tools > Extensions and give the extension a fresh start by tapping on Reload. Even after the fixes above, if the extension doesn't load correctly, uninstall it and reinstall it.

Why did my Chrome extension get rejected?

Reasons for Chrome Extension RejectionDo not post repetitive content. Do not attempt to change the placement of any Product in the store, or manipulate any Product ratings or reviews, by unauthorized means, such as fraudulent installs, paid or fake reviews or ratings, or offering incentives to rate Products.


2 Answers

You can try to unzip the CRX (change the suffix name to ".zip" if needed) and then in chrome: Settings -> Extensions check "Developer mode", choose "load unpacked extension.." and select the extracted folder.

P.S. I had to rename the folders starting with "_" (underscore) and remove the line "default_locale":"en", from the manifest JSON in order for that to work

like image 119
Adam l Avatar answered Oct 26 '22 00:10

Adam l


You -as an extension developer- cannot work-around this bug, because the directory is added by the Chrome Web Store (CWS). You could work-around the bug by not using the CWS to distribute the extension, but then the extension cannot be used by the majority of Chrome users, because Google has actively tried to stop users from getting extensions from outside the CWS.

The CWS team are the only ones who can fix the bug. They should serve crx files without a _metadata directory if the user agent does not support the directory (Chrome 30-). This bug is being tracked on https://code.google.com/p/chromium/issues/detail?id=377278. So far, the response is:

We can't fix old versions of Chrome. Webstore side tracked at b/15176392, but extending support back to Chrome 30 is unlikely.

Star the issue to get notified of updates and to signal that you really want the bug to be fixed. If enough users/developers complain, then Google might fix the bug.

like image 24
Rob W Avatar answered Oct 25 '22 22:10

Rob W