blob: 15d41205708b346a48b7fe1cac807736476fcfab (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
root = window.Marks = {}
marks = {}
root.create = (req, sender) ->
marks[req.markName] =
tabId: sender.tab.id
scrollX: req.scrollX
scrollY: req.scrollY
chrome.tabs.onUpdated.addListener (tabId, changeInfo, tab) ->
if changeInfo.url?
removeMarksForTab tabId
chrome.tabs.onRemoved.addListener (tabId, removeInfo) ->
# XXX(jez): what about restored tabs?
removeMarksForTab tabId
removeMarksForTab = (id) ->
for markName, mark of marks
if mark.tabId is id
delete marks[markName]
root.goto = (req, sender) ->
mark = marks[req.markName]
chrome.tabs.update mark.tabId, selected: true
chrome.tabs.sendMessage mark.tabId,
name: "setScrollPosition"
scrollX: mark.scrollX
scrollY: mark.scrollY
chrome.tabs.sendMessage mark.tabId,
name: "showHUDforDuration",
text: "Jumped to global mark '#{req.markName}'"
duration: 1000
|