IMAGE browser extensions & client-side code
To install the latest development version of the extension you'll need to follow these instructions, using this packaged extension file.
Please see https://image.a11y.mcgill.ca for general information about the project.
If you wish to contribute to the project, the following wiki page is a good starting point, including for those on the IMAGE project team: https://github.com/Shared-Reality-Lab/IMAGE-server/wiki
Clone this repository. Note that the schemas are a submodule, so you need to either get them in the initial clone, e.g.,
git clone --recurse-submodules git@github.com:Shared-Reality-Lab/IMAGE-browser.git
or else get them after you've done the initial clone (while in the root of the cloned repo on your local machine):
git submodule init
git submodule update
Install the dependencies using NPM. Ensure you have npm v7 or later installed, ideally by using nvm!
npm i
This includes the web-ext tool for running the tool in Firefox and Chrome/Chromium and building for firefox. As the project is written in Typescript, we do use Parcel to resolve packages and convert to JavaScript first. An automatically updating parcel build can be triggered with
npm start
from the command line. To use web-ext to start, from the root of the project run
npx web-ext run -s build
to open it in Firefox.
A version ready to be bundled for distribution as a browser extension can be created using the
npm run pack
script. A version that directly creates an unsigned Firefox package can be called with
npm run build:ff
A signed package can be made with Chromium by running
npm run build:chromium
where the environment variable PATH_TO_CHROME_KEY
points to the extension's key.
It should also be possible to just load a zipped version of the build
directory generated by npm run pack
in any browser supporting WebExtensions, but tools might do other things too.
The Chrome extension can be converted into an extension that will run in desktop Safari, or (with a separate conversion) in Safari on iOS. It is not currently possible to generate a signed extension that is installable on iOS, or deployable to the App Store, due to restrictions on using background workers on iPhones. However, it is possible to run and test the iOS extension by installing it directly onto an iPhone via Xcode. Details are available in Safari.md.
IMAGE project components (e.g., IMAGE browser extension and IMAGE Services), henceforth "Our Software" are licensed under GNU GPL3 (https://www.gnu.org/licenses/gpl-3.0.en.html) or AGPLv3 terms (https://www.gnu.org/licenses/agpl-3.0.txt) or later, as indicated in specific repositories or files on the project github located at https://github.com/Shared-Reality-Lab.
If you incorporate IMAGE code into your own project, but do not want to release your changes and additions consistent with the open source terms under which the IMAGE code is licensed, you may contact us to obtain an alternative license. For all inquiries, please contact us at image@cim.mcgill.ca.