]> git.gir.st - VimFx.git/log
VimFx.git
11 days agoVimFx v0.27.1 master v0.27.1
girst [Sat, 13 Apr 2024 10:02:29 +0000 (12:02 +0200)]
VimFx v0.27.1

11 days agofix 'H', 'L', 't', 'T', 'r', 'R', 's', 'gh' in mozilla126
girst [Sun, 7 Apr 2024 17:57:55 +0000 (19:57 +0200)]
fix 'H', 'L', 't', 'T', 'r', 'R', 's', 'gh' in mozilla126

these were moved to a utility class and converted from plain functions
to class methods. because BrowserCommands.reload*() calls
this.reloadWithFlags(...), we can't use (a or b)() as that clobbers the
scope of `this`. that could be worked around like so, but that's horrid:

  (vim.window.BrowserCommands?.reload.bind(vim.window.BrowserCommands) or vim.window.BrowserReload)()

regressed-by: https://bugzilla.mozilla.org/show_bug.cgi?id=1880914

5 weeks agoVimFx v0.27.0 v0.27.0
girst [Sat, 16 Mar 2024 14:55:41 +0000 (15:55 +0100)]
VimFx v0.27.0

5 weeks agofix linting error
girst [Sat, 16 Mar 2024 14:41:42 +0000 (15:41 +0100)]
fix linting error

..and smuggle an updated comment in with that.

6 weeks agoupdate external documentation hyperlinks
girst [Fri, 8 Mar 2024 15:07:16 +0000 (16:07 +0100)]
update external documentation hyperlinks

sadly, a lot of interesting stuff has just evaporated.

* Browser is no a custom element (MozBrowser)
  https://searchfox.org/mozilla-central/source/toolkit/content/widgets/browser-custom-element.js
* Services.jsm is now built into the C++ core
  https://bugzilla.mozilla.org/show_bug.cgi?id=1464542

6 weeks agopopulate more data in contentAreaClick
girst [Sun, 25 Feb 2024 15:14:49 +0000 (16:14 +0100)]
populate more data in contentAreaClick

Bug 1800149 introduced ClickHandlerParent.fillInClickEvent() which we
just inline. Previously, mozilla passed these params from the content
process, which could be a problem if the content process was compromised

Note that this code does not work with mozilla68 because
window.browsingContext was only introduced afterwards.

Further, for documentation:
* until mozilla110, isContentWindowPrivate was calculated differently:
  https://hg.mozilla.org/mozilla-central/rev/a868f954be08#l1.51
* frameID used to use the same code as frameOuterWindowID in <=fx110:
  WebNavigationFrames.getFrameId(window.document.defaultView)

7 weeks agoimprove contentAreaClick
girst [Sun, 25 Feb 2024 14:28:58 +0000 (15:28 +0100)]
improve contentAreaClick

This adds a few missing options used by BrowserUtils.whereToOpenLink, as
well as finally passing CSP and ReferrerInfo. Unlike Mozilla, we call
contentAreaClick directly from the parent process (they from
ClickHandlerChild), so we don't need to serialize/deserialize these
objects. However, they get CSP from event.originalTarget.ownerDocument
and try to init ReferrerInfo from initWithNode(event.composedTarget),
neither of which we have access to from the parent process.

Note that referrerInfo.initWithDocument() was introduced with mozilla69:
https://hg.mozilla.org/mozilla-central/rev/b5df2e6d8478cb4aea88d109259714ca2772b6cd#l1.29

7 weeks agoremove workarounds for legacy browsers
girst [Sun, 3 Mar 2024 13:18:16 +0000 (14:18 +0100)]
remove workarounds for legacy browsers

7 weeks agoport to ESMs and set minimum firefox version to 115
girst [Sun, 3 Mar 2024 13:11:26 +0000 (14:11 +0100)]
port to ESMs and set minimum firefox version to 115

the last JSM we use, CustomizableUI, was ported to an ESM in mozilla115:
https://hg.mozilla.org/mozilla-central/rev/e283f1653fee034bbe37c839c70d818173500f2b

8 weeks agodisplay documentation URL in browser console warnings
girst [Sun, 25 Feb 2024 11:48:21 +0000 (12:48 +0100)]
display documentation URL in browser console warnings

now that we have easy access to it :^)

8 weeks agostop relying on AddonManager.jsm for retrieving homepageURL
girst [Sun, 25 Feb 2024 11:36:49 +0000 (12:36 +0100)]
stop relying on AddonManager.jsm for retrieving homepageURL

this was always brittle (e.g. restarting the browser with the options
page open would try to access homepageURL before it was available/loaded
from async).

