]> git.gir.st - VimFx.git/log
VimFx.git
8 years agoConsider multimedia elements as adjustable
Simon Lydell [Tue, 23 Feb 2016 06:23:39 +0000 (07:23 +0100)]
Consider multimedia elements as adjustable

`<video>`, `<audio>`, `<embed>` and `<object>`. This allows pressing `<space>`
to toggle between play and pause, for instance.

This also allows to get rid of the check for fullscreen elements. That's good,
because _any_ element can be fullscreened, not just `<video>` elements.

8 years agoReplace element `instanceof` checks with `.localName`
Simon Lydell [Sun, 21 Feb 2016 14:35:12 +0000 (15:35 +0100)]
Replace element `instanceof` checks with `.localName`

KISS.

Note: `instanceof` checks are still often useful for XUL elements, because some
interfaces are extended by several elements.

Also note that `.localName` is used instead of `.nodeName` because many XUL
pages embed HTML elements. When mixing namespaces like that, the `.nodeName`s of
HTML elements will start with `html:`, while `.localName` skips the prefix.
`.localName` also nicely always returns valid HTML node names in lowercase.

8 years agoSplit `gl` into `gl` and `gL`
Simon Lydell [Mon, 22 Feb 2016 18:29:26 +0000 (19:29 +0100)]
Split `gl` into `gl` and `gL`

`gl` selects the most recent tab. Simple, right? But what if you open a
background tab? Which is the most recent tab now? Or if you open several
background tabs?

Previously, if you opened several background tabs and then pressed `gl`, the
last opened new background tab would be selected. That behavior just happened to
be.

In my opinion, it is more consistent if `gl` always selects the last _visited_
tab. An unread background tab has _not_ been visited (yet). This commit makes
this change.

If there is only one visited tab (but possibly several unread tabs), a
notification is shown telling that there is no most recent tab.

The `gL` command selects the oldest unread tab. This is useful when having
opened a bunch of background tabs. `gL` then lets you step them through in the
order you opened them. (If there are no unread tabs, a notification is shown.)

In other words, `gl` deals with _visited_ tabs only (from now on), while `gL`
deals with _unread_ tabs only.

The motivation for this commit came from piroor/treestyletab#874.

8 years agoFix commit 241c9bf5 in a better way
Simon Lydell [Sun, 21 Feb 2016 15:30:57 +0000 (16:30 +0100)]
Fix commit 241c9bf5 in a better way

Mentioned commit attempted to fix a problem where `vim.mode` could be
`undefined` in some `vimfx.on(...)` listeners. The button uses such an event
listener, and uses `vim.mode` in the key for a `translate(key)` call, which
caused `translate` to throw an error. This was because `vim.mode` wasn't set
until after a timeout. The fix was to emit the events after the same timeout.

However, the above solution is very unreliable, and the problem still slipped
through every now and then.

The reason the first timeout was added in the first place was to allow calling
`vimfx.getCurrentVim()` inside `vimfx.on(...)` listeners. This commit removes
both timeouts, while still preserving that behavior by splitting the contructor
of `Vim` into a new method, `._start`. This should be bullet-proof, less hacky
and faster.

8 years agoAdd partial support for the wasavi extension
Simon Lydell [Sun, 21 Feb 2016 14:05:49 +0000 (15:05 +0100)]
Add partial support for the wasavi extension

It's editor is now recognized as an editable element, but pressing `<escape>` in
its insert mode still blurs the editor instead of exiting its insert mode.
(`<escape>`) should ideally only blur in wasavi's normal mode.

See #532.

8 years agoTake fixed headers into account when scrolling by pages
Simon Lydell [Sun, 21 Feb 2016 13:58:36 +0000 (14:58 +0100)]
Take fixed headers into account when scrolling by pages

Just like the standard Firefox `<space>` shortcut. Also takes fixed footers into
account. Fixes #698.

8 years agoMerge branch 'master' into develop
Simon Lydell [Fri, 19 Feb 2016 18:27:01 +0000 (19:27 +0100)]
Merge branch 'master' into develop

Conflicts:
extension/lib/api.coffee
extension/lib/commands.coffee
extension/lib/main-frame.coffee
extension/lib/main.coffee
extension/lib/message-manager.coffee
extension/test/index.coffee
extension/test/test-api.coffee

