diff --git a/src/js/background/assignManager.js b/src/js/background/assignManager.js index 2cdf23c..1a3f527 100644 --- a/src/js/background/assignManager.js +++ b/src/js/background/assignManager.js @@ -319,21 +319,33 @@ const assignManager = { async _onClickedBookmark(info) { async function _getBookmarksFromInfo(info) { - const bookmarkTreeNode = await browser.bookmarks.get(info.bookmarkId); - const firstBookmark = bookmarkTreeNode[0]; - if (firstBookmark.type === "folder") { - return await browser.bookmarks.getChildren(firstBookmark.id); + const [bookmarkTreeNode] = await browser.bookmarks.get(info.bookmarkId); + if (bookmarkTreeNode.type === "folder") { + return await browser.bookmarks.getChildren(bookmarkTreeNode.id); } else { - return bookmarkTreeNode; + return [bookmarkTreeNode]; } } const bookmarks = await _getBookmarksFromInfo(info); for (const bookmark of bookmarks) { - browser.tabs.create({ - cookieStoreId: info.menuItemId, - url: bookmark.url - }); + // Some checks on the urls from https://github.com/Rob--W/bookmark-container-tab/ thanks! + if ( !/^(javascript|place):/i.test(bookmark.url) && bookmark.type !== "folder") { + const openInReaderMode = bookmark.url.startsWith("about:reader"); + 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 ... + } catch (err) { + return err.message; + } + } + browser.tabs.create({ + cookieStoreId: info.menuItemId, + url: bookmark.url, + openInReaderMode: openInReaderMode + }); + } } }, diff --git a/src/js/background/backgroundLogic.js b/src/js/background/backgroundLogic.js index 9857f9e..7556693 100644 --- a/src/js/background/backgroundLogic.js +++ b/src/js/background/backgroundLogic.js @@ -46,9 +46,6 @@ const backgroundLogic = { donePromise = browser.contextualIdentities.create(options.params); } await donePromise; - browser.runtime.sendMessage({ - method: "refreshNeeded" - }); }, async openNewTab(options) {