7 months agodocument BFcache workaround, webIsolationStrat bug
girst [Tue, 29 Aug 2023 18:14:20 +0000 (20:14 +0200)]
document BFcache workaround, webIsolationStrat bug

7 months ago(half/full) page scrolling: don't take position:absolute headers into account
girst [Tue, 29 Aug 2023 17:04:12 +0000 (19:04 +0200)]
(half/full) page scrolling: don't take position:absolute headers into account

Github's new code view[1] places each line of code visible on screen, as
well as some above and below, as a position:absolute element (within a
position:relative parent). Our code did not check whether such an
element is absolute w.r.t the current scrolling viewport or some other
element and would horribly miscalculate the amount to scroll: It would
take all off-screen position:absolute elements and add their heights,
then subtract that from the amount to scroll; even turning the scoll
amount negative!

Further,
* medium[.]com does not appear to use any footer any more, and
* the website mentioned in #698, inbound[.]org no longer resolves.

The referenced Firefox implementation doesn't check position:absolute
elements at all. As an actual improvement, Firefox now actually checks
for position:sticky elements, but only when they are 'stuck' (and
therefore behaving like position:fixed)[2]. They use some Gecko
internals, but this could be implemented in VimFx using something along
the lines of this:

    isStuck = (elem) => elem.getBoundingClientRect().top <= parseInt(getComputedStyle(elem).top)

1: https://github.blog/2023-06-21-crafting-a-better-faster-code-view/
2: https://hg.mozilla.org/mozilla-central/rev/263936aecc1d

9 months agoVimFx v0.26.4 v0.26.4
girst [Fri, 14 Jul 2023 11:35:01 +0000 (13:35 +0200)]
VimFx v0.26.4

9 months agouse backwards compatible way to load Services.jsm if required
girst [Fri, 14 Jul 2023 11:26:55 +0000 (13:26 +0200)]
use backwards compatible way to load Services.jsm if required

regressed-by: https://bugzilla.mozilla.org/show_bug.cgi?id=1780695
see-also: https://hg.mozilla.org/mozilla-central/rev/911d540fce6f

9 months agoVimFx v0.26.3 v0.26.3
girst [Sun, 2 Jul 2023 09:28:05 +0000 (11:28 +0200)]
VimFx v0.26.3

9 months agofix input field detection on mozilla116
girst [Sat, 1 Jul 2023 10:19:36 +0000 (12:19 +0200)]
fix input field detection on mozilla116

regressed-by: https://bugzil.la/1522052

10 months agoVimFx v0.26.2 v0.26.2
girst [Fri, 9 Jun 2023 17:01:24 +0000 (19:01 +0200)]
VimFx v0.26.2

10 months agopublish annotated commits
girst [Fri, 9 Jun 2023 16:58:49 +0000 (18:58 +0200)]
publish annotated commits

10 months agofix sandbox detection
girst [Fri, 9 Jun 2023 14:10:45 +0000 (16:10 +0200)]
fix sandbox detection

this was backwads. filesystem reads are blocked on level 3 or above.

also renaming this function to better capture what it does (returns true
if sandbox likely prevents config file access).

see also: https://wiki.mozilla.org/Security/Sandbox#Linux
https://searchfox.org/mozilla-central/search?q=security.sandbox.content.level&path=browser%2Fapp%2Fprofile%2Ffirefox.js

10 months agofix loading config files under windows
girst [Fri, 9 Jun 2023 13:35:27 +0000 (15:35 +0200)]
fix loading config files under windows

windows style paths (backslashes, drive letters) were not handled
properly, resulting in NS_ERROR_FILE_UNRECOGNIZED_PATH.

10 months agoVimFx v0.26.1 v0.26.1
girst [Mon, 5 Jun 2023 16:54:08 +0000 (18:54 +0200)]
VimFx v0.26.1

10 months agoRevert "remove compatibility shims for firefox <= 80"
girst [Mon, 5 Jun 2023 16:33:56 +0000 (18:33 +0200)]
Revert "remove compatibility shims for firefox <= 80"

This reverts commit ae0fbd54d0d8655947835e8d0e04f2ec7eae8960.

10 months agoPathUtils not available in parent process
girst [Mon, 5 Jun 2023 16:30:02 +0000 (18:30 +0200)]
PathUtils not available in parent process

this allows us to revert to setting minimalVersion to 68; compat shims
will be reinstated in the next commit.

https://searchfox.org/mozilla-central/rev/346a76bee7dc0e60f8f2ae9690785e818bd05cec/toolkit/modules/tests/xpcshell/test_BrowserUtils_urlFormatting.js#131

10 months agoVimFx v0.26.0 v0.26.0
girst [Sat, 3 Jun 2023 15:33:35 +0000 (17:33 +0200)]
VimFx v0.26.0