8 years agoMerge branch 'lint'
Simon Lydell [Fri, 19 Feb 2016 18:17:10 +0000 (19:17 +0100)]
Merge branch 'lint'

8 years agoUpdate code style guidelines
Simon Lydell [Fri, 19 Feb 2016 18:06:26 +0000 (19:06 +0100)]
Update code style guidelines

8 years agoReplace `when ... then` with multliners
Simon Lydell [Fri, 19 Feb 2016 08:33:55 +0000 (09:33 +0100)]
Replace `when ... then` with multliners

For the sake of smaller diffs, simpler merges and consistency.

8 years agoReduce unnecessary vertical code alignment
Simon Lydell [Fri, 19 Feb 2016 06:55:41 +0000 (07:55 +0100)]
Reduce unnecessary vertical code alignment

While it may look nice many times, it causes annoying merge conflicts.
Especially aligning all `require(...)` calls has bitten me many times, since
adding or removing one often requires reformatting the entire block.

This commit attempts to remove vertical alignment (especially around `=`) for
the sake of smaller diffs and simpler merges.

Vertical alignment has been kept, though, where it really makes the code easier
to read and you're likely to edit all of the aligned lines anyway if changing
one of them. The most common example is code dealing with X and Y coordinates
and having to do the same thing to both of them. Only the words X, Y, left,
right, top, bottom, width, height etc. differ between the lines. It's easier to
see that they are really up-to-date with each other if the common parts are
aligned.

8 years agoEnable the `colon_assignment_spacing` CoffeeLint rule
Simon Lydell [Fri, 19 Feb 2016 06:39:21 +0000 (07:39 +0100)]
Enable the `colon_assignment_spacing` CoffeeLint rule

Exceptions are made for the DSL in defaults.coffee and migrations.coffee.

8 years agoWork around a CoffeeLint bug
Simon Lydell [Fri, 19 Feb 2016 08:37:55 +0000 (09:37 +0100)]
Work around a CoffeeLint bug

A `no_implicit_braces` false positive.

8 years agoEnable the `no_implicit_braces` CoffeeLint rule
Simon Lydell [Fri, 19 Feb 2016 06:53:18 +0000 (07:53 +0100)]
Enable the `no_implicit_braces` CoffeeLint rule

Exceptions are made for the DSL in defaults.coffee and migrations.coffee.

8 years agoEnable the `no_plusplus` CoffeeLint rule
Simon Lydell [Fri, 19 Feb 2016 06:54:18 +0000 (07:54 +0100)]
Enable the `no_plusplus` CoffeeLint rule

8 years agoEnable the `newlines_after_classes` CoffeeLint rule
Simon Lydell [Fri, 19 Feb 2016 06:41:18 +0000 (07:41 +0100)]
Enable the `newlines_after_classes` CoffeeLint rule

8 years agoTweak issue templates
Simon Lydell [Thu, 18 Feb 2016 17:02:31 +0000 (18:02 +0100)]
Tweak issue templates

8 years agoReplace CONTRIBUTING.md with issue template
Simon Lydell [Thu, 18 Feb 2016 08:35:55 +0000 (09:35 +0100)]
Replace CONTRIBUTING.md with issue template

8 years agoTweak code contribution documentation
Simon Lydell [Thu, 18 Feb 2016 08:34:50 +0000 (09:34 +0100)]
Tweak code contribution documentation

8 years agoRework programmatic customization of VimFx
Simon Lydell [Thu, 28 Jan 2016 21:05:54 +0000 (22:05 +0100)]
Rework programmatic customization of VimFx

- The public API has been removed. While the idea of allowing other extensions
  to extend VimFx is neat, I don't think it'll ever be used. KISS. As a
  replacement, the config files have become more top-notch.

- The former public API is now the config file API.

- Config files are no longer regular add-ons. We used to provide a boilerplate
  for such an add-on, which consisted of a bunch of files users most likely
  wouldn't touch as well as `config.js` and `frame.js`. Now, the concept of
  `config.js` and `frame.js` has been kept, but they are loaded directly, if the
  path to their parent directory is given in the `config_file_directory` pref.
  This is much easier and simpler, and does not require the user to install a
  version of Firefox with the ability to install unsign add-ons (or having to go
  through the hassle of actually signing the "config file add-on").

- `zr` reloads the config file(s). This is possible because of the above point
  and is much nicer than having to restart Firefox every time you change your
  config (or setting up something like the Extension Auto-Installer).

