Skip to content

Releases: glide-browser/glide

0.1.53a

26 Oct 16:22
c29060a

Choose a tag to compare

Addons API

You can now install addons directly from the Glide config:

glide.addons.install(
  "https://addons.mozilla.org/firefox/downloads/file/4598854/ublock_origin-1.67.0.xpi",
);

This will install the uBlock Origin addon, if it isn't already installed. If you want to install the addon even if it's installed already, use glide.addons.install('...', { force: true }).

glide.addons.install() expects a URL for an XPI file, you can obtain the XPI URL from an addons.mozilla.org page by right clicking on "Add to Firefox", and selecting "Copy link".

Styles API

You can now easily inject custom CSS into the browser UI directly from the Glide config:

glide.styles.add(css`
  #TabsToolbar {
    visibility: collapse !important;
  }
`);

This particular example hides the horizontal native tabs toolbar, but you can customise essentialy anything in the browser UI with this method.

Note that prior to this release you could inject custom CSS yourself but it was slower and would be persisted between config reloads.

Old API
glide.autocmds.create("WindowLoaded", () => {
  document.head!.appendChild(DOM.create_element("style", {
    textContent: css`
      #TabsToolbar {
        visibility: collapse !important;
      }
    `,
  }));
});

Changes

0.1.52a

12 Oct 15:54
62d6251

Choose a tag to compare

  • Bumped Firefox from 144.0b8 to 144.0b9.
  • Fixed synthesizing special keys, e.g. glide.keys.send("<down>").
  • Fixed the font family for hints, it now falls back to monospace instead of serif.
  • Fixed locale fetching, you can now download locales other than en-US in the settings page.
  • Fixed incorrect "new update" notification under certain conditions.
  • Fixed passing arguments to custom excmds from the commandline.
  • Fixed some web extension method return types to indicate a Promise is returned.
  • Fixed tab commandline not always focusing the first tab.
  • Enabled loading unsigned extensions when the xpinstall.signatures.required pref is set.
  • Enabled WebAuthn on Linux.
  • Enabled access to missing Web Extension APIs, tabGroups, activityLog, geckoProfiler, and networkStatus.
    • N.B. these APIs haven't all been tested fully yet, so they may not work as expected. Prior to this release, you could not use them at all.
  • Added glide.tabs.query() as an alias to browser.tabs.query() for better discoverability.
    • Thank you @roceb for the contribution!
  • Added keymaps to the commandline UI, so you can easily identify what commands are mapped to.
  • Disabled the AI chat button in the context menu.

0.1.51a

03 Oct 08:34
a710ac4

Choose a tag to compare

Breaking changes

On Linux, the <C-l> and <C-h> mappings, to go backwards and forwards in history, have been changed to <A-l> and <A-h> respectively.

This change was made to prevent a conflict with the default <C-l> keymap in Firefox that focuses the address bar.

Changes

  • Bumped Firefox from 144.0b5 to 144.0b8.
  • Fixed keymap autocompletion for glide.keymaps.del().
  • Fixed bad handling of invalid focusin events.
  • Added <C-[> in insert, visual, and op-pending mode to switch back to normal mode.

0.1.50a

28 Sep 13:15
f6e7348

Choose a tag to compare

  • Added glide.fs.stat().
  • Added glide.env.get(), glide.env.set(), and glide.env.delete(). This is particularly useful for configuring your PATH on macOS.
  • Added some missing types to the API docs.
  • Bumped Firefox from 144.0b5 to 144.0b6.
  • Fixed mappings with shift and multiiple modifiers, e.g. cmd+shift+c now works.
  • Fixed the native messaging runtime path, previously the paths were the Firefox defaults now:
    • macOS system: /Library/Application Support/Glide Browser
    • macOS user: ~/Library/Application Support/Glide Browser
    • Linux system: /usr/lib64/glide-browser (or /usr/lib/glide-browser)
    • Linux user: ~/.glide-browser
  • Removed support for the browser API inside the hints content callbacks, e.g. glide.hints.show({ pick: () => ... }).
    This was the only place it was accessible and allowing access to the browser API from the content frame has security implications that need to be investigated further.

0.1.49a

25 Sep 09:48
b1a36d7

Choose a tag to compare

  • Fixed a case where dev tools autocomplete could stop working
  • Changed glide.ctx.url from a string to a URL
  • Bumped Firefox from 144.0b3 to 144.0b5

0.1.48a

21 Sep 19:59
1a79b58

Choose a tag to compare

  • Updated the recommended tsconfig to more accurately reflect reality
  • Added support for setting attributes using DOM.create_element()
  • Added glide.fs.write(path, contents)
  • Added window to the config sandbox
  • Cleaned up the document mirror in the config sandbox
    • <browser> and <scripts> elements are no longer included
    • Fixed race conditions when mutating the document
    • Added many missing elements

0.1.47a

20 Sep 15:53
f754f5a

Choose a tag to compare

  • Fixed a case where the browser toolbox devtools could crash
  • Fixed issues with certain functions not being callable in the config, e.g. setTimeout()
  • Prevented timers from being throttled, namely setTimeout(), setInterval() and requestIdleCallback()
  • Fixed requestAnimationFrame() never firing
  • Added glide.fs.exists(path)
  • Upated Firefox from 144.0b1 to 144.0b3

0.1.46a

19 Sep 21:23
175a194

Choose a tag to compare

chore: bump version

0.1.45a

17 Sep 13:21
e0e8c3f

Choose a tag to compare

This release fixes a regression with the document mirror causing a crash when multiple windows are opened.

0.1.44a

16 Sep 18:57
33c6c78

Choose a tag to compare

This release restructures how the config sandbox is evaluated. Previously, it was possible to access the internal Document and ChromeWindow that Firefox uses to render the browser UI itself.
This is useful for accessing DOM APIs, e.g. URL, and allowing you to modify the UI in any way you want, however it introduces security concerns as all of the Glide and Firefox internals can be accessed directly, effectively nullifying the sandbox.

Now, we create a hidden Window and a Document that is a bi-directional mirror of the internal browser UI Document. This lets you modify the Document however you'd like using standard DOM APIs while maintaining isolation from the internals.

Firefox has been bumped from 143.0b9 to 144.0b1, the Firefox release notes can be found here.