10 months agoPort Bug 1538028 to VimFx' contentAreaClick()
girst [Sat, 3 Jun 2023 15:07:05 +0000 (17:07 +0200)]
Port Bug 1538028 to VimFx' contentAreaClick()

introduced in mozilla-central 99eeb925a1ab48725345223eda657430d623078b.

at this time Bug 1538028 is not publicly accessible. it seems to be
related to 'session history in parent' and schema validation.

10 months agofix utils.isInShadowRoot
girst [Sat, 3 Jun 2023 13:36:23 +0000 (15:36 +0200)]
fix utils.isInShadowRoot

At some point before firefox 84, the global `ShadowRoot` object stopped
being === to the ShadowRoot returned by utils.getDocument. this caused
following links to not work because the special code paths for elements
within shadow roots was not taken any longer.

The check whether ShadowRoot is defined can be safely dropped, since
even though ChromeWindow doesn't export ShadowRoot itself, accessing it
through element.ownerGlobal still works.

10 months agoremove compatibility shims for firefox <= 80
girst [Sat, 3 Jun 2023 12:18:38 +0000 (14:18 +0200)]
remove compatibility shims for firefox <= 80

these versions are not supported any more.

11 months agoPort osfile.jsm usage to IOUtils
girst [Sun, 14 May 2023 11:33:57 +0000 (13:33 +0200)]
Port osfile.jsm usage to IOUtils

Note that this raises the minimum supported Firefox version to 84
(PathUtils implemented in bugzil.la/1671035).

see also: bugzil.la/1776480
https://hg.mozilla.org/mozilla-central/diff/b9ffe29caab3d7d3f62044300610f8efa0f8e934/dom/base/ContentAreaDropListener.jsm
https://hg.mozilla.org/mozilla-central/diff/29a5e2a74be72d4c6a7b41e0d1879aca3de1263f/toolkit/components/printing/content/printUtils.js

17 months agoVimFx v0.25.0 v0.25.0
girst [Fri, 11 Nov 2022 14:17:24 +0000 (15:17 +0100)]
VimFx v0.25.0

17 months agofix installation on localized/l10n versions of firefox
girst [Fri, 11 Nov 2022 13:56:23 +0000 (14:56 +0100)]
fix installation on localized/l10n versions of firefox

resource://gre/modules/addons/XPIInstall.jsm tries to get the Addon's
name in loadManifest(). On localized versions supported by VimFx, this
is read from install.rdf's <em:localized> section. We assumed that when
this block does not include an <em:name> element, that it would use the
one from the non-localized section. That does not seem to have been
true, ever. Even l10n-Firefox 52 balks here (using 0.21.0 and 0.22.2),
as well as i10n-Firefox 68.

fixes: https://github.com/akhodakivskiy/VimFx/issues/982

18 months agoPort Bug 1738694 to VimFx' contentAreaClick()
girst [Wed, 12 Oct 2022 17:25:59 +0000 (19:25 +0200)]
Port Bug 1738694 to VimFx' contentAreaClick()

introduced in mozilla-central c8109d2173855306cd9259468d56bc9924f5aaff.

Not implementing globalHistoryOptions.triggeringSponsoredURL from
Bugs 1784242 and 1776609 (8e973ab39108dbc319da9eba52af2086852e820b and
8c85026ef0f1c30027c1e7a1202df4b8fb879d11), since that seems to only
matter for click tracking (!) of adverts (!!) on the default home page.

20 months agofix 'eb'
girst [Fri, 12 Aug 2022 20:55:39 +0000 (22:55 +0200)]
fix 'eb'

even though Bug 1415483 suggests that calling importGlobalProperties is
no longer needed for Element, we run into a ReferenceError unless we do
call it. Even stranger, executing this in the Browser Sandbox (where
Element is already defined) causes a NS_ERROR_NOT_AVAILABLE exception.

This commit partially reverts db9a2c08735d50a4f27f9f6d597680ea29a940fc.

23 months agoVimFx v0.24.7 v0.24.7
girst [Mon, 16 May 2022 13:12:22 +0000 (15:12 +0200)]
VimFx v0.24.7

23 months agoremove legacy code paths from isElementInstance()
girst [Sat, 23 Apr 2022 13:07:33 +0000 (15:07 +0200)]
remove legacy code paths from isElementInstance()

- nsIDOMElement was removed in mozilla61 in Bug 1455674
- call to importGlobalProperties was made unnecessary in mozilla65 in
  Bug 1489301 part 4 (see also: Bug 1501127)

23 months agomove from deprecated Cu.import to ChromeUtils.import
girst [Sat, 23 Apr 2022 11:58:43 +0000 (13:58 +0200)]
move from deprecated Cu.import to ChromeUtils.import

