Shared-Reality-Lab / IMAGE-browser

IMAGE project browser extensions & client-side code
Other
2 stars 0 forks source link

IMAGE-browser

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.

IMAGE project information

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

Set Up for Chrome Extension

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.

EARLY BETA: Safari Extension (desktop and iOS)

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.

License

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.