In the Chrome extensions documentation page for manifest.json, there is an undocumented setting called input_components. What does it do?
input_components is part of the (terribly documented) chrome.input.ime API.
If you want to know how it works, see this example and/or read Chromium's source code.
Related
Background
I've been using the crx-hotreload package to auto-reload my chrome extensions during development because it's annoying to have to click the refresh button on the Extensions page every time you make a change; however, this package doesn't work with MV3 because it uses the chrome.runtime.getPackageDirectoryEntry method, which seems to have been removed from chrome.runtime in MV3. I can't find documentation to confirm that it was removed, but it's not there when I try to use it.
Questions
Does anyone know how to get access to all the files in the extension directory in Chrome Extension Manifest Version 3?
Or generally, is there a better way that I can hot-reload my chrome extensions during development that would work for MV3?
This is one of many things based on DOM capabilities of background pages that are removed from ManifestV3 because service workers don't have DOM. For example, getPackageDirectoryEntry is using the old nonstandard FileSystem API in its returned value.
As to why, apparently the switch to service workers simplifies the internal source code in Chromium, even if it doesn't provide any real improvements for extension authors or users.
At this point all you can do is present a convincing use case and ask Chromium developers via https://crbug.com to implement an alternative API.
Everybody can download chrome extension, edit and reupload, how i can protect my chrome extension and what i need to do if i see someone reupload my chrome extension?
You can't bulletproof-protect it. The only thing you can reasonably guarantee to be unique is the extension ID for published items - but any checks you would do against it can be circumvented.
It's not a technical problem. It's a social/legal problem.
If you see someone doing it, you should use the Report Abuse function of the Web Store.
What other does is to load the "actual" code of their extension remotely (via CDN)
The code that is packaged with chrome extension just act as loader or their "real" extension code.
See Streak's InboxSDK (sdk to build chrome extensions for gmail). It uses the same concept. https://www.inboxsdk.com/docs/
I'm looking to offer the user (inside my Chrome Extension) the option to change their Omnibox default search engine.
Sadly, I've been unable to find any documentation on how to do something like this. Has anyone does this before successfully?
Actually with new versions of chrome it's possible through chrome API via settings_override section. But for now it's working only on windows.
Not possible, sadly. See this bug filed in Chromium
I would like to know if it's possible to develop an extension that allows to open a link with another browser : If in Chrome I click on a link that is configured in such extension, it opens FF or IE with this link.
I didn't find any extension (except extension that have a frame in a chrome tab), so does that mean that there is a technical limitation to do that ?
Best regards
I did something for FF what could be modified to do just that.
I have used the ability to execute shell commands from an extension, and configured the call to launch a 3rd party application.
Look for examples on nsIProcess
In chrome you can use the NPAPI plugins: http://code.google.com/chrome/extensions/npapi.html
Unfortunately, I think that kms is correct in saying that you cannot execute native code in a Chrome Extension, and must therefore pair your extension with an NPAPI Plugin and have them talk to one another. It was one of the most difficult programming tasks I've ever done, although the NPAPI Plugin was made easier by basing it on FireBreath, so at least I didn't need to write very much C++.
UPDATE: Since 2014 or so, Native Messaging is included in Chrome's Web Extensions API and, mercifully, NPAPI is gone.
I would like to use Chrome's default favicons.
For example (you can simply open them in Chrome):
chrome://theme/IDR_HISTORY_FAVICON
chrome://theme/IDR_EXTENSIONS_FAVICON
chrome://theme/IDR_SETTINGS_FAVICON
chrome://theme/IDR_PRODUCT_LOGO_16
When I used it as an image source nothing happened. Maybe Chrome blocked the access to the icons or this was not the proper way to use the icons. I tried to use "chrome://favicon/", but it didn't work with Extensions and Settings (strange, but it worked with History).
How can I use the built-in favicons as an image?
I would be also grateful if you could get me a full list of the Chrome's favicons, it must be in Chromium's source code, but I have no idea where to look.
(I'm using Chrome 19.0.1084.52)