In most cases, this was a drop-in replacement, but in bootstrap.coffee,
we used the side effect of polluting the global namespace as a handy way
to inject the `Services` object into the user's config.js file.

As a bonus, the codebase has been rid of an inconsistency between
Components.utils.import() and its shorthand Cu.import(), since both are
now gone. We also use the destructuring assignment consistently now.

Both config.js and frame.js were checked to still have the same exposed
API (mainly concerned with Services and console, since that was removed
from bootstrap.coffee).

see also: Bug 1765167

23 months agoPort Bug 1678965 to VimFx' ContentAreaClick()
girst [Fri, 28 Jan 2022 14:05:56 +0000 (15:05 +0100)]
Port Bug 1678965 to VimFx' ContentAreaClick()

23 months agoMove contentAreaClick() to utils
girst [Fri, 28 Jan 2022 14:02:41 +0000 (15:02 +0100)]
Move contentAreaClick() to utils

We use this opportunity to rename json to data, as per
https://hg.mozilla.org/mozilla-central/rev/65905c6fcf34cd35ed433da3076eb8056b5d1a63
Note that we keep passing in the browser object, though.

23 months agoupdate support for user contexts (containers)
Alex Nguyen [Sun, 19 Sep 2021 03:21:49 +0000 (13:21 +1000)]
update support for user contexts (containers)

This change was made to fix issues with following links via firefox
containers.
If old tab was in a container, new tab would be created without one.
The usercontextid attribute was found via debugging set up and exploring
for properties that correspond to the current container.

2 years agoVimFx v0.24.6 v0.24.6
girst [Fri, 28 Jan 2022 10:45:39 +0000 (11:45 +0100)]
VimFx v0.24.6

2 years agofix 'gX' menupopup
girst [Fri, 28 Jan 2022 10:28:42 +0000 (11:28 +0100)]
fix 'gX' menupopup

In Firefox 69, browser.xul was switched to XHTML, so XUL elements must
be created with createXULElement instead now.

mozregression result: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=29bdbbe89264b91d1bd4205c45536c9222a8d6ee&tochange=257f2c96cef502a1d674df56c8e39d76d8ed4d89
Likely regressed by: https://bugzil.la/1534407
See also: https://bugzil.la/1551320, mozilla-central@8b074e2a3b68

2 years agoRemove old RDM workaround documentation
girst [Thu, 18 Nov 2021 14:48:28 +0000 (15:48 +0100)]
Remove old RDM workaround documentation

Fx78-ESR is now unsupported, so no need to keep this around.

2 years agoVimFx v0.24.5 v0.24.5
girst [Thu, 18 Nov 2021 14:32:50 +0000 (15:32 +0100)]
VimFx v0.24.5

2 years agofix 'ambiguous option' error
girst [Thu, 18 Nov 2021 14:23:51 +0000 (15:23 +0100)]
fix 'ambiguous option' error

2 years agomake Fission check more strict
girst [Thu, 18 Nov 2021 14:20:53 +0000 (15:20 +0100)]
make Fission check more strict

only warn when fission.webContentIsolationStrategy > 0 (i.e. when remote
subframes are enabled)

2 years agoFix bootstrapping in Firefox 96
girst [Thu, 18 Nov 2021 14:11:41 +0000 (15:11 +0100)]
Fix bootstrapping in Firefox 96

regressed-by: Bug 1741369

2 years agoNote where contentAreaClick's allowMixedContent came from
girst [Wed, 4 Aug 2021 18:09:11 +0000 (20:09 +0200)]
Note where contentAreaClick's allowMixedContent came from

There was a new commit, 32025eb4c69c59e6a84c62ce262c4a7d2cd457de, to
ClickHandlerParent.jsm (bailing if browser is null). This one doesn't
apply to us, since this can only happen in asnyc/postMessage-triggered
contexts.

2 years agoWarn in Browser Console when Fission (site isolation) is enabled
girst [Wed, 4 Aug 2021 17:38:42 +0000 (19:38 +0200)]
Warn in Browser Console when Fission (site isolation) is enabled

a hidden pref, vimfx.ignore_fission, can be used to hide the warning.

3 years agoVimFx v0.24.4 v0.24.4
girst [Tue, 24 Nov 2020 09:58:05 +0000 (10:58 +0100)]
VimFx v0.24.4

3 years agoUpdate documentation
girst [Sun, 22 Nov 2020 15:43:11 +0000 (16:43 +0100)]
Update documentation

- remove outdated information
- fix link tag spelling
- document userchrome pref
- note Nightly Fission experiment

