ArcaneNibble/awawausb
ArcaneNibble/awawausbWebUSB for fopses
From the README
WebUSB extension for Firefox
This extension adds WebUSB functionality to Firefox by making use of native messaging.
In order to use this, you need to both install the extension in your browser and install a small program (separate from the browser) on your computer. This extra program is called the "native stub".
Feature support
This extension is supposed to be compatible with Chrome's implementation. Please report any differences you encounter that result in software not working.
However, unlike Chrome, this API is only exposed on the main page and is not available in Web Workers.
Android cannot be supported, because it does not have native messaging capabilities.
Installation instructions
You can install this extension by downloading binaries from the GitHub "Releases" section (in the right-hand column), or you can build from source.
Installing the extension
To install a signed version of the extension, download the .xpi file and open it in Firefox.
To load a testing version of the extension in Firefox Developer Edition, open about:debugging, select "This Firefox" in the left-hand list, then "Load Temporary Add-on…", and then browse to the manifest.json inside the extension/ directory.
Installing the native stub
If you are using prebuilt binaries, unzip all of the files and then run either ./install.sh (on Linux or macOS) or install.bat (on Windows). These installers will try to automatically copy the appropriate files into a sensible location and then configure a native manifest so that the browser can find it.
Prebuilt binaries are available for the following platforms:
- macOS x86_64 and ARM64
- Linux x86_64 and aarch64
- Windows AMD64 and ARM64
If you are not using prebuilt binaries, see below.
"Unusual" configurations
The default installer is known to have problems with uncommon configurations such as:
- sharing a *nix home directory across different computers with different CPU architectures
- Windows roaming user profiles across computers with different CPU architectures
The root cause of this is because the "native manifest" mechanism was not designed well to take these situations into account (for example, through its use of absolute paths). If you are in one of these situations, you will unfortunately need to invent an ad-hoc workaround.
System requirements
This native stub tries to avoid doing anything too "exciting", but, due to development and testing resource constraints, it focuses on "reasonably modern" desktop platforms.
macOS
macOS 10.15 or later is required, matching Firefox's system requirements. However, older systems are not very well-tested. Expect macOS 12 to be a much more reasonable baseline.
Windows
Windows 10 or later is required, due to the requirements of the Rust platform support. This also matches Firefox system requirements. Backporting to Windows 8/8.1 might theoretically be possible, but any older is