Google Chrome Extension -- Declared icons in manifest.json won't load - google-chrome-extension

I'm building my second chrome extension, and can't get the icons to load in development mode; everything is still a puzzle piece in chrome. I have triple-checked the path and that they are each the correct size. Any ideas on why they won't load? Here is the manifest.json
manifest.json:
{
"manifest_version": 2,
"name": "Wishlist",
"short_name": "Add things to your wishlist.",
"version": "1.0",
"browser_action": {
"default_title": "Wishlist",
"default_icon": "icons/16x16.png"
},
"icons": {
"16": "icons/16x16.png",
"48": "icons/48x48.png",
"128": "icons/128x128.png"
}
}

Related

Chrome extension fails to load when I add icons

I've been learning how to make a Chrome extension and have been stuck on just adding an icon for a while now, I've copy pasted code that supposedly works but I keep getting this error:
Could not load icon 'icon16.png' specified in 'icons'.
Could not load manifest.
My code:
{
"manifest_version": 3,
"name": "extension",
"description": "test",
"version": "1.0",
"browser_action": {
"default_icon": "icon48.png"
},
"icons": {
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
},
"content_scripts": [
{
"js": [
"test.js"
],
"matches": [
"https://www.test.com/*"
]
}
]
}
I've triple checked that every image is in fact a PNG and is of the right size. I have a single directory with manifest.json, test.js, and all three images (as well as a.prettierrc file, although I doubt that has any impact).
If I remove the icons part of manifest.json the extension works perfectly.
The error about not being able to load the manifest is likely related to:
"browser_action": {
"default_icon": "icon48.png"
},
which is from Manifest Version 2. The "browser_action" field should be changed to:
"action": {
"default_icon": "icon48.png"
},
For further reference see here: Action API unification

How to persist data in memory after closing popup extension

I'm building a chrome extension, and I'd like to have some sensitive data stored in memory (not disk) while the user has their browser open. The data should persist in the chrome extension even if the user closes the extension popup and re-opens the popup.
How can I do this?
I believe this is possible because both Metamask and Bitwarden ask you for your password when you first open their extension after opening the browser. Then no matter how many times you close their extension and re-open it, the data persists, but I doubt that they are saving decrypted data to disk, so it must be kept in memory. I'd like to do the same, but whenever I try to save anything in the popup.html's JS file to memory, it never persists after closing the popup.
{
"manifest_version": 3,
"name": "TEST",
"version": "1.0.0",
"permissions": [
"storage",
"activeTab",
"cookies",
"tabs"
],
"action": {
"default_popup": "popup.html",
"default_title": "TEST",
"default_icon": {
"16": "./assets/images/icon16.png",
"19": "./assets/images/icon19.png",
"32": "./assets/images/icon32.png",
"38": "./assets/images/icon38.png",
"48": "./assets/images/icon48.png",
"128": "./assets/images/icon128.png"
}
},
"icons": {
"16": "./assets/images/icon16.png",
"19": "./assets/images/icon19.png",
"32": "./assets/images/icon32.png",
"38": "./assets/images/icon38.png",
"48": "./assets/images/icon48.png",
"128": "./assets/images/icon128.png"
},
"background": {
"service_worker": "service-worker-loader.js",
"type": "module"
}

Default Icons in manifest for Chrome Extension

I have this piece of code in my manifest:
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html",
"default_icon": {
"16": "images/16x16.png",
"48": "images/48x48.png",
"128": "images/128x128.png"
}
},
It was working fine until today and now I am getting a 'duplicate key' error.
I know there are two entries for default_icon -- one for the old way of declaring a single icon, and the new way for declaring for specific sizes -- however it was not causing an issue when uploading the new packages until now. Did something change?
If I remove the first declaration, what that cause any issues?
Update:
I'm now getting an error where I can upload the zip file now, but publishing fails with 'Internal Publish Error'. When I first upload the zip, I did get a warning 'Invalid Manifest Content' but no other details. All of this was working until recently. Here is my manifest:
{
"web_accessible_resources": [
"files/*",
"js/languages.json"
],
"name": "Workspace Manager",
"version": "0.962",
"manifest_version": 2,
"short_name": "Workspace Tab Manager extension.",
"description": "Tab Manager and Productivity Extension - save tabs as workspaces and revisit them in the future",
"icons": {
"16": "images/16x16.png",
"48": "images/48x48.png",
"128": "images/128x128.png"
},
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_icon": {
"16": "images/16x16.png",
"48": "images/48x48.png",
"128": "images/128x128.png"
},
"default_popup": "popup.html"
},
"permissions": [
"tabs",
"storage"
],
"content_security_policy": "script-src 'self' https://ajax.googleapis.com https://ssl.google-analytics.com https://www.googletagmanager.com; object-src 'self'"
}
It turns out that duplicate keys are no longer allowed. And to fix it, you not only need to delete one of the duplicates (as I did), but you need to unpublish your extension entirely and then republish.
It wasn't clear on what would happen when unpublishing. Essentially, you extension will disappear from the Webstore and when you republish, it takes longer than usual to review it. (it took about 2 days vs the normal couple hours). In that time it will say 'pending' but when it does get approved, everything in your store will be restored and it will be as though nothing happened.

How to remove the "read and change all your data..." warning for Chrome Extension?

I have created a Chrome extension and published it to the Chrome Web Store. I noticed with my initial version that when a user tried to install it they would get the warning that my extension could "read and change all your data on the websites you visit". I've changed and republished my extension so that I don't think that warning should be displayed, but it still gets displayed. Based on the information at https://developer.chrome.com/extensions/permission_warnings I don't think that message should be showing up. Below is what is in my manifest.json file. Any suggestions for how to make the warning go away?
{
"name": "Screen Recorder",
"description": "Record a video of your computer screen",
"version": "0.4",
"manifest_version": 2,
"icons": {
"16": "icon.png",
"128": "icon.png"
},
"background": {
"scripts": [
"background.js",
"ourrecorder.js"
]
},
"browser_action": {
"default_icon": "icon.png",
"default_popup": "receiver.html"
},
"permissions": [
"desktopCapture",
"tabCapture",
"notifications",
"unlimitedStorage"
]
}

Not able to see the thumbnail for my extensions in "chrome://settings/extensions" when I load a unpacked extension

I am loading an unpacked extension but I am unable to see any thumbnails for my extension under chrome://settings/extensions?
Whether I should add anything in manifest file?
Here is my manifest file..
{
"name": "a1",
"version": "1.0",
"description": "a1",
"background_page": "background.html",
"browser_action": {
"default_icon": "icon.png",
"popup": "popup.html"
}
}
browser_action.default_icon is only the icon for the button next to the omnibar. If you want an icon in chrome://settings/extensions you need to set the icon value.

Resources