- `vimfx.send(...)` and `vimfx.listen(...)` have been added, to make it easier
  to create custom commands that interact with web page content, which is quite
  common. These are basically `messageManager.send` and `messageManager.listen`.
  To make the API simpler, instead of passing the name of the callback message
  to listeners and having to do `messageManager.send(callback, data)` to respond
  to a message, a real callback _function_ is now passed instead, which does the
  message sending behind the scenes. This also resulted in some nice code
  cleanup overall.

- `vimfx.off(...)` has been added, to remove `vimfx.on(...)` listeners. This is
  mostly used internally. Since `zr` allows reloading the config file,
  everything in it must be undoable.

- By loading `frame.js` directly, it is now possible to pass a real API to it,
  rather than relying on `VimFx*` properties on the global frame script object.

- The new, "real" frame script API now has tests. This involved adding support
  for running tests in frame scripts.

Fixes #682.

8 years agoImprove error messages for l10n.coffee
Simon Lydell [Tue, 16 Feb 2016 06:54:00 +0000 (07:54 +0100)]
Improve error messages for l10n.coffee

8 years agoFix `vim.mode` being `undefined` in 'modeDisplayChange'
Simon Lydell [Sun, 14 Feb 2016 07:28:12 +0000 (08:28 +0100)]
Fix `vim.mode` being `undefined` in 'modeDisplayChange'

8 years agoFix uncaught exception after dragging tabs between windows
Simon Lydell [Sun, 14 Feb 2016 07:15:56 +0000 (08:15 +0100)]
Fix uncaught exception after dragging tabs between windows

8 years agoDocument a NoScript bug
Simon Lydell [Sat, 13 Feb 2016 20:37:25 +0000 (21:37 +0100)]
Document a NoScript bug

Closes #588.

8 years agoImprove and add more documentation
Simon Lydell [Sat, 6 Feb 2016 16:52:18 +0000 (17:52 +0100)]
Improve and add more documentation

- Improved wording and consistency.
- Add short summaries of each section in the table of contents.
- Document how to install VimFx. Fixes #686.
- Document modes.
- Don't refer to the "Public API" anymore, but the "config file API". It is no
  longer intended to be used by other add-ons. (The plan is to load config files
  in a different way in the future.)

8 years agoImprove CONTRIBUTING.md
Simon Lydell [Sat, 6 Feb 2016 17:22:42 +0000 (18:22 +0100)]
Improve CONTRIBUTING.md

- Remove "Use English". That's understood since the bug template is in English.
- Put the instruction about bugs at the top.
- Make the paragraph about the changelog a bullet point. It makes the
  instructions look shorter. Since the "Use English" bullet point was removed,
  the list does not look too long either.
- Move the "Contributing code?" link off to the right to get it out of the way.
- Use fewer words in a few places. The less to read the better.

Also: Link to CONTRIBUTING.md instead of directly to the issue tracker in the
readme, to increase the chance of people actually reading it. Therefore a "Go to
the issue tracker" link was added in CONTRIBUTING.md (it goes to the issues
list, not a new issue, to increase the chance of people looking for duplicates).

8 years agoApply the blacklist faster on some pages
Simon Lydell [Sat, 6 Feb 2016 16:30:41 +0000 (17:30 +0100)]
Apply the blacklist faster on some pages

Fixes #688.

8 years agoVimFx v0.12.0 v0.12.0
Simon Lydell [Wed, 3 Feb 2016 17:26:43 +0000 (18:26 +0100)]
VimFx v0.12.0

8 years agoMake the `H` and `L` commands more reliable
Simon Lydell [Wed, 3 Feb 2016 17:11:33 +0000 (18:11 +0100)]
Make the `H` and `L` commands more reliable

It seems like using `window.BrowserBack()` and `window.BrowserForward()` are the
most reliable ways of navigating the history, rather than having to wait for
`SessionStore.getSessionHistory()` to finish and then going to a certain history
index. This commit optimizes the case where the count is 1 to use the mentioned
functions instead. Some extensions also override those, so calling them results
in better interoperability.

(Hopefully/Likely) fixes #687.

To keep the code changes simple, the support for Firefox < 43 was dropped.
That's fine, since Firefox 44 has already been released.

8 years agoSilence `addons-linter` warnings
Simon Lydell [Fri, 29 Jan 2016 08:16:32 +0000 (09:16 +0100)]
Silence `addons-linter` warnings

