| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Direct keyboard access to custom-search engines via keyword flag
|
|
For ...
map s Vomnibar.activate keyword=g
... we verify that "g" is indeed a custom search-engine keyword before
setting it. If it is not, we output a console.log message and launch a
vanilla vomnibar. (An alternative would be to bail.)
|
|
This will allow us to use the same search-engine parsing code in the
background page and in content scripts.
|
|
|
|
The Settings object used by the background page now uses 1 of 3 caches,
depending on the context it is available in:
* localStorage - in the background page
* a copy of localStorage - in non-background extension pages
(options.html, popup.html, etc.)
* an empty object - in all other pages (where localStorage doesn't point
to the extension's localStorage object).
For any extension page which is *not* the background page, a copy of
localStorage is used instead of true localStorage:
* Once localStorage is updated by one background page, the others can
only see the updated copy.
- Pages with an updated cache can't tell which changes are new, and so
don't know which postUpdateHooks to run.
* By copying localStorage's contents into a new object, extension pages
can still access settings synchronously.
- This is especially important to options.html and popup.html; they
will not work without it.
|
|
|
|
|
|
Fix for #1554.
|
|
Conflicts:
background_scripts/completion.coffee
|
|
|
|
A custom search engine like this...
i: https://www.google.ie/search?q=%s&num=30&newwindow=1&biw=1918&bih=1015&tbm=isch Google image search
Should not match a URL like this...
https://www.google.ie/search?q=bbc+sport
|
|
|
|
|
|
If we go with this and #1662, then we can share the utility.
|
|
Change the implementation of SimpleCache such that it does not rely upon
timers. The problem with times is that they retain a reference to the
object even if Vimium itself loses all references. This approach seems
simpler, and perfectly adequate for our purposes.
|
|
|
|
|
|
|
|
|
|
|
|
This revamps how search-engine configuration is handled, and revises
some rather strange legacy code.
|
|
|
|
|
|
|
|
|
|
|
|
SimpleCache should reset the timer very time it's rotated (including
when the allowed number of entries is exceeded.
|
|
This is @mrmr9393's suggestion from #1636. It mimic's Chrome's behaviour
when a javascript: URI is enetered into the omnibox (or clicked).
Fixes #1611.
|
|
|
|
|
|
Including:
- Make completers classes. That way, we may be able to get better
code reuse.
|
|
|
|
|
|
|
|
If an element with style="display: inline; font-size: 0px;" surrounds
another element with style="display: inline; font-size: apx;", where a
is non-zero, then the inner element and its contents will be visible.
However, the outer element will register height=0 in its clientRects,
which previously caused us to reject these elements. This changes the
behaviour to handle this case correctly.
|
|
This requires passing of an extra truthy argument in order to access the
(generally) unexpected behaviour of sometimes returning the rects of
child elements. All locations in the code that *actually* wanted this
behaviour have been updated to continue using it.
Also add a comment about the unexpected behaviour in the function
description.
|
|
Elements with css `display: none;` never have client rects.
|
|
Conflicts:
background_scripts/main.coffee
content_scripts/vimium_frontend.coffee
|
|
|
|
|
|
|
|
Mainly fix the indentation on comments. Also tweak wording a bid.
|
|
|
|
This only effects link hints with "Use the link's name and numbers for
link-hint filtering" enabled.
We have been matching the *entire text content* of each link-hint
element.
With two (or more) hints, and with one of the elements a descendent of
the other, we have been using the entire text content of the outer node
(which includes the text content of the inner node). This leads to odd
situations where the inner element cannot be selected just by typing its
text, because its text is a substring of the outer element's text.
For example, on Google calendar, the "Today" button shows up as two
hints, one inside the other. Typing "today" never disambiguates the
hint. You always have to hit enter.
There's another nasty example on feedly, where an outer container is
clickable, but its text contains all of the (many) texts of the (many)
contained links. So the hint always has to be selected manually.
Here, when generating the text for an element, we exclude the texts from
any descendent node which has already been considered.
|
|
This restores behaviour to how it was at commit
7cedc5d2481f61f4b0d1cbf99fbd203bb5c68b54.
|
|
|
|
|