From f653b5420f8c4edef1c74d32834c6a04c189c868 Mon Sep 17 00:00:00 2001 From: Kendall Werts Date: Wed, 30 Oct 2019 16:44:51 -0500 Subject: [PATCH 1/3] fixed #1564: cleanup updates requested for bookmark context menu --- src/js/background/assignManager.js | 39 ++++++++++++++++++--------- src/js/background/messageHandler.js | 2 +- src/js/options.js | 42 +++++++++-------------------- src/options.html | 8 +++--- test/browser.mock.js | 2 +- 5 files changed, 47 insertions(+), 46 deletions(-) diff --git a/src/js/background/assignManager.js b/src/js/background/assignManager.js index d5aca77..b48db75 100644 --- a/src/js/background/assignManager.js +++ b/src/js/background/assignManager.js @@ -240,19 +240,26 @@ const assignManager = { delete this.canceledRequests[options.tabId]; } },{urls: [""], types: ["main_frame"]}); - this.getPermissions(); + this.resetBookmarksMenuItem(); }, - async getPermissions() { - const {permissions} = await browser.permissions.getAll(); - permissions.includes("bookmarks") ? this.makeBookmarksMenu() : browser.contextMenus.remove(this.OPEN_IN_CONTAINER); - }, - - makeBookmarksMenu() { - this.initBookmarksMenu(); - browser.contextualIdentities.onCreated.addListener(this.contextualIdentityCreated); - browser.contextualIdentities.onUpdated.addListener(this.contextualIdentityUpdated); - browser.contextualIdentities.onRemoved.addListener(this.contextualIdentityRemoved); + async resetBookmarksMenuItem() { + const hasPermission = await browser.permissions.contains({permissions: ["bookmarks"]}); + if (this.hadBookmark === hasPermission) { + return; + } + this.hadBookmark = hasPermission; + if (hasPermission) { + this.initBookmarksMenu(); + browser.contextualIdentities.onCreated.addListener(this.contextualIdentityCreated); + browser.contextualIdentities.onUpdated.addListener(this.contextualIdentityUpdated); + browser.contextualIdentities.onRemoved.addListener(this.contextualIdentityRemoved); + } else { + this.removeBookmarksMenu(); + browser.contextualIdentities.onCreated.removeListener(this.contextualIdentityCreated); + browser.contextualIdentities.onUpdated.removeListener(this.contextualIdentityUpdated); + browser.contextualIdentities.onRemoved.removeListener(this.contextualIdentityRemoved); + } }, contextualIdentityCreated(changeInfo) { @@ -324,7 +331,7 @@ const assignManager = { if(openInReaderMode) { try { const parsed = new URL(bookmark.url); - bookmark.url = parsed.searchParams.get("url") + parsed.hash; // can't believe const lets me do this ... + bookmark.url = parsed.searchParams.get("url") + parsed.hash; } catch (err) { return err.message; } @@ -521,6 +528,14 @@ const assignManager = { icons: { "16": `img/usercontext.svg#${identity.icon}` } }); } + }, + + async removeBookmarksMenu() { + browser.contextMenus.remove(this.OPEN_IN_CONTAINER); + const identities = await browser.contextualIdentities.query({}); + for (const identity of identities) { + browser.contextMenus.remove(identity.cookieStoreId); + } } }; diff --git a/src/js/background/messageHandler.js b/src/js/background/messageHandler.js index dcd8af6..fa95181 100644 --- a/src/js/background/messageHandler.js +++ b/src/js/background/messageHandler.js @@ -11,7 +11,7 @@ const messageHandler = { switch (m.method) { case "resetBookmarksContext": - response = assignManager.getPermissions(); + response = assignManager.resetBookmarksMenuItem(); break; case "deleteContainer": response = backgroundLogic.deleteContainer(m.message.userContextId); diff --git a/src/js/options.js b/src/js/options.js index 0eb1bb5..222a5b0 100644 --- a/src/js/options.js +++ b/src/js/options.js @@ -1,39 +1,23 @@ -function requestPermissions() { +async function requestPermissions() { const checkbox = document.querySelector("#bookmarksPermissions"); if (checkbox.checked) { - browser.permissions.request({permissions: ["bookmarks"]}). - then((response) => { - if (response) { - browser.runtime.sendMessage({ method: "resetBookmarksContext" }); - } else { - checkbox.checked = false; - } - }). - catch((err) => { - return err.message; - }); + const granted = await browser.permissions.request({permissions: ["bookmarks"]}); + if (!granted) { + checkbox.checked = false; + return; + } } else { - browser.permissions.remove({permissions: ["bookmarks"]}). - then(() => { - browser.runtime.sendMessage({ method: "resetBookmarksContext" }); - }). - catch((err) => { - return err.message; - }); + await browser.permissions.remove({permissions: ["bookmarks"]}); } + browser.runtime.sendMessage({ method: "resetBookmarksContext" }); } -function restoreOptions() { - browser.permissions.getAll() - .then((permissions) => { - if (permissions.permissions.includes("bookmarks")) { - document.querySelector("#bookmarksPermissions").checked = true; - } - }). - catch((err) => { - return err.message; - }); +async function restoreOptions() { + const hasPermission = await browser.permissions.contains({permissions: ["bookmarks"]}); + if (hasPermission) { + document.querySelector("#bookmarksPermissions").checked = true; + } } diff --git a/src/options.html b/src/options.html index 84f7353..1dcdd9b 100644 --- a/src/options.html +++ b/src/options.html @@ -2,13 +2,15 @@ - +
- - +