3 years agoFix search on help screen
girst [Sun, 22 Nov 2020 15:27:50 +0000 (16:27 +0100)]
Fix search on help screen

Used the long removed <xul:textbox> element, which was replaced with a
standard <html:input>.

3 years agoFix `ew` and `ep` commands
girst [Sun, 22 Nov 2020 15:20:13 +0000 (16:20 +0100)]
Fix `ew` and `ep` commands

3 years agoDo not inject Console.jsm into frame scripts
girst [Sun, 22 Nov 2020 15:03:29 +0000 (16:03 +0100)]
Do not inject Console.jsm into frame scripts

causes some errors in the browser console

TypeError: console.createInstance is not a function 3 E10SUtils.jsm:297:27
    log resource://gre/modules/E10SUtils.jsm:297
    shouldLoadURI resource://gre/modules/E10SUtils.jsm:955
    shouldLoadURI chrome://browser/content/tab-content.js:45
TypeError: log is not a function LoginManagerChild.jsm:813:8
    onDOMFormHasPassword resource://gre/modules/LoginManagerChild.jsm:813
    handleEvent resource://gre/modules/LoginManagerChild.jsm:673
TypeError: log is undefined LoginFormFactory.jsm:68:5
    createFromForm resource://gre/modules/LoginFormFactory.jsm:68
    createFromField resource://gre/modules/LoginFormFactory.jsm:110
    handleEvent resource://gre/modules/LoginManagerChild.jsm:684

3 years agoVimFx v0.24.3 v0.24.3
girst [Tue, 17 Nov 2020 15:44:40 +0000 (16:44 +0100)]
VimFx v0.24.3

3 years agoFix Extension Bootstrap for Firefox 84
girst [Tue, 17 Nov 2020 15:38:24 +0000 (16:38 +0100)]
Fix Extension Bootstrap for Firefox 84

Regresed by: Bug 1649843

3 years agoRemove Github templates
girst [Fri, 30 Oct 2020 16:52:28 +0000 (17:52 +0100)]
Remove Github templates

3 years agoupdate known bugs
girst [Fri, 30 Oct 2020 16:38:06 +0000 (17:38 +0100)]
update known bugs

- fission/oop-iframes semi-supported now
- document behaviour after installation

3 years agoDon't crash on pages with out-of-process iframes when fission is enabled
girst [Tue, 5 May 2020 12:18:53 +0000 (14:18 +0200)]
Don't crash on pages with out-of-process iframes when fission is enabled

This should be considered at most a workaround; oop iframes are
completely opaque to VimFx. This not only means that hints are not
generated for elements inside them, but also that VimFx can't detect
when an input element is focused. Due to the latter, we switch to insert
mode whenever we detect that focus is inside an OOP iframe, so text
inputs can still be used.

