aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts
AgeCommit message (Collapse)Author
2017-10-25FF: Only apply fix to bug 1408996 when appropriatemrmr1993
2017-10-25FF: Workaround bug 1408996 in focusInput's focus listenermrmr1993
2017-10-25FF: Share |root| global proxy, re-add the globals to window on DOMLoadmrmr1993
This is a workaround for Firefox bug 1408996.
2017-10-24Add |hard| option to reload commandmrmr1993
2017-10-19Recognise aria-role=tab elements as clickablemrmr1993
In particular, these are used in the current (2017-10-19) version of YouTube. This fixes #2730.
2017-10-07Tweak #2701 (hint characters for filtered hints).Stephen Blott
Some tweaks to #2701 from @ahstro. 1. Simplify the logic for calculating `modifiers`. 2. Revert the ordering of the `event.repeat` test and `keyChar` assignment. 3. Link hint characters *only* match in upper case. 4. If there are link-hint characters (non numbers), then shifted characters are only ever hints. 5. Otherwise, revert to doing all hint text comparison in lower case.
2017-10-06Allow using capital letters as link hint charactersAnton Strömkvist
2017-10-02FF: Lazy load the Vomnibar for XML documentsmrmr1993
Injecting HTML into XML documents on Firefox breaks the rendering (collapsing it into plain text). By not loading it until explicitly requested, we can avoid this breakage (at least, until a user triggers some of our UI manually).
2017-09-14Fix #2642.Stephen Blott
Fixes #2642.
2017-09-12Use browser.runtime.getBrowserInfo to identify Firefoxmrmr1993
2017-08-18Check whether events are trusted before executing listenersmrmr1993
2017-05-17Consume keyboard events for marks.Stephen Blott
We were leaking both the `keypress` and the `keyup` events when marks are created and used.
2017-05-08Update linear gradient syntax to avoid deprecationJesper Nellemann Jakobsen
This updated syntax avoids the following deprecation warning in Chrome Canary v60.0.3090.0: ```[Deprecation] -webkit-gradient is deprecated. Please use linear-gradient or radial-gradient instead.``` This syntax is also supported in Firefox (and [all other modern browsers](https://caniuse.com/#feat=css-gradients)), which could help transitioning the Firefox version, which is in the works.
2017-04-24Make Mode::exit idempotentmrmr1993
2017-04-22Fix global marks.Stephen Blott
This is a follow up to the move to using keydown for all events, and fixes a bug I introduced. Specifically, we were reacting to the first keydown event, which could be just the `Shift` key.
2017-04-22Refactor getSelectionType() to DOM utils.Stephen Blott
This is a no-op. It is preparatory to implementing a suitable polyfill for `selection.type` for Firefox.
2017-04-22Revert "Firefox: Fix visual mode."Stephen Blott
This reverts commit 50b117733c4f0ecf9fd507c28d2f2967b5b1404b. Reverting this. In response to comments from @mrmr1993, this is not the best way of achieving what's required.
2017-04-21Firefox: Fix visual mode.Stephen Blott
The problem with visual mode is that `@selection.type` isn't implemented in Firefox/Gecko. Here, we simulate the same effect with `anchorNode` and the length of the selection. Mention @mrmr1993.
2017-04-21Fix tab for link-hint selection.Stephen Blott
We were leaking the keydown event to the page when using TAB to select link hints (filtered hints).
2017-04-20Blur the focused iframe when restoring window focusmrmr1993
This works around FF issue 554039, which prevents window.top.focus() from working.
2017-04-18Fix <Shift> or <Ctrl> link-hint behaviour.Stephen Blott
Error was introduced by seemingly innocuous but nevertheless significant change in previous commit. Tests picked up the problem.
2017-04-18Fix filtered link hints.Stephen Blott
For filtered link hints, " " was broken; it was treated as "space".
2017-04-18Use event.code to detect/suppress keyup events.Stephen Blott
This avoids the possibility of leaking keyup events if the keys a released in a different order from that in which they were pressed. Also, replace suppressKeyupAfterEscape with this same mechanism. This fixes a bug (in master/1.59) whereby we leak the keyup event for `i` when entering insert mode. TODO: - `/`, `<Escape>` leaks a keyup event - `i` leaks a keyup event
2017-04-18Continue bubbling unmapped events.Stephen Blott
2017-04-18Do not reset key state for modifiers.Stephen Blott
2017-04-18Avoid repeating Backspace and Delete keys.Stephen Blott
2017-04-18Remove use of keyCodes entirely.Stephen Blott
event.keyCode` is depricated: - https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
2017-04-18Rework tests for all key handling on keydown.Stephen Blott
2017-04-18Remove out-of-date comment.Stephen Blott
2017-04-18Migrate marks to keydown only.Stephen Blott
2017-04-18Migrate link hints to keydown only.Stephen Blott
2017-04-18Move keyboard utils to keydown and migrate normal/visual modes.Stephen Blott
2017-04-17Clarify postFindFocus and obviously separate it from the try..catchmrmr1993
2017-04-16Rework FindMode HUD refocusing to not depend directly on the HUDmrmr1993
2017-04-16Catch errors thrown by window.find when it wraps/fails on FFmrmr1993
This does NOT fix wrapping, only catches errors
2017-04-16Fallback to storage.local if storage.sync is not availablemrmr1993
2017-03-26fix typoLuke
2017-03-22Remove and refactor mapKeyRegistery.Stephen Blott
1. Remove the use of mapKeyRegistery from the mode handler. 2. Refactor use of mapKeyRegistery keyboard utils. This is preparatory to refactoring all of the keyboard handling.
2017-03-10Use the appropriate handler for hashChangemrmr1993
2017-03-09Fix #2445 (link hints with queue broken).Stephen Blott
2017-03-04Merge pull request #2384 from gdh1995/pass-keys-on-body-lockedStephen Blott
InsertMode should not handle key events if document.body is editable
2017-02-11Don't depend on global event for Frame event listeners (FF)mrmr1993
2017-02-11Don't depend on global event for CoreScroller event listeners (FF)mrmr1993
2017-02-08Stop using non-standard event.srcElement; switch to event.targetmrmr1993
2017-01-03InsertMode should not handle key events if document.body is editablegdh1995
For example, the host JavaScript may create an "about:blank" iframe with a `content-editable` `body`, and then: * the parent frame may handle `Escape` key events by itself * but now, Vimium always grabs `Escape` events * and tries to exit `InsertMode` * although `document.body` is still current `activeElement` after `body.blur()` * as a result, neither the parent can receive and handle wanted keyevents, nor Vimium will succeed in returing back to NormalMode
2016-12-26Fix (another) infinite-scroll issue.Stephen Blott
Steps to reproduce: - Press and hold `j`. - Tab `k`. - Release `j`. The tap on `k` is uninstalling the `cancelEventListener` installed by `j`, and because we advance `@time`, the `j` stops scrolling and removes the `cancelEventListener` installed for `k`. So we end up with no `cancelEventListener` installed. The fix is to make the `cancelEventListener` specific to the scroller instance. The more fundamental problem here is that we're mixing dynamic and static state. A better approach would be to have `CoreScroller` as a class, with a new instance created for each scroll instance.
2016-12-26Guard against element.tagName not being a string.Stephen Blott
Example page: http://codeforces.com/contest/752/problem/B. There, `element.tagName` is an element with `name` `tagName` (not a string). Here, we guard against that case. Fixes #2305.
2016-12-21Don't focus non-focusable node.Stephen Blott
Try the following.... - load page - `/` - type some junk which matches nothing - `Escape` We expect to leave find mode. Instead, we have to hit escape again to get out of find mode. Here, `focusNode.focus()` is not a function.
2016-12-21Tweak #2327.Stephen Blott
2016-12-21Merge pull request #2311 from smblott-github/enterNormalModeStephen Blott
New command option to enter normal mode