aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJez Ng2012-09-03 16:36:53 -0400
committerJez Ng2012-09-03 16:38:00 -0400
commit90dfd91ffdaec6539950b2f9229cfabfd186bb1e (patch)
treece0f5d3df591af7069087ec464e7764d1b67059b
parent232ac81def865fd59453f2e80b09f724f42c1ea9 (diff)
downloadvimium-90dfd91ffdaec6539950b2f9229cfabfd186bb1e.tar.bz2
Fixes and cleanups for main.coffee.
-rw-r--r--background_scripts/main.coffee93
1 files changed, 33 insertions, 60 deletions
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee
index 24e7dc79..5b1ed4f7 100644
--- a/background_scripts/main.coffee
+++ b/background_scripts/main.coffee
@@ -200,15 +200,6 @@ filterCompleter = (args, port) ->
queryTerms = if (args.query == "") then [] else args.query.split(" ")
completers[args.name].filter(queryTerms, (results) -> port.postMessage({ id: args.id, results: results }))
-#
-# Used by everyone to get settings from local storage.
-#
-getSettingFromLocalStorage = (setting) ->
- if (localStorage[setting] != "" && !localStorage[setting])
- defaultSettings[setting]
- else
- localStorage[setting]
-
getCurrentTimeInSeconds = -> Math.floor((new Date()).getTime() / 1000)
chrome.tabs.onSelectionChanged.addListener((tabId, selectionInfo) ->
@@ -261,6 +252,16 @@ BackgroundCommands =
chrome.tabs.getSelected(null, (tab) ->
chrome.tabs.sendRequest(tab.id,
{ name: "toggleHelpDialog", dialogHtml: helpDialogHtml(), frameId:frameId }))
+ nextFrame: (count) ->
+ chrome.tabs.getSelected(null, (tab) ->
+ frames = framesForTab[tab.id].frames
+ curr_index = getCurrFrameIndex(frames)
+
+ # TODO: Skip the "top" frame (which doesn't actually have a <frame> tag),
+ # since it exists only to contain the other frames.
+ new_index = (curr_index + count) % frames.length
+
+ chrome.tabs.sendRequest(tab.id, { name: "focusFrame", frameId: frames[new_index].id, highlight: true }))
# Selects a tab before or after the currently selected tab.
# - direction: "next", "previous", "first" or "last".
@@ -526,35 +527,8 @@ registerFrame = (request, sender) ->
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)
-
-focusLargestFrame = (tabId) ->
- mainFrameId = null
- mainFrameArea = 0
-
- for frame in framesForTab[tabId]
- if (frame.area > mainFrameArea)
- mainFrameId = frame.id
- mainFrameArea = frame.area
-
- chrome.tabs.sendRequest(tabId, { name: "focusFrame", frameId: mainFrameId, highlight: false })
-
handleFrameFocused = (request, sender) -> focusedFrame = request.frameId
-nextFrame = (count) ->
- chrome.tabs.getSelected(null, (tab) ->
- frames = framesForTab[tab.id].frames
- curr_index = getCurrFrameIndex(frames)
-
- # TODO: Skip the "top" frame (which doesn't actually have a <frame> tag),
- # since it exists only to contain the other frames.
- new_index = (curr_index + count) % frames.length
-
- chrome.tabs.sendRequest(tab.id, { name: "focusFrame", frameId: frames[new_index].id, highlight: true }))
-
getCurrFrameIndex = (frames) ->
for i in [0...frames.length]
return i if frames[i].id == focusedFrame
@@ -583,28 +557,27 @@ sendRequestHandlers =
selectSpecificTab: selectSpecificTab,
refreshCompleter: refreshCompleter
-init = ->
- Commands.clearKeyMappingsAndSetDefaults()
-
- if Settings.has("keyMappings")
- Commands.parseCustomKeyMappings(Settings.get("keyMappings"))
-
- populateValidFirstKeys()
- populateSingleKeyCommands()
- if shouldShowUpgradeMessage()
- sendRequestToAllTabs({ name: "showUpgradeNotification", version: currentVersion })
-
- # Ensure that openTabs is populated when Vimium is installed.
- chrome.windows.getAll({ populate: true }, (windows) ->
- for window in windows
- for tab in window.tabs
- updateOpenTabs(tab)
- createScrollPositionHandler = ->
- (response) -> updateScrollPosition(tab, response.scrollX, response.scrollY) if response?
- chrome.tabs.sendRequest(tab.id, { name: "getScrollPosition" }, createScrollPositionHandler()))
-
-
-init()
-
# Convenience function for development use.
-runTests = -> open(chrome.extension.getURL('test_harnesses/automated.html'))
+window.runTests = -> open(chrome.extension.getURL('test_harnesses/automated.html'))
+
+#
+# Begin initialization.
+#
+Commands.clearKeyMappingsAndSetDefaults()
+
+if Settings.has("keyMappings")
+ Commands.parseCustomKeyMappings(Settings.get("keyMappings"))
+
+populateValidFirstKeys()
+populateSingleKeyCommands()
+if shouldShowUpgradeMessage()
+ sendRequestToAllTabs({ name: "showUpgradeNotification", version: currentVersion })
+
+# Ensure that openTabs is populated when Vimium is installed.
+chrome.windows.getAll({ populate: true }, (windows) ->
+ for window in windows
+ for tab in window.tabs
+ updateOpenTabs(tab)
+ createScrollPositionHandler = ->
+ (response) -> updateScrollPosition(tab, response.scrollX, response.scrollY) if response?
+ chrome.tabs.sendRequest(tab.id, { name: "getScrollPosition" }, createScrollPositionHandler()))