During implementation, a bug (https://bugzilla.mozilla.org/1635530) was
found (and filed) where activeElement was wrong. This is fixed as of
Firefox 78. Given that fission is still disabled by default, earlier
verisons aren't affected.

Note: lib/utils.coffee::getTopOffset() also accesses frameElement, but
that's safe, since this function is only called by
simulateMouseEvents(), which only works on elements that were previously
reached via hints mode (where we already check for oop iframes).

lib/utils.coffee::containsDeep() is also safe, albeit less so. It is
called through lib/scrollable-elements.coffee::addChecked()
by lib/events-frame.coffee's addEventHandler('overflow'), which as of
fx78 does not receive events from OOP frames.

3 years agoupdate installation, known bugs and development documentation
girst [Sun, 20 Sep 2020 12:27:20 +0000 (14:27 +0200)]
update installation, known bugs and development documentation

- remove AMO installation method
- change LegacyFox links
- realign development docs with reality
- less jargon on known-bugs.

3 years agoSupport in-content dark mode on options.xhtml
girst [Sun, 20 Sep 2020 12:13:00 +0000 (14:13 +0200)]
Support in-content dark mode on options.xhtml

3 years agoVimFx v0.24.2 v0.24.2
girst [Thu, 6 Aug 2020 09:33:29 +0000 (11:33 +0200)]
VimFx v0.24.2

3 years agohotfix: 'F'
girst [Thu, 6 Aug 2020 09:26:13 +0000 (11:26 +0200)]
hotfix: 'F'

3 years agoVimFx v0.24.1 v0.24.1
girst [Wed, 5 Aug 2020 14:24:18 +0000 (16:24 +0200)]
VimFx v0.24.1

3 years agoBetter LegacyFox Link
girst [Thu, 16 Jul 2020 14:54:43 +0000 (16:54 +0200)]
Better LegacyFox Link

3 years agoUpdate contentAreaClick() for Firefox 80
girst [Thu, 16 Jul 2020 14:53:01 +0000 (16:53 +0200)]
Update contentAreaClick() for Firefox 80

keeping old value around to stay backwards-compatible. upstream change:
https://hg.mozilla.org/mozilla-central/diff/48564fee92c70018cae91b914cb7529c86edecb7/browser/actors/ClickHandlerParent.jsm

3 years agoUpdate LegacyFox repo URL and installation instructions
girst [Sun, 12 Jul 2020 13:51:59 +0000 (15:51 +0200)]
Update LegacyFox repo URL and installation instructions

3 years agoVimFx v0.24.0 v0.24.0
girst [Fri, 12 Jun 2020 12:01:54 +0000 (14:01 +0200)]
VimFx v0.24.0

3 years agoDocument known bugs and their workarounds
girst [Tue, 5 May 2020 13:33:53 +0000 (15:33 +0200)]
Document known bugs and their workarounds

3 years agoChromeWindow has no ShadowRoot
girst [Tue, 5 May 2020 12:57:55 +0000 (14:57 +0200)]
ChromeWindow has no ShadowRoot

STR: using `eb` mode, switch to another tab => ReferenceError: "ShadowRoot is not defined"

3 years agofix pushing of the release tag
girst [Tue, 5 May 2020 12:17:31 +0000 (14:17 +0200)]
fix pushing of the release tag

3 years agoFix getting stuck in normal mode in docked DevTools after refocusing
girst [Tue, 5 May 2020 12:07:34 +0000 (14:07 +0200)]
Fix getting stuck in normal mode in docked DevTools after refocusing

In Nightly 70 the docked DevTools were switched from a Chrome Frame to a
Content Frame. The part of VimFx that determines what is part of the
browser UI (to work around a bug regarding delayed ipc messages) then
didn't recognize the DevTools as part of the UI any longer.

When a focusType event comes from the browser UI, a second event is
fired erroneously a few milliseconds later. This caused us to enter
insert mode in the devtools, and immediately exit out of it again,
making it impossible to type in e.g. the style editor.

STR:
    1. open devtools->style editor (or ->network)
    2. focus textbox (vimfx icon will turn silver)
    3. focus webpage (vimfx switches to normal mode)
    4. focus style editor (vimfx fails to return to ignore mode)

regressed by: Bug 1539979 - https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=91f7769b3d7ec17aa11f7a8ada7104f5b4cec38d&tochange=39e19afc797d310f568447eae7054789e641b591

Unrelated to this change, the about:devtools-toolbox's chrome document
was renamed from .xul to .xhtml a few releases back. This second URI was
added; no idea if its absence broke anything.

4 years agoVimFx v0.23.3 v0.23.3
girst [Thu, 19 Mar 2020 16:47:00 +0000 (17:47 +0100)]
VimFx v0.23.3

4 years agoFix `o` in nightly 76 (Bug 1610479)
girst [Thu, 19 Mar 2020 16:35:14 +0000 (17:35 +0100)]
Fix `o` in nightly 76 (Bug 1610479)

4 years agoFix GitHub search box hint
girst [Thu, 30 Jan 2020 22:05:33 +0000 (23:05 +0100)]
Fix GitHub search box hint

Github has wrapped the input field in a div with aria attributes, but
the trigger is actually attached to the input itself. Since they share
the same position, the useless hint for the div is displayed on top of
the useful hint of the input.

Minimal test case:
<div role="combobox">
  <input name="q" onclick="void 0">
</div>

4 years agoFix typo in CHANGELOG
girst [Tue, 7 Jan 2020 23:22:21 +0000 (00:22 +0100)]
Fix typo in CHANGELOG

As evident in the commit message of df0367e, the change occured in
Firefox 73, not 72.

4 years agoonly embolden section title (not section description)
girst [Mon, 6 Jan 2020 23:19:44 +0000 (00:19 +0100)]
only embolden section title (not section description)

4 years agoVimFx v0.23.2 v0.23.2
girst [Sun, 5 Jan 2020 21:07:58 +0000 (22:07 +0100)]
VimFx v0.23.2

4 years agoMake options section headings bold
girst [Thu, 2 Jan 2020 01:33:43 +0000 (02:33 +0100)]
Make options section headings bold

4 years agoFix race condition on options page
girst [Thu, 2 Jan 2020 00:17:51 +0000 (01:17 +0100)]
Fix race condition on options page

If the browser gets restarted with options.xhtml focused, vimfx.info
will be undefined (vimfx.info gets loaded asynchronically)

4 years agoIgnore error thrown by dispatchDOMEvent
girst [Tue, 31 Dec 2019 16:44:37 +0000 (17:44 +0100)]
Ignore error thrown by dispatchDOMEvent

Triggered e.g. by `f`-ing on an extension card's description/title. The
click still registers, so it's just noise in the log. This bug is
present in all supported versions (at least 68..73), but unlikely to be
fixed, as it is "only" a testing function (and we're not supposed to use
it).
NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIDOMWindowUtils.dispatchDOMEventViaPresShellForTesting]

