aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--background_page.html19
-rw-r--r--vimiumFrontend.js11
2 files changed, 16 insertions, 14 deletions
diff --git a/background_page.html b/background_page.html
index b862a881..48084f77 100644
--- a/background_page.html
+++ b/background_page.html
@@ -604,15 +604,20 @@
}
function registerFrame(request, sender) {
- if (request.top)
- framesForTab[sender.tab.id] = { total: request.total, frames: [] };
- else {
- framesForTab[sender.tab.id].frames.push({ id: request.frameId, area: request.area });
+ if (!framesForTab[sender.tab.id])
+ framesForTab[sender.tab.id] = { frames: [] };
- // We've seen all the frames. Time to focus the largest one.
- if (framesForTab[sender.tab.id].frames.length == framesForTab[sender.tab.id].total)
- focusLargestFrame(sender.tab.id);
+ if (request.top) {
+ focusedFrame = request.frameId;
+ framesForTab[sender.tab.id].total = request.total;
}
+
+ framesForTab[sender.tab.id].frames.push({ id: request.frameId, area: request.area });
+
+ // We've seen all the frames. Time to focus the largest one.
+ // NOTE: Disabled because it's buggy with iframes.
+ // if (framesForTab[sender.tab.id].frames.length >= framesForTab[sender.tab.id].total)
+ // focusLargestFrame(sender.tab.id);
}
function focusLargestFrame(tabId) {
diff --git a/vimiumFrontend.js b/vimiumFrontend.js
index 3b73144a..d7c429cb 100644
--- a/vimiumFrontend.js
+++ b/vimiumFrontend.js
@@ -170,10 +170,7 @@ function focusThisFrame(shouldHighlight) {
* Initialization tasks that must wait for the document to be ready.
*/
function initializeOnDomReady() {
- if (window.top == window.self)
- chrome.extension.sendRequest({ handler: "registerFrame", frameId: frameId, top: true, total: frames.length });
- else
- registerFrameIfSizeAvailable();
+ registerFrameIfSizeAvailable(window.top == window.self);
if (isEnabledForUrl)
enterInsertModeIfElementIsFocused();
@@ -183,11 +180,11 @@ function initializeOnDomReady() {
};
// This is a little hacky but sometimes the size wasn't available on domReady?
-function registerFrameIfSizeAvailable () {
+function registerFrameIfSizeAvailable (top) {
if (innerWidth != undefined && innerWidth != 0 && innerHeight != undefined && innerHeight != 0)
- chrome.extension.sendRequest({ handler: "registerFrame", frameId: frameId, area: innerWidth * innerHeight });
+ chrome.extension.sendRequest({ handler: "registerFrame", frameId: frameId, area: innerWidth * innerHeight, top: top, total: frames.length + 1 });
else
- setTimeout(registerFrameIfSizeAvailable, 100);
+ setTimeout(function () { registerFrameIfSizeAvailable(top); }, 100);
}
/*