diff --git a/README.md b/README.md index c3a4916e..c817d957 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ would suggest that you upgrade to a browser that supports Service Workers (Chrom ### Officially supported platforms - Mozilla Firefox >=56 (as an extension): [Mozilla Add-ons Store](https://addons.mozilla.org/fr/firefox/addon/kiwix-offline/) - + Firefox 52-56 and ESR version 58: Limited support (jQuery mode only) + + Firefox 52-56 and ESR version 58: Limited support (Safe mode only) - Chromium / Chrome / Edge >= 88 (as a Manifest V3 extension): + Google Chrome >=88: [Chrome Web Store](https://chrome.google.com/webstore/detail/kiwix/donaljnlmapmngakoipdmehbfcioahhk) + Microsoft Edge >=88: [Edge Add-ons Store](https://microsoftedge.microsoft.com/addons/detail/kiwix/jlepddlenlljlnnhjinfaciabanbnjbp) @@ -79,8 +79,8 @@ These platforms/browsers are deprecated. We still partially test against them, a - Firefox OS >=1.2: needs to be installed manually on the device with WebIDE - Microsoft Edge Legacy >=17: no extension available, but bookmark https://browser-extension.kiwix.org or https://pwa.kiwix.org -- Microsoft Edge Legacy 15-16: needs to run a bundled version of the source code in jQuery mode only -- Microsoft Internet Explorer 11: needs to run a bundled version of the source code in jQuery mode only +- Microsoft Edge Legacy 15-16: needs to run a bundled version of the source code in Safe mode only +- Microsoft Internet Explorer 11: needs to run a bundled version of the source code in Safe mode only **_You can build a bundled version by running `npm install` and `npm run build` in the root directory of this repo._** Alternatively, a bundled version is served as a web app for testing from https://kiwix.github.io/kiwix-js/dist/ (also available on the `gh-pages` branch of this repo, under `/dist`). @@ -114,15 +114,18 @@ for security reasons. In both cases we offer a functional workaround (an offline - "ServiceWorkerLocal" mode is a restricted ServiceWorker mode that is available only in Chromium extensions running fully locally. Chromium extensions running locally block (by design) a lot of dynamic content such as inline JavaScript and `eval`, which means this mode won't work with some modern dynamic content, and in particular, it won't work with Zimit-based archives (if you open one of these in this mode, you -will be thrown back to JQuery mode in order to view static content). However, this mode is useful if you cannot access the offline-first PWA, +will be thrown back to Safe mode in order to view static content). However, this mode is useful if you cannot access the offline-first PWA, and should work with most official Kiwix ZIM archives; -- "JQuery" mode (deprecated) parses the DOM to find the HTML tags of the dependencies and modifies them to point to content we extract from the ZIM. -This mode is compatible with any browser, but it cannot run JavaScript inside the ZIM file, so ZIMs with dynamic content do not work well (if at all). -If you open a dynamic (including Zimit) archive in this mode (or if you are thrown into the mode due to another incompatibility), then we will do our -best to display static content, but much functionality is likely to be broken. However, Mediawiki-based content (e.g. Wikipedia) works fine in this mode. +- "Safe" mode prevents running attached scripts in the iframe, and so is useful for checking the contents of a ZIM before deciding it is safe +to run. This mode also works in browsers that do not support Service Workers. It parses the DOM to find the HTML tags of the dependencies and +modifies them to point to content we extract from the ZIM. This mode is compatible with any browser, but becuase it cannot run JavaScript +inside the ZIM file, does not work well (if at all) with ZIMs that depend on dynamic content. If you open a dynamic (including Zimit) archive +in this mode (or if you are thrown into the mode due to another incompatibility), then we will do our best to display static content, but much +functionality is likely to be broken. However, Mediawiki-based content (e.g. Wikipedia) works fine in this mode. -You can switch between these content injection modes in Configuration, but if your browser supports ServiceWorker mode as an offline-first PWA, you are -strongly advised to remain in this mode. +You can switch between these content injection modes in Configuration, but if your browser supports ServiceWorker mode as an offline-first PWA, +you are strongly advised to remain in this mode (unless you wish to check the safety of a ZIM before running it -- the UI will ask you if you +wish to do this when you first open a new ZIM). ### File access and other limitations