diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /browser/components/pocket/content/Pocket.sys.mjs | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream.tar.xz firefox-esr-upstream.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | browser/components/pocket/content/Pocket.sys.mjs | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/browser/components/pocket/content/Pocket.sys.mjs b/browser/components/pocket/content/Pocket.sys.mjs new file mode 100644 index 0000000000..25e8fccdf8 --- /dev/null +++ b/browser/components/pocket/content/Pocket.sys.mjs @@ -0,0 +1,56 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +const lazy = {}; + +ChromeUtils.defineESModuleGetters(lazy, { + CustomizableUI: "resource:///modules/CustomizableUI.sys.mjs", +}); + +export var Pocket = { + get site() { + return Services.prefs.getCharPref("extensions.pocket.site"); + }, + get listURL() { + return "https://" + Pocket.site + "/firefox_learnmore?src=ff_library"; + }, + + _initPanelView(window) { + let urlToSave = Pocket._urlToSave; + let titleToSave = Pocket._titleToSave; + Pocket._urlToSave = null; + Pocket._titleToSave = null; + // ViewShowing fires immediately before it creates the contents, + // in lieu of an AfterViewShowing event, just spin the event loop. + window.setTimeout(function () { + if (urlToSave) { + window.pktUI.tryToSaveUrl(urlToSave, titleToSave); + } else { + window.pktUI.tryToSaveCurrentPage(); + } + }, 0); + }, + + _urlToSave: null, + _titleToSave: null, + savePage(browser, url, title) { + // We want to target the top browser which has the Pocket panel UI, + // which might not be the browser saving the article. + const ownerGlobal = browser?.ownerGlobal?.top; + const ownerDocument = ownerGlobal?.document; + + if (!ownerDocument || !ownerGlobal?.PanelUI) { + return; + } + + let widget = lazy.CustomizableUI.getWidget("save-to-pocket-button"); + let anchorNode = widget.areaType + ? widget.forWindow(ownerGlobal).anchor + : ownerDocument.getElementById("PanelUI-menu-button"); + + this._urlToSave = url; + this._titleToSave = title; + ownerGlobal.PanelUI.showSubView("PanelUI-savetopocket", anchorNode); + }, +}; |