8 years agoMerge branch 'master' into develop
Simon Lydell [Fri, 29 Jan 2016 07:51:28 +0000 (08:51 +0100)]
Merge branch 'master' into develop

8 years agoAdd `npm run addons-linter`
Simon Lydell [Fri, 29 Jan 2016 07:50:58 +0000 (08:50 +0100)]
Add `npm run addons-linter`

8 years agos/Keyboard layout/Keyboard language/ in CONTRIBUTING.md
Simon Lydell [Thu, 28 Jan 2016 19:12:31 +0000 (20:12 +0100)]
s/Keyboard layout/Keyboard language/ in CONTRIBUTING.md

It's really the language (en-US, en-UK, sv-SE, de, ru, etc.) of the keyboard
that is relevant. (Many of those examples are variations of QWERTY.)

8 years agoConvert most of CONTRIBUTING.md into copy-paste template
Simon Lydell [Wed, 27 Jan 2016 06:59:10 +0000 (07:59 +0100)]
Convert most of CONTRIBUTING.md into copy-paste template

8 years agoRecognize Codeacademy terminals as text inputs
Simon Lydell [Wed, 27 Jan 2016 06:40:42 +0000 (07:40 +0100)]
Recognize Codeacademy terminals as text inputs

Fixes #680.

8 years agoAdd handy links to location bar docs
Simon Lydell [Wed, 27 Jan 2016 06:26:44 +0000 (07:26 +0100)]
Add handy links to location bar docs

Related: #540.

8 years agoUse async messaging in bootstrap.coffee
Simon Lydell [Tue, 26 Jan 2016 21:50:10 +0000 (22:50 +0100)]
Use async messaging in bootstrap.coffee

The initial message from new frame scripts is now async. This is possible since
commit bd00a85e0. Other than following the recommendation to avoid sync
messaging whenever possible, this fixes #679 and fixes #624.

8 years agoUse explicit `return`s in message-manager.coffee
Simon Lydell [Tue, 26 Jan 2016 21:24:17 +0000 (22:24 +0100)]
Use explicit `return`s in message-manager.coffee

8 years agoUpdate copyright notices
Simon Lydell [Tue, 26 Jan 2016 19:17:12 +0000 (20:17 +0100)]
Update copyright notices

8 years agoConsistently name the help dialog is user-facing code
Simon Lydell [Tue, 26 Jan 2016 18:50:04 +0000 (19:50 +0100)]
Consistently name the help dialog is user-facing code

Always call it the "Keyboard Shortcuts help dialog".

8 years agoUse strings instead of functions in the `modes` object
Simon Lydell [Tue, 26 Jan 2016 18:41:38 +0000 (19:41 +0100)]
Use strings instead of functions in the `modes` object

Since we run things properly in the `startup()` function of bootstrap.js since
last commit, the `chrome://` URI to the string bundles is now available when the
`modes` object is constructed. This means that there's no need anymore to let
mode names, category names and command descriptions be functions. Instead they
can be the sane thing: Simply strings.

Note that this is a backwards incompatible change. Luckily it does not affect
the `.addCommand()` API method, so propably won't impact anyone.

8 years agoUse `chrome://` URIs for `require()` calls
Simon Lydell [Tue, 26 Jan 2016 18:15:05 +0000 (19:15 +0100)]
Use `chrome://` URIs for `require()` calls

Apparently, `chrome://` URIs registered in chrome.manifest cannot be used in
bootstrap.js until its `startup()` function is called. Therefore this commit
reorganizes the code of bootstrap.coffee a bit, so that actual work is done
inside `startup()` (where it is supposed to be, after all). Outside of that
function we now mostly simply declare variables that the `shutdown()` function
needs to access as well. Some things were moved into main.coffee as well.

- Using `chrome://` URIs is the way add-ons are "supposed" to do it.
- If a `require()` call fails, we now get much shorter URIs in the error
  message, making things easier to debug.
- This allows to get rid of the hack of sending `__SCRIPT_URI_SPEC__` to frame
  scripts.

8 years agoImprove CPU usage in Hints mode
Simon Lydell [Tue, 26 Jan 2016 07:31:39 +0000 (08:31 +0100)]
Improve CPU usage in Hints mode

