From 9828d64cfceb8168fcb421b405c410975c775b43 Mon Sep 17 00:00:00 2001 From: Mike Crittenden Date: Thu, 16 Nov 2017 23:32:10 -0500 Subject: [PATCH] Add reopen closed tab action. Fixes #28 --- .eslintrc | 5 +++++ app/manifest.json | 4 +++- app/scripts.babel/background.js | 6 ++++++ app/scripts.babel/options.js | 1 + 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 .eslintrc diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..a92ce48 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,5 @@ +{ + "parserOptions": { + "ecmaVersion": 6 + } +} \ No newline at end of file diff --git a/app/manifest.json b/app/manifest.json index ca09824..3ce7f47 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -21,6 +21,7 @@ "browsingData", "storage", "bookmarks", + "sessions", "" ], "options_ui": { @@ -39,7 +40,8 @@ "scripts/contentscript.js" ], "run_at": "document_end", - "all_frames": false + "all_frames": false, + "match_about_blank": true } ] } diff --git a/app/scripts.babel/background.js b/app/scripts.babel/background.js index 1378ca6..87dc08a 100644 --- a/app/scripts.babel/background.js +++ b/app/scripts.babel/background.js @@ -63,6 +63,12 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { else if (action === 'newtab') { chrome.tabs.create({}); } + else if (action === 'reopentab') { + chrome.sessions.getRecentlyClosed({maxResults: 1}, function(sessions) { + let closedTab = sessions[0]; + chrome.sessions.restore(closedTab.sessionsId); + }); + } else if (action === 'closetab') { chrome.tabs.query({currentWindow: true, active: true}, (tab) => { chrome.tabs.remove(tab[0].id); diff --git a/app/scripts.babel/options.js b/app/scripts.babel/options.js index 3c3e1ed..c5efe5e 100644 --- a/app/scripts.babel/options.js +++ b/app/scripts.babel/options.js @@ -34,6 +34,7 @@ app.controller('ShortkeysOptionsCtrl', ['$scope', function($scope) { {value:'closetab', label: 'Close tab', group: 'Tabs'}, {value:'onlytab', label: 'Close other tabs', group: 'Tabs'}, {value:'clonetab', label: 'Duplicate tab', group: 'Tabs'}, + {value:'reopentab', label: 'Reopen last closed tab', group: 'Tabs'}, {value:'nexttab', label: 'Next tab', group: 'Tabs'}, {value:'prevtab', label: 'Previous tab', group: 'Tabs'}, {value:'firsttab', label: 'First tab', group: 'Tabs'},