diff options
| author | mrmr1993 | 2015-04-24 13:53:54 +0100 |
|---|---|---|
| committer | mrmr1993 | 2015-04-24 14:39:46 +0100 |
| commit | 6446cf04c7b44c3d419dc450a73b60bcaf5cdf02 (patch) | |
| tree | a12709fe681514d543177f4a365baabb7cea95aa /content_scripts/vimium_frontend.coffee | |
| parent | 16df2200b491e2463b784b4979ba5e9528604b64 (diff) | |
| download | vimium-6446cf04c7b44c3d419dc450a73b60bcaf5cdf02.tar.bz2 | |
Always initialise event listeners early
The event listeners were registered late, potentially allowing the page
to get priority over us for key events, etc., when:
* the original URL was disabled by an exclusion rule
* the URL was changed
- without a page load (by history.pushState or modifying
location.hash), and
- the new URL isn't (completely) disabled by any exclusion rules.
This forces the event listeners to be registered even when the
current URL is disabled, to avoid this problem.
Diffstat (limited to 'content_scripts/vimium_frontend.coffee')
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index 862118bc..cc97b515 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -200,7 +200,7 @@ installListener = (element, event, callback) -> # Run this as early as possible, so the page can't register any event handlers before us. # installedListeners = false -window.initializeWhenEnabled = -> +window.initializeWithState = -> unless installedListeners # Key event handlers fire on window before they do on document. Prefer window for key events so the page # can't set handlers to grab the keys before us. @@ -555,9 +555,8 @@ checkIfEnabledForUrl = -> updateEnabledForUrlState = (response) -> {isEnabledForUrl, passKeys} = response - if isEnabledForUrl - initializeWhenEnabled() - else if HUD.isReady() + initializeWithState() + if HUD.isReady() and not isEnabledForUrl # Quickly hide any HUD we might already be showing, e.g. if we entered insert mode on page load. HUD.hide() handlerStack.bubbleEvent "registerStateChange", |