Raising the "check for marker element movements" interval from 0 to 15 results
in no noticeable CPU usage change on my system, while still allowing markers to
move smoothly. Setting it to 20 results in noticeable stutter.

This commit also add the `hints_sleep` pref to control the interval, or disable
the feature altogether.

Additionally, the interval now doesn't run at all for the `zF` command.
Previously, it ran as usual, but didn't do anything (as marker movement isn't
supported (YAGNI) for the `zF` command).

Fixes #678.

8 years agoFix missing hint markers for tabs on caniuse.com
Simon Lydell [Mon, 25 Jan 2016 17:57:16 +0000 (18:57 +0100)]
Fix missing hint markers for tabs on caniuse.com

The "feature" tabs for a specific feature on caniuse.com look like this:

    ___________ ___________
    |         :\|         :\
    |  Tab 1  :+\  Tab 2  : \
    |_________:__\________:__\

The "real" tab elements are the rectangles to the left of the dotted vertical
lines. The triangle parts are made using the `::before` or `::after`
pseudo-elements of the tabs.

When calling `.elementFromPoint()` on a pseudo-element, its parent element is
returned. But calling `.getBoundingClientRect()` on the parent element returns a
rectangle only around the the parent element, excluding the pseudo-element.

Because of the pseudo-elements overlap the next tab, the second tab is
considered covered by the first tab.

Previously, a point to the right of the first tab would then be tried. But since
the pseudo-element isn't included in `.getBoundingClientRect()` that would mean
the point marked with a `+`, which is actually to the _left_ of the original
point, not to the right! That obviously didn't work.

With this commit, if the "try-right point" is to the left of the initial point
and the covering element and the queried element are in the same frame, the
point is tried again but this time forcing the element to be considered located
at that point, solving the issue.

Using pseudo-elements to create non-rectangular tabs is quite common, so this
will help on other sites as well.

8 years agoAdd tips about the menu key and access keys
Simon Lydell [Sun, 24 Jan 2016 18:54:45 +0000 (19:54 +0100)]
Add tips about the menu key and access keys

8 years agoFix the empty notification for the `gH` command
Simon Lydell [Sun, 24 Jan 2016 18:42:12 +0000 (19:42 +0100)]
Fix the empty notification for the `gH` command

8 years agoBriefly mention "click to edit" in the readme
Simon Lydell [Sun, 24 Jan 2016 13:22:31 +0000 (14:22 +0100)]
Briefly mention "click to edit" in the readme

8 years agoMerge branch 'master' into develop
Simon Lydell [Sun, 24 Jan 2016 13:11:55 +0000 (14:11 +0100)]
Merge branch 'master' into develop

8 years agoFix AMO formatting issue by forcing a line break
Simon Lydell [Sun, 24 Jan 2016 11:45:13 +0000 (12:45 +0100)]
Fix AMO formatting issue by forcing a line break

8 years agoSimplify "Questions & Answers" a bit
Simon Lydell [Sun, 24 Jan 2016 11:27:12 +0000 (12:27 +0100)]
Simplify "Questions & Answers" a bit

8 years agoStreamline the readme
Simon Lydell [Sun, 24 Jan 2016 10:54:11 +0000 (11:54 +0100)]
Streamline the readme

8 years agoMention "Questions & Answers" directly in the readme
Simon Lydell [Sun, 24 Jan 2016 10:59:34 +0000 (11:59 +0100)]
Mention "Questions & Answers" directly in the readme

8 years agos/Google Chrome/Chrome/ in the readme
Simon Lydell [Sun, 24 Jan 2016 10:55:27 +0000 (11:55 +0100)]
s/Google Chrome/Chrome/ in the readme

8 years agoImprove discoverability of Ignore mode
Simon Lydell [Sun, 24 Jan 2016 10:44:10 +0000 (11:44 +0100)]
Improve discoverability of Ignore mode

See #593.

8 years agoRemove check for 'close' class for clickable elements
Simon Lydell [Sun, 24 Jan 2016 09:22:55 +0000 (10:22 +0100)]
Remove check for 'close' class for clickable elements

It gave too many false positives because of the word 'closed' in many classes.
Instead of trying to switch to a regex to avoid those cases, I'm trying to
completely remove the check. Hopefully the other matching rules are enough.

8 years agoAdd count support to `gl`
Simon Lydell [Sat, 23 Jan 2016 20:49:33 +0000 (21:49 +0100)]
Add count support to `gl`

