-
Notifications
You must be signed in to change notification settings - Fork 325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for chromium-based browsers #218
Comments
This may require some additional work due to incompatibilities between WebExtensions and Chrome APIs. "Make it work in Chromium" TODO list 🚧 👷🛑 Hard ErrorsThings that make it impossible to load WebExtension under Chromium or connect to IPFS API.
|
I just fixed ipfs-chrome-station, but it might take a while for fbaiodias/ipfs-chrome-station#15 to get merged, and the extension updated. |
This fixes Chromium incompatibility mentioned in #218
Following up ipfs/in-web-browsers#54 (comment), we want to have this WebExtension serving both. Is |
I remember there were multiple errors about unsupported manifest keys, eg. recently introduced This "write once, run everywhere" story provided by Mozilla does not pass reality check. I suspect we will end up with chunks of conditional code and dedicated manifest and build pipeline for each browser. That being said, we can simplify stuff by merging "pageAction" back into "browserActions". |
FYI I'll do my best in diagnosing / mitigating compatibility issues in |
I came across |
Firefox supported simplified syntax, but Chromium does not. Implements part of #218
the syntax defined for Chrome's version is more restrictive than that used by Firefox: - https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/version - https://developer.chrome.com/extensions/manifest/version Part of #218 effort
Only one of browser_action, page_action can be specified in Chrome Part of #218 effort
I am afraid extensionizer is not enough, as it is still callback-based. Firefox introduced promise-based syntax and that functionality for Chrome is provided by webextension-polyfill, which is safe to be enabled all the time. Update: I've added the polyfill and it should be possible to build via Browser button does not work yet, but that's a start. I also updated the list of known issues. |
This solves load error under Chromium Part of #218
Chromium does not support SVG [ticket below is 8 years old, I can't even..] https://bugs.chromium.org/p/chromium/issues/detail?id=29683 We use precomputed PNG versions instead. This fixes part of #218 effort
For some reason `js-ipfs-api` sends requests with "Origin: null" under Chrom which produces '403 - Forbidden' error. This workaround removes bogus header from API requests Part of #218 effort
Oh hey, look what the cat dragged in: I made some changes and So far I noticed 3 issues that need additional work (see "Soft Errors"), but basic functionality works (redirect, Quick Upload, copying public URL, pinning etc) |
Firefox supported simplified syntax, but Chromium does not. Implements part of #218
the syntax defined for Chrome's version is more restrictive than that used by Firefox: - https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/version - https://developer.chrome.com/extensions/manifest/version Part of #218 effort
Only one of browser_action, page_action can be specified in Chrome Part of #218 effort
This solves load error under Chromium Part of #218
Chromium does not support SVG [ticket below is 8 years old, I can't even..] https://bugs.chromium.org/p/chromium/issues/detail?id=29683 We use precomputed PNG versions instead. This fixes part of #218 effort
For some reason `js-ipfs-api` sends requests with "Origin: null" under Chrom which produces '403 - Forbidden' error. This workaround removes bogus header from API requests Part of #218 effort
This replaces alarm-based updates with message-based signalling based on `browser.runtime.connect` API Chrome does not support Alarm intervals smaller than one minute, so we will replace all of them with this new type of signalling. This is yet another piece of #218 (and #259) efforts. This commit also closes #243 by hiding broken actions in 'incognito' mode.
@lidel Is this published to the Chrome Web Store now? |
Not yet, but thanks for asking! I created #268 to track that. |
Because ipfs-chrome-extension and ipfs-chrome-station don't support ipfs>=0.4.5.
The text was updated successfully, but these errors were encountered: