aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--background_scripts/main.coffee3
-rw-r--r--content_scripts/vimium_frontend.coffee6
2 files changed, 6 insertions, 3 deletions
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee
index 0c969aed..aac63213 100644
--- a/background_scripts/main.coffee
+++ b/background_scripts/main.coffee
@@ -598,6 +598,7 @@ openOptionsPageInNewTab = ->
registerFrame = (request, sender) ->
frames = frameIdsForTab[sender.tab.id] ?= []
+ return if request.is_frameset # Don't store frameset containers; focusing them is no use.
if request.is_top
frames.unshift request.frameId
else
@@ -609,7 +610,7 @@ unregisterFrame = (request, sender) ->
if request.is_top # The whole tab is closing, so we can drop the frames list.
updateOpenTabs sender.tab
- else
+ else if not request.if_frameset
index = frames.indexOf request.frameId
return if index == -1
frames.splice index, 1
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index fd31cc62..62b1132b 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -188,14 +188,16 @@ registerFrame = ->
chrome.runtime.sendMessage(
handler: "registerFrame"
frameId: frameId
- is_top: window.top == window.self)
+ is_top: window.top == window.self
+ is_frameset: document.body.tagName == "FRAMESET")
# Unregister the frame if we're going to exit.
unregisterFrame = ->
chrome.runtime.sendMessage(
handler: "unregisterFrame"
frameId: frameId
- is_top: window.top == window.self)
+ is_top: window.top == window.self
+ is_frameset: document.body.tagName == "FRAMESET")
#
# Enters insert mode if the currently focused element in the DOM is focusable.