This setting allows you to open a bookmark or folder of bookmarks in a container.

diff --git a/test/browser.mock.js b/test/browser.mock.js index fbff362..ad52c3d 100644 --- a/test/browser.mock.js +++ b/test/browser.mock.js @@ -93,7 +93,7 @@ module.exports = () => { getURL: sinon.stub().returns("moz-extension://multi-account-containers/confirm-page.html") }, permissions: { - getAll: sinon.stub().returns({"permissions": ["bookmarks"]}) + contains: sinon.stub().returns(true) } }; From 645fb6832c88453edf91c9941fc48f13cec019be Mon Sep 17 00:00:00 2001 From: dnahol Date: Sat, 2 Nov 2019 22:49:31 -0700 Subject: [PATCH 2/3] fix 'License' typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 92aec9c..e85c870 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,6 @@ Finally, we also publish the release to GitHub for those followers. Facebook & Twitter icons CC-Attrib https://fairheadcreative.com. -- [Licence](./LICENSE.txt) +- [License](./LICENSE.txt) - [Contributing](./CONTRIBUTING.md) - [Code Of Conduct](./CODE_OF_CONDUCT.md) From b0661f79aac0d47be35b20b951f24d6454c4b53f Mon Sep 17 00:00:00 2001 From: revealtheweb Date: Tue, 22 Oct 2019 11:55:59 +0100 Subject: [PATCH 3/3] fix odd edit arrow alignment --- src/css/popup.css | 17 ++++++++++------- src/popup.html | 5 +++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/css/popup.css b/src/css/popup.css index 5f45f10..d5f3295 100644 --- a/src/css/popup.css +++ b/src/css/popup.css @@ -754,21 +754,24 @@ span ~ .panel-header-text { background: var(--primary-action-color); block-size: 100%; color: #fff; - display: flex; - flex: 1; + display: inline-block; justify-content: center; + padding-block-start: 6px; + padding-inline-start: 30%; } -.exit-edit-mode-link::before { - background: url('/img/container-arrow.svg') no-repeat; +.edit-containers-panel-footer { + background: var(--primary-action-color); +} + +.exit-edit-mode-link img { block-size: 16px; - content: ""; - display: block; + display: inline; filter: grayscale(100%) brightness(5); - float: left; inline-size: 16px; margin-inline-end: 5px; transform: scaleX(-1); + vertical-align: bottom; } .delete-container-confirm { diff --git a/src/popup.html b/src/popup.html index 4cd8219..cf9878f 100644 --- a/src/popup.html +++ b/src/popup.html @@ -160,8 +160,9 @@ + + Exit Edit Mode +