4 years agoClean up some shims for <fx63
girst [Fri, 27 Dec 2019 05:09:54 +0000 (06:09 +0100)]
Clean up some shims for <fx63

nsIDomUtils was removed in fx59 (Bug 1427419 - Part 27). Others found
through
  grep -nrwE '\b(fx|waterfox|mozilla) ?(5[0-9]|6[0-7])' extension

4 years agoRemove last isXULDocument() references
girst [Fri, 27 Dec 2019 01:09:05 +0000 (02:09 +0100)]
Remove last isXULDocument() references

== commands.follow ==
On XUL pages/windows, <body> does not exist (hence the check was put
in), but is `null`, so can be safely compared against (and the check can
be omitted).

== helper_follow ==
Since the last war on isXULDocument, the namespace has in many cases
been moved from the document root to a descendant (e.g. to <body> on
about:preferences in fx73). This means that the isXULDocument call often
isn't triggered when it should.
Coincidentally, most XULElements are recognized, either due to them
being implemented as a custom element containing a recognized element or
by their tag name being identical to a recognized one. The only
exception is <xul:label is="text-link">, which needed special handling
in commands.follow_in_tab().

4 years agos/dispatchDOMEventViaPresShell/&ForTesting/
girst [Tue, 24 Dec 2019 14:25:39 +0000 (15:25 +0100)]
s/dispatchDOMEventViaPresShell/&ForTesting/

regressed by: fx73; Bug 1603074

the 3rd parameter was removed in fx62 (Bug 1455676), which we don't support
any more, so that was pruned as well.

4 years agoVimFx v0.23.1 v0.23.1
girst [Thu, 5 Dec 2019 20:31:22 +0000 (21:31 +0100)]
VimFx v0.23.1

4 years agoupdate "vulnerable" packages
girst [Thu, 5 Dec 2019 20:06:52 +0000 (21:06 +0100)]
update "vulnerable" packages

vi package.json && npm install && npm audit fix && git commit -A

to make this new github bot shut up, hopefully. none of these packages
are included in the final xpi, and the build doesn't change, so it
doesn't matter either way. the addon-linter package was fixed to 0.24.0,
which is the last version that supports install.rdf without throwing a
warning.

4 years agoreplace imported ContentClick module with stub
girst [Mon, 2 Dec 2019 14:36:43 +0000 (15:36 +0100)]
replace imported ContentClick module with stub

The module was replaced at the very end of the 72 cycle with
ClickHandlerParent.jsm, which made contentAreaClick non-static. It would
have been technically possible to just ship the old module with either
VimFx or LegacFox, but since it is so small and it was replaced to
support Fission, it seemed better to extract the relevant parts of the
method and just inline them. We'll need to keep it up-to-date either
way.
Note that despite this we are _not_ fission compatible; when a 3rd-party
iframe is present, hints mode breaks.

Regressed by: Bug 1595155

4 years agofix 'modifiers is null' TypeError
girst [Sun, 1 Dec 2019 20:23:28 +0000 (21:23 +0100)]
fix 'modifiers is null' TypeError

element.getAttribute() might return null, while
xulElement.getAttribute() returns the empty string. the latter is
expected by the implementation. Since fx71, the main window is now an
HTMLDocument instead of a XULDocument, causing the breakage.

See also: commitmsg of 1791f889

4 years agoRemove misuse of isXULDocument()
girst [Sun, 1 Dec 2019 17:57:09 +0000 (18:57 +0100)]
Remove misuse of isXULDocument()

A new isXULElement() has been introduced as a replacement for improper
use of isXULDocument() (where the latter was used to indirectly check
the former). isXULDocument() only works if the xul-xmlns is attached to
the document as its main namespace, which is not the case e.g. on fx72's
about:preferences#sync (the test for which now uses isXULElement).

The test in isProperLink() actually wants to know if an element belongs
to the XUL namespace, not if it is embedded in a document of that NS
(to treat <xul:label is="text-link"> element equivalent to <html:a>).

The blurring condition in events-frame.coffee was introduced in e881629
for about:config, but that does not work any more and is also annoying
on :prefs (and was again an indirect test for what was actually wanted).

