       selectionChangedHandlers.push(callback)
       chrome.tabs.update(toSelect.id, { selected: true })))
 
-updateOpenTabs = (tab) ->
+updateOpenTabs = (tab, deleteFrames = false) ->
   # Chrome might reuse the tab ID of a recently removed tab.
   if tabInfoMap[tab.id]?.deletor
     clearTimeout tabInfoMap[tab.id].deletor

    scrollY: null
    deletor: null
  # Frames are recreated on refresh
  delete frameIdsForTab[tab.id]

setBrowserActionIcon = (tabId,path) ->
  chrome.browserAction.setIcon({ tabId: tabId, path: path })

  tabId = sender.tab.id
  if frameIdsForTab[tabId]?
    if request.tab_is_closing
      updateOpenTabs sender.tab, true
    else
      frameIdsForTab[tabId] = frameIdsForTab[tabId].filter (id) -> id != request.frameId

