56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
/* 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);
|
|
},
|
|
};
|