From 10f73cf5615a6e7f5a22285cf02ed49a02d64d53 Mon Sep 17 00:00:00 2001 From: Markus Stefanko Date: Mon, 5 Aug 2019 14:12:43 +0700 Subject: [PATCH] switched to browser api and 5.0.0 --- lib/Tab.js | 4 +- lib/TabManager.js | 56 +++++++++++++-------------- lib/TabOptions.js | 6 +-- lib/TabOptionsFirefox.js | 2 +- lib/Window.js | 10 ++--- lib/background.js | 82 ++++++++++++++++++++-------------------- manifest-firefox.json | 2 +- manifest.json | 2 +- 8 files changed, 82 insertions(+), 82 deletions(-) diff --git a/lib/Tab.js b/lib/Tab.js index c9dd6a13..f067c88c 100644 --- a/lib/Tab.js +++ b/lib/Tab.js @@ -57,8 +57,8 @@ e.preventDefault(); this.props.select(this.props.tab.id); } else { - chrome.tabs.update(this.props.tab.id, { active: true }); - chrome.windows.update(this.props.window.id, { focused: true }); + browser.tabs.update(this.props.tab.id, { active: true }); + browser.windows.update(this.props.window.id, { focused: true }); } return false; }, diff --git a/lib/TabManager.js b/lib/TabManager.js index fb04fdae..ae358bf0 100644 --- a/lib/TabManager.js +++ b/lib/TabManager.js @@ -5,7 +5,7 @@ if (navigator.userAgent.search("Firefox") > -1) { } else { - chrome.permissions.contains({ + browser.permissions.contains({ permissions: ['system.display'] }, function (result) { if (result) { @@ -41,7 +41,7 @@ if (typeof localStorage["badge"] === "undefined") localStorage["badge"] = "1"; if (typeof localStorage["hideWindows"] === "undefined") localStorage["hideWindows"] = "0"; if (typeof localStorage["filter-tabs"] === "undefined") localStorage["filter-tabs"] = "0"; - if (typeof localStorage["version"] === "undefined") localStorage["version"] = "4.9.9"; + if (typeof localStorage["version"] === "undefined") localStorage["version"] = "5.0.0"; layout = localStorage["layout"]; tabLimit = JSON.parse(localStorage["tabLimit"]); @@ -240,14 +240,14 @@ }, componentDidMount: function componentDidMount() { - chrome.windows.onCreated.addListener(this.update.bind(this)); - chrome.windows.onRemoved.addListener(this.update.bind(this)); - chrome.tabs.onCreated.addListener(this.update.bind(this)); - chrome.tabs.onUpdated.addListener(this.update.bind(this)); - chrome.tabs.onMoved.addListener(this.update.bind(this)); - chrome.tabs.onDetached.addListener(this.update.bind(this)); - chrome.tabs.onRemoved.addListener(this.update.bind(this)); - chrome.tabs.onReplaced.addListener(this.update.bind(this)); + browser.windows.onCreated.addListener(this.update.bind(this)); + browser.windows.onRemoved.addListener(this.update.bind(this)); + browser.tabs.onCreated.addListener(this.update.bind(this)); + browser.tabs.onUpdated.addListener(this.update.bind(this)); + browser.tabs.onMoved.addListener(this.update.bind(this)); + browser.tabs.onDetached.addListener(this.update.bind(this)); + browser.tabs.onRemoved.addListener(this.update.bind(this)); + browser.tabs.onReplaced.addListener(this.update.bind(this)); this.refs.root.focus(); this.focusRoot(); setTimeout(function () { @@ -344,7 +344,7 @@ this.forceUpdate(); }, rateExtension: function rateExtension() { - chrome.tabs.create({ url: 'https://chrome.google.com/webstore/detail/tab-manager-plus-for-chro/cnkdjjdmfiffagllbiiilooaoofcoeff' }); + browser.tabs.create({ url: 'https://chrome.google.com/webstore/detail/tab-manager-plus-for-chro/cnkdjjdmfiffagllbiiilooaoofcoeff' }); this.forceUpdate(); }, toggleOptions: function toggleOptions() { @@ -352,7 +352,7 @@ this.forceUpdate(); }, update: function update() { - chrome.windows.getAll({ populate: true }, function (windows) { + browser.windows.getAll({ populate: true }, function (windows) { windows.sort(function (a, b) { var windows = []; if (!!localStorage["windowAge"]) { @@ -393,32 +393,32 @@ var tabs = Object.keys(this.state.selection).map(function (id) {return _this2.state.tabsbyid[id];}); if (tabs.length) { for (var i = 0; i < tabs.length; i++) { - chrome.tabs.remove(tabs[i].id); + browser.tabs.remove(tabs[i].id); } } else { - chrome.tabs.query({ currentWindow: true, active: true }, function (t) { + browser.tabs.query({ currentWindow: true, active: true }, function (t) { if (t && t.length > 0) { - chrome.tabs.remove(t[0].id); + browser.tabs.remove(t[0].id); } }); } this.forceUpdate(); }, deleteTab: function deleteTab(tabId) { - chrome.tabs.remove(tabId); + browser.tabs.remove(tabId); }, addWindow: function addWindow() {var _this3 = this; var count = Object.keys(this.state.selection).length; var tabs = Object.keys(this.state.selection).map(function (id) {return _this3.state.tabsbyid[id];}); if (count == 0) { - chrome.windows.create({}); + browser.windows.create({}); } else if (count == 1) { - chrome.runtime.getBackgroundPage(function callback(tabs, backgroundPage) { + browser.runtime.getBackgroundPage(function callback(tabs, backgroundPage) { backgroundPage.focusOnTabAndWindow(tabs[0]); }.bind(null, tabs)); } else { - chrome.runtime.getBackgroundPage(function callback(tabs, backgroundPage) { + browser.runtime.getBackgroundPage(function callback(tabs, backgroundPage) { backgroundPage.createWindowWithTabs(tabs); }.bind(null, tabs)); } @@ -428,13 +428,13 @@ if (tabs.length) { if (tabs[0].pinned) tabs.reverse(); for (var i = 0; i < tabs.length; i++) { - chrome.tabs.update(tabs[i].id, { pinned: !tabs[0].pinned }); + browser.tabs.update(tabs[i].id, { pinned: !tabs[0].pinned }); } } else { - chrome.tabs.query({ currentWindow: true, active: true }, function (t) { + browser.tabs.query({ currentWindow: true, active: true }, function (t) { if (t && t.length > 0) { - chrome.tabs.update(t[0].id, { pinned: !t[0].pinned }); + browser.tabs.update(t[0].id, { pinned: !t[0].pinned }); } }); } @@ -652,8 +652,8 @@ for (var i = 0; i < tabs.length; i++) { (function (t) { - chrome.tabs.move(t.id, { windowId: tab.windowId, index: index }, function () { - chrome.tabs.update(t.id, { pinned: t.pinned }); + browser.tabs.move(t.id, { windowId: tab.windowId, index: index }, function () { + browser.tabs.update(t.id, { pinned: t.pinned }); }); })(tabs[i]); } @@ -663,8 +663,8 @@ var tabs = Object.keys(this.state.selection).map(function (id) {return _this6.state.tabsbyid[id];}); for (var i = 0; i < tabs.length; i++) { (function (t, windowId) { - chrome.tabs.move(t.id, { windowId: windowId, index: -1 }, function () { - chrome.tabs.update(t.id, { pinned: t.pinned }); + browser.tabs.move(t.id, { windowId: windowId, index: -1 }, function () { + browser.tabs.update(t.id, { pinned: t.pinned }); }); })(tabs[i], windowId); } @@ -753,7 +753,7 @@ this.state.badge = !this.state.badge; localStorage["badge"] = this.state.badge ? "1" : "0"; this.badgeText(); - chrome.runtime.getBackgroundPage(function callback(backgroundPage) { + browser.runtime.getBackgroundPage(function callback(backgroundPage) { backgroundPage.updateTabCount(); }); this.forceUpdate(); @@ -764,7 +764,7 @@ }, toggleHide: function toggleHide() { - chrome.permissions.request({ permissions: ["system.display"] }, function (granted) { + browser.permissions.request({ permissions: ["system.display"] }, function (granted) { if (granted) { this.state.hideWindows = !this.state.hideWindows; } else { diff --git a/lib/TabOptions.js b/lib/TabOptions.js index b5276743..1d4e01d1 100644 --- a/lib/TabOptions.js +++ b/lib/TabOptions.js @@ -5,7 +5,7 @@ logo: function logo() { var logo = [ React.DOM.img({ src: "images/browsers.svg", style: { "max-width": "3rem" } }), - React.DOM.h2({}, "Tab Manager Plus 4.9.9")]; + React.DOM.h2({}, "Tab Manager Plus 5.0.0")]; return React.DOM.div({ className: "logo-options" }, React.DOM.div({ className: "logo-box" }, logo)); }, @@ -193,10 +193,10 @@ return React.DOM.div({ className: "toggle-options" }, opts); }, openIncognitoOptions: function openIncognitoOptions() { - chrome.tabs.create({ url: 'chrome://extensions/?id=cnkdjjdmfiffagllbiiilooaoofcoeff' }); + browser.tabs.create({ url: 'chrome://extensions/?id=cnkdjjdmfiffagllbiiilooaoofcoeff' }); }, openShortcuts: function openShortcuts() { - chrome.tabs.create({ url: 'chrome://extensions/shortcuts' }); + browser.tabs.create({ url: 'chrome://extensions/shortcuts' }); }, licenses: function licenses() { var licenses = []; diff --git a/lib/TabOptionsFirefox.js b/lib/TabOptionsFirefox.js index ddfae65d..d3feaf4a 100644 --- a/lib/TabOptionsFirefox.js +++ b/lib/TabOptionsFirefox.js @@ -5,7 +5,7 @@ logo: function logo() { var logo = [ React.DOM.img({ src: "images/browsers.svg", style: { "max-width": "3rem" } }), - React.DOM.h2({}, "Tab Manager Plus 4.9.9")]; + React.DOM.h2({}, "Tab Manager Plus 5.0.0")]; return React.DOM.div({ className: "logo-options" }, React.DOM.div({ className: "logo-box" }, logo)); }, diff --git a/lib/Window.js b/lib/Window.js index 547bddda..3848ab20 100644 --- a/lib/Window.js +++ b/lib/Window.js @@ -183,7 +183,7 @@ }, addTab: function addTab(e) { e.stopPropagation(); - chrome.tabs.create({ windowId: this.props.window.id }); + browser.tabs.create({ windowId: this.props.window.id }); }, dragOver: function dragOver(e) { e.nativeEvent.preventDefault(); @@ -193,23 +193,23 @@ this.props.dropWindow(this.props.window.id); }, windowClick: function windowClick() { - chrome.windows.update(this.props.window.id, { + browser.windows.update(this.props.window.id, { "focused": true }, function (a) {this.props.parentUpdate();}.bind(this)); }, close: function close(e) { e.stopPropagation(); - chrome.windows.remove(this.props.window.id); + browser.windows.remove(this.props.window.id); }, minimize: function minimize(e) { e.stopPropagation(); - chrome.windows.update(this.props.window.id, { + browser.windows.update(this.props.window.id, { "state": "minimized" }, function (a) {this.props.parentUpdate();}.bind(this)); }, maximize: function maximize(e) { e.stopPropagation(); - chrome.windows.update(this.props.window.id, { + browser.windows.update(this.props.window.id, { "state": "normal" }, function (a) {this.props.parentUpdate();}.bind(this)); }, diff --git a/lib/background.js b/lib/background.js index 179eeb3b..880a4f05 100644 --- a/lib/background.js +++ b/lib/background.js @@ -6,24 +6,24 @@ function createWindowWithTabs(tabs, isIncognito) { for (var i = 0; i < tabs.length; i++) { t.push(tabs[i].id); }; - chrome.windows.create({ tabId: first.id, incognito: !!isIncognito, focused: true }, function (first, t, w) { - chrome.tabs.update(first.id, { pinned: first.pinned }); + browser.windows.create({ tabId: first.id, incognito: !!isIncognito, focused: true }, function (first, t, w) { + browser.tabs.update(first.id, { pinned: first.pinned }); if (t.length > 0) { - chrome.tabs.move(t, { windowId: w.id, index: -1 }, function (tab) { - chrome.tabs.update(tab.id, { pinned: tab.pinned }); + browser.tabs.move(t, { windowId: w.id, index: -1 }, function (tab) { + browser.tabs.update(tab.id, { pinned: tab.pinned }); }); } - chrome.windows.update(w.id, { focused: true }); + browser.windows.update(w.id, { focused: true }); }.bind(null, first, t)); } function focusOnTabAndWindow(tab) { - chrome.windows.update(tab.windowId, { focused: true }); + browser.windows.update(tab.windowId, { focused: true }); if (!!tab.tabId) { - chrome.tabs.update(tab.tabId, { active: true }); + browser.tabs.update(tab.tabId, { active: true }); tabActiveChanged(tab); } else { - chrome.tabs.update(tab.id, { active: true }); + browser.tabs.update(tab.id, { active: true }); tabActiveChanged({ tabId: tab.id, windowId: tab.windowId }); } } @@ -36,13 +36,13 @@ function updateTabCount() { } if (run) { - chrome.tabs.query({}, function (result) { + browser.tabs.query({}, function (result) { var count = 0; if (!!result && !!result.length) { count = result.length; } - chrome.browserAction.setBadgeText({ text: count + "" }); - chrome.browserAction.setBadgeBackgroundColor({ color: "purple" }); + browser.browserAction.setBadgeText({ text: count + "" }); + browser.browserAction.setBadgeBackgroundColor({ color: "purple" }); var toRemove = []; if (!!window.tabsActive) { for (var i = 0; i < window.tabsActive.length; i++) { @@ -65,7 +65,7 @@ function updateTabCount() { }; }); } else { - chrome.browserAction.setBadgeText({ text: "" }); + browser.browserAction.setBadgeText({ text: "" }); } } @@ -118,35 +118,35 @@ function tabActiveChanged(tab) { function setupListeners() { - chrome.browserAction.setPopup({ + browser.browserAction.setPopup({ popup: "popup.html" }); - chrome.tabs.onCreated.removeListener(tabAdded); - chrome.tabs.onUpdated.removeListener(tabRemoved); - chrome.tabs.onRemoved.removeListener(tabRemoved); - chrome.tabs.onReplaced.removeListener(tabRemoved); - chrome.tabs.onDetached.removeListener(tabRemoved); - chrome.tabs.onAttached.removeListener(tabRemoved); - chrome.tabs.onActivated.removeListener(tabActiveChanged); - chrome.windows.onFocusChanged.removeListener(windowFocus); - chrome.windows.onCreated.removeListener(windowCreated); - chrome.windows.onRemoved.removeListener(windowRemoved); - - chrome.tabs.onCreated.addListener(tabAdded); - chrome.tabs.onUpdated.addListener(tabRemoved); - chrome.tabs.onRemoved.addListener(tabRemoved); - chrome.tabs.onReplaced.addListener(tabRemoved); - chrome.tabs.onDetached.addListener(tabRemoved); - chrome.tabs.onAttached.addListener(tabRemoved); - chrome.tabs.onActivated.addListener(tabActiveChanged); - chrome.windows.onFocusChanged.addListener(windowFocus); - chrome.windows.onCreated.addListener(windowCreated); - chrome.windows.onRemoved.addListener(windowRemoved); + browser.tabs.onCreated.removeListener(tabAdded); + browser.tabs.onUpdated.removeListener(tabRemoved); + browser.tabs.onRemoved.removeListener(tabRemoved); + browser.tabs.onReplaced.removeListener(tabRemoved); + browser.tabs.onDetached.removeListener(tabRemoved); + browser.tabs.onAttached.removeListener(tabRemoved); + browser.tabs.onActivated.removeListener(tabActiveChanged); + browser.windows.onFocusChanged.removeListener(windowFocus); + browser.windows.onCreated.removeListener(windowCreated); + browser.windows.onRemoved.removeListener(windowRemoved); + + browser.tabs.onCreated.addListener(tabAdded); + browser.tabs.onUpdated.addListener(tabRemoved); + browser.tabs.onRemoved.addListener(tabRemoved); + browser.tabs.onReplaced.addListener(tabRemoved); + browser.tabs.onDetached.addListener(tabRemoved); + browser.tabs.onAttached.addListener(tabRemoved); + browser.tabs.onActivated.addListener(tabActiveChanged); + browser.windows.onFocusChanged.addListener(windowFocus); + browser.windows.onCreated.addListener(windowCreated); + browser.windows.onRemoved.addListener(windowRemoved); updateTabCountDebounce(); } -chrome.windows.getAll({ populate: true }, function (windows) { +browser.windows.getAll({ populate: true }, function (windows) { localStorage["windowAge"] = JSON.stringify([]); if (!!windows && windows.length > 0) { windows.sort(function (a, b) { @@ -240,17 +240,17 @@ function hideWindows(windowId) { return; } - chrome.permissions.contains({ + browser.permissions.contains({ permissions: ['system.display'] }, function (windowId, result) { if (result) { // The extension has the permissions. - chrome.system.display.getInfo(function (windowId, displaylayouts) { + browser.system.display.getInfo(function (windowId, displaylayouts) { window.displayInfo = [];var _iteratorNormalCompletion = true;var _didIteratorError = false;var _iteratorError = undefined;try { for (var _iterator = displaylayouts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {var displaylayout = _step.value; window.displayInfo.push(displaylayout.bounds); }} catch (err) {_didIteratorError = true;_iteratorError = err;} finally {try {if (!_iteratorNormalCompletion && _iterator.return) {_iterator.return();}} finally {if (_didIteratorError) {throw _iteratorError;}}} - chrome.windows.getAll({ populate: true }, function (windowId, windows) { + browser.windows.getAll({ populate: true }, function (windowId, windows) { var monitor = -1; for (var i = windows.length - 1; i >= 0; i--) { if (windows[i].id == windowId) { @@ -266,7 +266,7 @@ function hideWindows(windowId) { for (var i = windows.length - 1; i >= 0; i--) { if (windows[i].id != windowId) { if (is_in_bounds(windows[i], window.displayInfo[monitor])) { - chrome.windows.update(windows[i].id, { + browser.windows.update(windows[i].id, { "state": "minimized" }); } } @@ -302,7 +302,7 @@ function windowActive(windowId) { windows.unshift(windowId); localStorage["windowAge"] = JSON.stringify(windows); - // chrome.windows.getLastFocused({ populate: true }, function (w) { + // browser.windows.getLastFocused({ populate: true }, function (w) { // for (var i = 0; i < w.tabs.length; i++) { // var tab = w.tabs[i]; // if (tab.active == true) { @@ -317,7 +317,7 @@ function windowActive(windowId) { // console.log(windows); } -chrome.commands.onCommand.addListener(function (command) { +browser.commands.onCommand.addListener(function (command) { if (command == "switch_to_previous_active_tab") { if (!!window.tabsActive && window.tabsActive.length > 1) { focusOnTabAndWindow(window.tabsActive[window.tabsActive.length - 2]); diff --git a/manifest-firefox.json b/manifest-firefox.json index a60faed5..3d534aaf 100644 --- a/manifest-firefox.json +++ b/manifest-firefox.json @@ -1,7 +1,7 @@ { "name": "Tab Manager Plus for Firefox", "short_name": "Tab Manager+", - "version": "4.9.9", + "version": "5.0.0", "manifest_version": 2, "description": "Quickly find open tabs, see all windows in one view, find duplicates and limit tabs per window. The best Tab Manager for Firefox.", "author": "stefanXO", diff --git a/manifest.json b/manifest.json index 82ee7a5f..ba71037c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "name": "Tab Manager Plus for Chrome", "short_name": "Tab Manager+", - "version": "4.9.9", + "version": "5.0.0", "manifest_version": 2, "offline_enabled": true, "description": "Quickly find open tabs, see all windows in one view, find duplicates and limit tabs per window. The best Tab Manager for Chrome.",