8 years agoRemove hints and help on shutdown
Simon Lydell [Sat, 23 Jan 2016 18:31:37 +0000 (19:31 +0100)]
Remove hints and help on shutdown

Previously, if you disabled VimFx by using the `f` command to click VimFx's
"Disable" button in the Add-ons Manager, the hint markers would be left behind
(though losing their styling). This meant that the entire page would be covered
by a transparent element impossible to remove (other than closing the tab) and
impossible to click through.

A similar thing happened if you left the help dialog open in another tab while
disabling VimFx.

This commit makes sure that both those pieces of UI are removed on shutdown.

8 years agoComment out "copy help HTML" to clipboard
Simon Lydell [Sat, 23 Jan 2016 18:27:10 +0000 (19:27 +0100)]
Comment out "copy help HTML" to clipboard

Enabling it was accidentally committed in commit 6f8cb627c.

8 years agoMerge pull request #676 from akhodakivskiy/more-hints
Simon Lydell [Fri, 22 Jan 2016 16:17:16 +0000 (17:17 +0100)]
Merge pull request #676 from akhodakivskiy/more-hints

Recognize more elements as clickable

8 years agoRecognize more elements as clickable
Simon Lydell [Thu, 21 Jan 2016 06:47:18 +0000 (07:47 +0100)]
Recognize more elements as clickable

- Elements with `data-` attributes used for clickable things by Bootstrap are
  now recognized. This is a huge win since Bootstrap is very popular and many
  developers use it with semantically unclickable elements (even though the
  Bootstrap documentation always reminds of accessibility concerns). Since these
  elements are or _should have been_ semantically clickable elements, they are
  always treated as such, in order not to give them too bad hints.

- A few `aria-` attributes are now recognized as semantically clickable.

- ARIA roles are now treated as _semantically_ clickable, instead of just
  clickable.

- "Close" buttons are now attempted to be recognized. This is useful for many of
  those obtrusive EU cookie law notices. Recognizing Bootstrap elements also
  helps greatly here.