In commands-frame.coffee's commands.follow(), two of the three uses of
isXULDocument have been replaced by the proper isXULElement, the third
one is likely to be correct (as there isn't a <body> on xul-<window>s).

This leaves us with 1 remaining unclean use, in commands-frame.coffee's
helper_follow(). It is used to catch all the xul elements that have html
equivalents with different tag names. Replacing that with something
proper will not be attempted in this change, as it would probably
require changing its callers to pass in different arguments when ran in
the XUL namespace.

4 years agoundo useless hint exclusion
girst [Sun, 1 Dec 2019 17:51:05 +0000 (18:51 +0100)]
undo useless hint exclusion

this was originally introduced to "remove unnecessary hints markers in
the addon manager"(@94f5252), but about:addons has since been rewritten
and this actually breaks the search box on about:preferences and
about:addons, as well as on the old xul-about:config.

4 years agomore release script work
girst [Sun, 1 Dec 2019 17:50:42 +0000 (18:50 +0100)]
more release script work

 * push to correct remote from release script
 * when aborting a push, also delete the tag, or it'll fail the next
   time round

4 years agoVimFx v0.23.0 v0.23.0
girst [Sun, 1 Dec 2019 15:48:06 +0000 (16:48 +0100)]
VimFx v0.23.0

4 years agoRequire Firefox 68 and Update Documentation
girst [Wed, 27 Nov 2019 21:10:58 +0000 (22:10 +0100)]
Require Firefox 68 and Update Documentation

since the removal of the XBL-aware getAllElements() code path, this
extension is less useful on .xul pages (i.e. some about: pages) in older
Firefoxen. Users of older versions of Firefox (or derivatives) should
stay on v0.22.2. While nobody is stopping you from downgrading or
ignoring the min-version requirement, you don't gain any new
functionality and might have a degraded experience with v0.23.x.

4 years agofix lint error for overlong line
girst [Thu, 21 Nov 2019 16:07:27 +0000 (17:07 +0100)]
fix lint error for overlong line

4 years agoremove getAnonymousNodes() code path from getAllElements()
girst [Thu, 21 Nov 2019 15:47:49 +0000 (16:47 +0100)]
remove getAnonymousNodes() code path from getAllElements()

in fx68 and newer, there are no in-content bindings (i.e. those in .xul
about:-pages) left, and hardly any that are reachable via VimFx hints.
The only element with anonymous nodes that was reachable that way is the
(non-megabar) URL bar, which is better focused using 'o'.

The other now removed function, getBindingParent(), will have to stay;
otherwise custom elements (e.g. on bugs.chromium.org or the <xul:tree>
element on XUL-about:config) won't be properly clickable through hints.

4 years agogetAnonymousNodes() and getBindingParent() removed from fx72
girst [Thu, 21 Nov 2019 13:10:44 +0000 (14:10 +0100)]
getAnonymousNodes() and getBindingParent() removed from fx72

see also: https://bugzil.la/1596800

the whole XULDocument code path in
markable-elements.coffee::getAllElements() is now obsolete, since
getAnonymousNodes() no longer exists, and before that, returned nothing
of importance, since most XBL bindings have been removed before Firefox
68. Removal of the code path will follow in a follow up to ease a
possible revert, since a very small amount of hints might get lost in
68esr without it (the only concrete example I've found is the urlbar in
'eb' mode, which can also be reached with 'o').

4 years agonew release script
girst [Sat, 16 Nov 2019 12:35:55 +0000 (13:35 +0100)]
new release script

inspired by
https://blog.danslimmon.com/2019/07/15/do-nothing-scripting-the-key-to-gradual-automation/
and https://drewdevault.com/2019/10/12/how-to-fuck-up-releases.html

care has been taken to make it posix compliant. however, it does by
default depend on my fairly unusual setup to be present, which can
however be easily overridden (see script for details).

4 years agogulp: make lint failures fatal
girst [Sat, 16 Nov 2019 12:00:34 +0000 (13:00 +0100)]
gulp: make lint failures fatal

required for upcoming release automation

4 years agofix 'eb' for nightly72
girst [Sat, 16 Nov 2019 11:40:18 +0000 (12:40 +0100)]
fix 'eb' for nightly72

browser.xhtml now uses a <html> (was a <xul:window>) element as its
root. since the ID we anchored to was assigned to <html>, we added the
hints as a sibling to the body instead of below it.

regressed by Bug 1492582

4 years agofix hints on about:preferences (nightly72)
girst [Sat, 16 Nov 2019 11:35:27 +0000 (12:35 +0100)]
fix hints on about:preferences (nightly72)

getClientRects() was undefined when called on <menulist id=defaultFont>.
might have been caused by 1588142 (switching from xul:window to html
root).

4 years agoVimFx v0.22.0 v0.22.2
girst [Sat, 19 Oct 2019 17:38:31 +0000 (19:38 +0200)]
VimFx v0.22.0

Imprint / Impressum