// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. function getOpeningIds() { var ids = []; try { ids = JSON.parse(localStorage.openWhenComplete); } catch (e) { localStorage.openWhenComplete = JSON.stringify(ids); } return ids; } function setOpeningIds(ids) { localStorage.openWhenComplete = JSON.stringify(ids); } chrome.downloads.onChanged.addListener(function(delta) { if (!delta.state || (delta.state.current != 'complete')) { return; } var ids = getOpeningIds(); if (ids.indexOf(delta.id) < 0) { return; } chrome.downloads.open(delta.id); ids.splice(ids.indexOf(delta.id), 1); setOpeningIds(ids); }); chrome.contextMenus.onClicked.addListener(function(info, tab) { chrome.downloads.download({url: info.linkUrl}, function(downloadId) { var ids = getOpeningIds(); if (ids.indexOf(downloadId) >= 0) { return; } ids.push(downloadId); setOpeningIds(ids); }); }); chrome.contextMenus.create({ id: 'open', title: chrome.i18n.getMessage('openContextMenuTitle'), contexts: ['link'], });