- Finally, elements with 'click' event listeners (added using
  `element.addEventListener('click', ...)`) are now recognized, by using a
  Firefox API. This is really useful on DuckDuckGo's image search. Fixes #671
  and fixes #672.

  Note that event delegation is not supported, since that would require
  inspecting the code of the event listeners. One _could_ inspect the global
  `jQuery` object (if any) to get to solve that problem to a great extent (like
  Firefox's devtools do), but I'm not sure if that's a good idea.

It should also be noted that I tried recognizing elements matching
`/\bjs-/.test(element.className)`, but that proved give too many false
positives.

8 years agoNever prevent autofocus in XUL pages
Simon Lydell [Fri, 22 Jan 2016 06:40:01 +0000 (07:40 +0100)]
Never prevent autofocus in XUL pages

- Every time I go to `about:config` I wish that the filter field was focused.
- Even though `vim.markPageInteraction()` was called, the "click to go to
  command" feature of the help dialog sometimes failed to autofocus the text
  input for the command.

Thus, I think it's sensible to simply _not_ prevent autofocus in XUL pages. Such
pages are few and well-behaved (it seems).

8 years agoGet XPCOM interfaces once at the top of files
Simon Lydell [Thu, 21 Jan 2016 20:52:08 +0000 (21:52 +0100)]
Get XPCOM interfaces once at the top of files

8 years agoImprove autofocus prevention after `[` and `]`
Simon Lydell [Thu, 21 Jan 2016 16:34:04 +0000 (17:34 +0100)]
Improve autofocus prevention after `[` and `]`

When you go to the next page of GitHub’s code search results, the page is loaded
with AJAX. GitHub then annoyingly focuses its search input. This autofocus
cannot be prevented in a reliable way, because the case is indistinguishable
from a button whose job is to focus some text input. However, after the `[` and
`]` command we know for sure that we can prevent the next focus. This commit
resets the `vim.state.hasInteraction` flag in those commands to allow for this
behavior, by adding the `value=true` parameter to `vim.markPageInteraction()`
and passing in `false`.

Fixes #675.

8 years agoImprove "click to edit" in help dialog in non-multi-process
Simon Lydell [Sun, 17 Jan 2016 09:06:33 +0000 (10:06 +0100)]
Improve "click to edit" in help dialog in non-multi-process

8 years agoAllow to click commands in the help dialog to edit them
Simon Lydell [Sat, 16 Jan 2016 15:27:48 +0000 (16:27 +0100)]
Allow to click commands in the help dialog to edit them

8 years agoRemove unnecessary hint markers in the Add-ons Manager
Simon Lydell [Sat, 16 Jan 2016 15:01:57 +0000 (16:01 +0100)]
Remove unnecessary hint markers in the Add-ons Manager

8 years agoFix uncaught exception when opening the devtools
Simon Lydell [Sat, 16 Jan 2016 13:54:42 +0000 (14:54 +0100)]
Fix uncaught exception when opening the devtools

8 years agoFix `gulp help.html`
Simon Lydell [Sat, 16 Jan 2016 13:25:18 +0000 (14:25 +0100)]
Fix `gulp help.html`

8 years agoRemove confusing link from the readme
Simon Lydell [Sat, 16 Jan 2016 13:18:49 +0000 (14:18 +0100)]
Remove confusing link from the readme

8 years agoCode style nitpicks
Simon Lydell [Sat, 16 Jan 2016 13:18:02 +0000 (14:18 +0100)]
Code style nitpicks

8 years agoProperly clean up public API on shutdown (fix typo)
Simon Lydell [Sat, 16 Jan 2016 13:13:53 +0000 (14:13 +0100)]
Properly clean up public API on shutdown (fix typo)

8 years agoMerge pull request #669 from mozillazg/zh-CN
Simon Lydell [Sat, 16 Jan 2016 08:00:18 +0000 (09:00 +0100)]
Merge pull request #669 from mozillazg/zh-CN

updated zh-CN locale

8 years agoupdated zh-CN locale
mozillazg [Sat, 16 Jan 2016 05:59:42 +0000 (13:59 +0800)]
updated zh-CN locale

8 years agoVimFx v0.11.0 v0.11.0
Simon Lydell [Fri, 15 Jan 2016 18:59:42 +0000 (19:59 +0100)]
VimFx v0.11.0

8 years agoFix uncaught exception when loading some pages
Simon Lydell [Fri, 15 Jan 2016 18:53:47 +0000 (19:53 +0100)]
Fix uncaught exception when loading some pages

In frame scripts, `document.activeElement` may be null while the page is
loading.

8 years agoReduce AMO validator warnings regarding mouse events
Simon Lydell [Fri, 15 Jan 2016 18:40:58 +0000 (19:40 +0100)]
Reduce AMO validator warnings regarding mouse events

8 years agoFuture-proof the `Cu.import` for `console`
Simon Lydell [Fri, 15 Jan 2016 18:40:07 +0000 (19:40 +0100)]
Future-proof the `Cu.import` for `console`

8 years agoFix support for Firefox < 44
Simon Lydell [Fri, 15 Jan 2016 18:21:04 +0000 (19:21 +0100)]
Fix support for Firefox < 44

8 years agoUpdate dependencies
Simon Lydell [Fri, 15 Jan 2016 18:01:30 +0000 (19:01 +0100)]
Update dependencies

8 years agoUpdate copyright notices
Simon Lydell [Fri, 15 Jan 2016 17:46:41 +0000 (18:46 +0100)]
Update copyright notices

8 years agoMerge branch 'master' into develop
Simon Lydell [Fri, 15 Jan 2016 17:44:51 +0000 (18:44 +0100)]
Merge branch 'master' into develop

8 years agoMake the tests run on newer Firefox versions
Simon Lydell [Fri, 15 Jan 2016 17:44:42 +0000 (18:44 +0100)]
Make the tests run on newer Firefox versions

8 years agoMerge branch 'master' into develop
Simon Lydell [Fri, 15 Jan 2016 08:12:45 +0000 (09:12 +0100)]
Merge branch 'master' into develop

Conflicts:
extension/lib/marker.coffee

8 years agoFix missing hint for "Browser styles" checkbox in devtools
Simon Lydell [Fri, 15 Jan 2016 08:04:17 +0000 (09:04 +0100)]
Fix missing hint for "Browser styles" checkbox in devtools

8 years agoMerge pull request #668 from akhodakivskiy/devtoolszoom
Simon Lydell [Fri, 15 Jan 2016 08:01:09 +0000 (09:01 +0100)]
Merge pull request #668 from akhodakivskiy/devtoolszoom

Fix misplaced devtools hint markers when zoomed

8 years agoFix misplaced hint markers when zoomed
Simon Lydell [Tue, 12 Jan 2016 08:13:55 +0000 (09:13 +0100)]
Fix misplaced hint markers when zoomed

Hint markers are supposed to be centered vertically on the non-covered point.
This didn't work properly when zoomed, but now does. For simplicity, that fix
removed the "make sure the marker stays within its element" constraint, which
turned out to be nice and more consistent. The hint markers are now _always_
centered vertically on the non-covered point, even for very small links.

This commit also fixes hint marker placement in the devtools when the devtools
have been independently zoomed. The above issue needed to be fixed before this
could be fixed. Fixes #667.

8 years agoImprove docs regarding adding shortcuts to custom commands
Simon Lydell [Thu, 14 Jan 2016 19:51:28 +0000 (20:51 +0100)]
Improve docs regarding adding shortcuts to custom commands

8 years agoFix marker movement when zoomed
Simon Lydell [Tue, 12 Jan 2016 18:01:27 +0000 (19:01 +0100)]
Fix marker movement when zoomed

8 years agoMerge pull request #666 from just-barcodes/master
Simon Lydell [Mon, 11 Jan 2016 20:49:13 +0000 (21:49 +0100)]
Merge pull request #666 from just-barcodes/master

Update de locale

8 years agoUpdate de locale
just-barcodes [Mon, 11 Jan 2016 20:35:38 +0000 (20:35 +0000)]
Update de locale

8 years agoFix memory leak in non-multi-process Firefox
Simon Lydell [Mon, 11 Jan 2016 18:32:02 +0000 (19:32 +0100)]
Fix memory leak in non-multi-process Firefox

Apparently, 'overflow' and 'underflow' events in web page content can be caught
in UI listeners in non-multi-process. `event.target` of 'overflow' events in the
browser UI are saved as scrollable elements, which accidentaly included web page
elements as well. Holding on to such elements after their owner tab is closed
caused a memory leak (ghost windows). This commit checks that the overflown
elements really are UI elements before saving them.

Fixes #664.

8 years agoDon't use the same hint for GitHub's diff expansion buttons
Simon Lydell [Mon, 11 Jan 2016 12:58:08 +0000 (13:58 +0100)]
Don't use the same hint for GitHub's diff expansion buttons

Links with a `data-url` attribute no longer get the same hint. They're likely
JavaScript-powered even on other sites.

8 years agoSupport the "Default FullZoom Level" extension
Simon Lydell [Mon, 11 Jan 2016 08:44:54 +0000 (09:44 +0100)]
Support the "Default FullZoom Level" extension

Fixes #665.

8 years agoFix Hints mode crash on some pages
Simon Lydell [Sun, 10 Jan 2016 13:40:12 +0000 (14:40 +0100)]
Fix Hints mode crash on some pages

`elementAtPoint` might be `null`.

8 years agoMerge branch 'master' into develop
Simon Lydell [Sat, 9 Jan 2016 17:47:02 +0000 (18:47 +0100)]
Merge branch 'master' into develop

8 years agoImprove `zf` hover support: Emit mouse events
Simon Lydell [Sat, 9 Jan 2016 17:27:01 +0000 (18:27 +0100)]
Improve `zf` hover support: Emit mouse events

8 years agoFix `:hover` clearing on click in multi-process
Simon Lydell [Sat, 9 Jan 2016 16:39:07 +0000 (17:39 +0100)]
Fix `:hover` clearing on click in multi-process

Because clicks simulated by VimFx apparently cannot be caught in non-frame
listeners (which is good), _two_ real clicks were needed to clear `:hover`. This
commit fixes that, which allowed for a nice code cleanup. Instead, a temporary
hack is used for non-multi-process to make it work there.

8 years agoMake simulated clicks look more like real clicks
Simon Lydell [Sat, 9 Jan 2016 16:23:36 +0000 (17:23 +0100)]
Make simulated clicks look more like real clicks

8 years agoFix broken `scroll_to_mark` command
Simon Lydell [Sat, 9 Jan 2016 15:01:21 +0000 (16:01 +0100)]
Fix broken `scroll_to_mark` command

Fixes #663

8 years agoMake markers move along with its element
Simon Lydell [Sat, 9 Jan 2016 14:53:35 +0000 (15:53 +0100)]
Make markers move along with its element

Fixes #503.

Imprint / Impressum