webextension/

directory
v0.38.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2022 License: CC0-1.0

README

Installation guide for the meek-http-helper WebExtension.

The WebExtension is made of two parts: the extension and the native
application. The extension itself is JavaScript, runs in the browser,
and is responsible for making HTTP requests as instructed. The native
application runs as a subprocess of the browser; its job is to open a
localhost socket and act as an intermediary between the extension and
meek-client, because the extension cannot open a socket by itself.

These instructions require Firefox 65.

== Native component ==

1. Compile the native application.
       cd native && go build

2. Edit native/meek.http.helper.json and set the "path" field to the
   path to the native application.
       "path": "/path/to/meek/webextension/native/native",
   More information:
       https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging#App_manifest

3. Copy the edited native/meek.http.helper.json file to the
   OS-appropriate location.
       # macOS
       mkdir -p ~/"Library/Application Support/Mozilla/NativeMessagingHosts/"
       cp native/meek.http.helper.json ~/"Library/Application Support/Mozilla/NativeMessagingHosts/"
       # other Unix
       mkdir -p ~/.mozilla/native-messaging-hosts/
       cp native/meek.http.helper.json ~/.mozilla/native-messaging-hosts/
       # Windows
       Open regedit.exe and create a new registry key:
         HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts\meek.http.helper
       Set the default value to the path to meek.http.helper.json:
         C:\path\to\meek\webextension\native\meek.http.helper.json
   The meek.http.helper.json file is called the "host manifest" or "app
   manifest" and it tells the browser where to find the native part of
   the WebExtension. More information:
       https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_manifests#Manifest_location

== Browser component ==

4. Run Firefox in a terminal so you can see its stdout. In Firefox, go
   to about:config and set
       browser.dom.window.dump.enabled=true
   This enables the extension to write to stdout. See firefox-user.js
   for other prefs you may want to set.

5. In Firefox, go to about:debugging and click "Load Temporary
   Add-on...". Find browser/manifest.json and click Open.
   More information:
       https://developer.mozilla.org/en-US/docs/Tools/about:debugging#Loading_a_temporary_add-on
   In the terminal, you should see a line like this, with a random port
   number in place of XXXX:
       meek-http-helper: listen 127.0.0.1:XXXX

Now the extension is running and ready to start making requests. You can
run "meek-client --helper", passing it the correct port number XXXX:
	UseBridges 1
	ClientTransportPlugin meek exec ./meek-client --helper 127.0.0.1:XXXX --log meek-client.log
	Bridge meek 0.0.2.0:1 url=https://meek.bamsoftware.com/

To debug, open the browser console with Ctrl+Shift+J.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL