aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts
AgeCommit message (Collapse)Author
2015-03-07Reload content scripts after install/update.Stephen Blott
This is @mrmr1993's work from #1041. Reload content scripts when vimium is installed or updates. (@mrmr1993: The automatic merge was really messy (or, at least, I couldn't figure out what was going on). Since the bulk of #1041 was actually quite compact, I took the liberty of just copying it in. Hope you don't mind.)
2015-03-07Merge branch 'fix-vomnibar-visibility'Stephen Blott
2015-03-07Add HTML5 date and tel as targets for focusInput.Stephen Blott
2015-03-06Remove need for short delay to prevent vomnibar flicker.Stephen Blott
This delivers a "hidden" massage to the vomnibar after the vomnibar has been hiddent in the host page. The vomnibar only performs whatever action is required when it receives this "hidden" message.
2015-03-06Correctly remove event listeners.Stephen Blott
Fix oversight from #1517.
2015-03-06Merge branch 'hide-vomnibar-on-focus'Stephen Blott
2015-03-06Merge branch 'fix-focus-html5-inputs'Stephen Blott
2015-03-05Hide vomnibar if host frame regains focus.Stephen Blott
Fixes #1506. This takes the opposite approach to #1511. Instead of hiding the vomnibar when it blurs, we hide it when it's host frame is focused.
2015-03-03Do not include duplicated texts in link hints.Stephen Blott
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.
2015-02-28Fix exception on options page.Stephen Blott
This adds another handler which is delivered to the options page, but for which there is no handler. This was causing an exception on the background page (console).
2015-02-23Ensure inconito mode flag and find-mode-history are initialised.Stephen Blott
.. and don't forget to actually use the incognitomode flag in the front end.
2015-02-23Ensure inconito mode flag and find-mode-history are initialised.Stephen Blott
See #1495.
2015-02-19Stop trying to place the cursor at the end of an input on focusmrmr1993
2015-02-16Deactivate global insert mode on focus.Stephen Blott
Rationale. There are really two insert modes: the one we activate with "i" and the one that's activated when a focusable element receives the focus. This makes that distinction clearer. And, in particular, it means that, when the latter type of insert mode is active, we *know* that gloabl insert mode is *not* active.
2015-02-14Merge branch 'grab-back-focus'Stephen Blott
2015-02-14Grab back focus: use settings.addEventListener "load".Stephen Blott
Doh! I didn't know this existed.
2015-02-13Add callback to runtime message.Stephen Blott
The lack of a callback here was causing errors when loading (at least) the options page.
2015-02-13Tweaks for grab-back-focus.Stephen Blott
- Fix incorrect camel case in option name. - Better text on options page. - Loud comments re. using option directly from chrome.storage.sync.
2015-02-12Fix regexp performFind/performBackwardsFindmrmr1993
2015-02-12Grab back focus...Stephen Blott
- add new option "GrabBackFocus" - use chrome.storage.sync.get() to get option value - avoid race conditions on load - fix tests
2015-02-12Initial grab-back-focus.Stephen Blott
If an input grabs the focus before the user interacts with the page (keydown, mousedown), then grab back the focus. TBD: 1 This requires a new option, which has not yet been added. For now, it's just permanently enabled. 2 There's a race condition between the setting being loaded and the element being focused. Currently, this defaults to being activated. This is the wrong thing to do. The solution is probably to use chrome.storage for the setting. 3 The tests fail (because of TBD-2, above).
2015-02-11Fix error on yank/scroll.Stephen Blott
When we exit visual mode with "y"... "y" is a command for visual mode. Currently it clears the selection. Because it's executed as a command, scrollIntoView is called after running the command. Because the selection is cleared, scrollIntoView found nothing to scroll, and was creating an error. So we need to check whether there's anything to scroll into view, before trying to scroll it. Also fix mis-named file in the tests.
2015-02-09Tweak yank-URL...Stephen Blott
- Show the URL in the HUD (improved quality of feedback). - Change HUD delay from one second to two seconds - I find one second too short for the message to be useful. It's often gone before I look to check. And two seconds (hopefully) isn't so long as to be annoying.
2015-02-09Merge branch 'find-mode-history-for-incognito-mode'Stephen Blott
Conflicts: background_scripts/main.coffee
2015-02-09Minor refactoring for find-mode history.Stephen Blott
2015-02-09Merge branch 'visual-and-edit-modes'Stephen Blott
Conflicts: background_scripts/main.coffee content_scripts/vimium_frontend.coffee lib/keyboard_utils.coffee
2015-02-09Visual/edit modes: disable mode debugging for merge to master.Stephen Blott
2015-02-09Propagate queries to incognito-mode tabs.Stephen Blott
2015-02-09Initial find-mode history via chrome.storage.Stephen Blott
2015-02-08Proper find-mode history for incognito mode.Stephen Blott
Approach: - We never save the find mode history from an incognito tab in the settings, instead they are saved in the tabMapInfo for each currently-active incognito tab. - When a new incognito tab (or page, after navigation) starts, we scan the tabMapInfo looking for the find-mode history of any active tab. In this way, the history is shared between incognito tabs, but discarded once the last incognito tab closes.
2015-02-08Push fond-mode queries from incognito-mode tabs to other incognito tabs.Stephen Blott
2015-02-08Find-mode history now incorporates ingognito mode.Stephen Blott
2015-02-08Handle incognito mode for find-mode history.Stephen Blott
The approach is to maintain the "current" history in every tab, adding queries from other normal tabs in all tabs, but only saving queries from non-incognito mode tabs. So, queries from non-incognito mode tabs propagate everywhere, whereas those from incognito tabs never leave the tab.
2015-02-08Fix error introduced in 5c155d5eab6632fda9b71713e11af299726d5204.Stephen Blott
2015-02-08Incognito mode for find history.Stephen Blott
- This commit is incomplete because, to progress, we need bc7db7473456713c8c84f324e71da93145ffa2a0.
2015-02-08Fix error introduced in 5c155d5eab6632fda9b71713e11af299726d5204.Stephen Blott
2015-02-08Fix typo/bug initialising passkeys.Stephen Blott
2015-02-08Fix typo/bug initialising passkeys.Stephen Blott
2015-02-08Refactor migration code for find-mode history.Stephen Blott
Doing the migration in a content script is dumb. Now we do it on the background page.
2015-02-08Temporary fix for obscure scrolling bug.Stephen Blott
I'm seeing a strange scrolling bug on some pages, for example, here: http://www.steephill.tv/tour-of-qatar/. Background: When we scroll, we first have to decide which element to scroll. Because of a chrome bug, we do this by testing candidate elements: scroll the element up by one px, then back down again. If it moved, then it's scrollable, and it's the element we should scroll. Bug: In some cases, the micro-scroll-up succeeds, but the subsequent micro-scroll-down fails. It's not clear how this could happen. It may be a chrome bug. In any case, as a result, we conclude that the element is not scrollable, and proceed to the next candidate. We end up finding no scrollable element, and j/k scrolling is broken. If you press-and-hold "j" or "k", you can see the repeated micro-scroll-ups. Problem: I can't reproduce this in a clean chrome account. I only see it in my live chrome instance. I've tried disabling all extensions, but the problem persists. So there's something else at play, but I haven't yet been able to track it down. Solution: This commit is a temporary workaround. We just default to scrolling document.body if we can't find anything else to scroll. Most of the time, that's the right thing to do. And it's what we would have done prior to implementing smooth scrolling. Nevertheless, it isn't a great solution... Notes: It's possible that this is related to #1117. However, users there have reported *not* seeing the micro-scrolls. So probably not. I'm not posting this as a PR, because I can't reliably reproduce the bug. However, the fix pretty much does what we did before smooth scrolling, it's almost certainly safe. So I'm just pushing this straight into master.
2015-02-06Visual/edit modes: code cleanup.Stephen Blott
- convert getCaretCoordinates from JS to CS - handle x axis in scrollIntoView - better comments throughout.
2015-02-06Merge branch 'post-modes-update'Stephen Blott
Conflicts: content_scripts/vimium_frontend.coffee
2015-02-05Visual/edit modes: Fix ae1697b6697e24c77fc852b02c760871db995a3f...Stephen Blott
which was broken.
2015-02-05Visual/edit modes: always fully remove the selection on exit from visual mode.Stephen Blott
There's considerable discussion in #1441 as to what we should do with the selection on leaving visual mode. Good arguments have been made as to why we should keep the selection. However, at this point, keep-it-simple seems like the best strategy, and wholly removing the selection (probably) provides fewer ways for the user to shoot themselves in the foot.
2015-02-05Visual/edit modes: visualmode-escape clears selection.Stephen Blott
This effectively reverts 95e086563b918364d3038f6489cc97c73fcb7180 (Escape-Escape clears selection) pending discussion of the right UX around exitng visual mode.
2015-02-04Revert "Visual/edit modes: better (?) guessing for caret mode."Stephen Blott
This reverts commit c1681fea2f2629c6bee1e27c5dfc704d77553d96.
2015-02-03Merge branch 'find-mode-history'Stephen Blott
Conflicts: content_scripts/vimium_frontend.coffee
2015-02-03Visual/edit modes: fix bug in event handling.Stephen Blott
2015-02-03Visual/edit modes: better (?) guessing for caret mode.Stephen Blott
When caret mode guesses a selection score text nodes by their visible area and the number of non-whitespace characters they contain. Choose the first non-whitespace character in the highest-scoring node. The intention is to avoid making a poor choice for the initial caret position.
2015-02-02Visual/edit modes: Escape-Escape clears selection.Stephen Blott