1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
/* 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/. */
"use strict";
var EXPORTED_SYMBOLS = ["Pocket"];
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
ChromeUtils.defineModuleGetter(
this,
"BrowserUtils",
"resource://gre/modules/BrowserUtils.jsm"
);
var Pocket = {
get site() {
return Services.prefs.getCharPref("extensions.pocket.site");
},
get listURL() {
return "https://" + Pocket.site + "/firefox_learnmore?src=ff_library";
},
openList(event) {
let win = event.view;
let where = win.whereToOpenLink(event);
// Never override the current tab unless it's blank:
if (where == "current" && !win.gBrowser.selectedTab.isEmpty) {
where = "tab";
}
win.openTrustedLinkIn(this.listURL, where);
},
/**
* Functions related to the Pocket panel UI.
*/
onShownInPhotonPageActionPanel(panel, iframe) {
let window = panel.ownerGlobal;
window.pktUI.setPhotonPageActionPanelFrame(iframe);
Pocket._initPanelView(window);
},
_initPanelView(window) {
let document = window.document;
let libraryButton = document.getElementById("library-button");
if (libraryButton) {
BrowserUtils.setToolbarButtonHeightProperty(libraryButton);
}
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) {
if (this.pageAction) {
this._urlToSave = url;
this._titleToSave = title;
this.pageAction.doCommand(browser.ownerGlobal);
}
},
get pageAction() {
return this._pageAction;
},
set pageAction(pageAction) {
return (this._pageAction = pageAction);
},
_pageAction: null,
};
|