Bug 1164940 - Lazily create iframe. r=jaws, a=sledru
This commit is contained in:
@@ -235,7 +235,6 @@
|
||||
|
||||
<panelview id="PanelUI-pocketView" flex="1">
|
||||
<vbox class="panel-subview-body">
|
||||
<iframe id="pocket-panel-iframe" type="content"/>
|
||||
</vbox>
|
||||
</panelview>
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ let Pocket = {
|
||||
onPanelViewShowing(event) {
|
||||
let document = event.target.ownerDocument;
|
||||
let window = document.defaultView;
|
||||
let iframe = document.getElementById('pocket-panel-iframe');
|
||||
let iframe = window.pktUI.getPanelFrame();
|
||||
|
||||
let urlToSave = Pocket._urlToSave;
|
||||
let titleToSave = Pocket._titleToSave;
|
||||
@@ -55,7 +55,7 @@ let Pocket = {
|
||||
onFrameLoaded(event) {
|
||||
let document = event.currentTarget.ownerDocument;
|
||||
let window = document.defaultView;
|
||||
let iframe = document.getElementById('pocket-panel-iframe');
|
||||
let iframe = window.pktUI.getPanelFrame();
|
||||
|
||||
iframe.removeEventListener("load", Pocket.onFrameLoaded, true);
|
||||
window.pktUI.pocketPanelDidShow();
|
||||
|
||||
@@ -644,7 +644,15 @@ var pktUI = (function() {
|
||||
}
|
||||
|
||||
function getPanelFrame() {
|
||||
return document.getElementById('pocket-panel-iframe');
|
||||
var frame = document.getElementById('pocket-panel-iframe');
|
||||
if (!frame) {
|
||||
var frameParent = document.getElementById("PanelUI-pocketView").firstChild;
|
||||
frame = document.createElement("iframe");
|
||||
frame.id = 'pocket-panel-iframe';
|
||||
frame.setAttribute("type", "content");
|
||||
frameParent.appendChild(frame);
|
||||
}
|
||||
return frame;
|
||||
}
|
||||
|
||||
function getSubview() {
|
||||
@@ -779,6 +787,7 @@ var pktUI = (function() {
|
||||
*/
|
||||
return {
|
||||
onLoad: onLoad,
|
||||
getPanelFrame: getPanelFrame,
|
||||
|
||||
pocketButtonOnCommand: pocketButtonOnCommand,
|
||||
pocketPanelDidShow: pocketPanelDidShow,
|
||||
@@ -841,7 +850,7 @@ var pktUIMessaging = (function() {
|
||||
|
||||
if (!isPanelIdValid(panelId)) { return; };
|
||||
|
||||
var panelFrame = document.getElementById('pocket-panel-iframe');
|
||||
var panelFrame = pktUI.getPanelFrame();
|
||||
if (!isPocketPanelFrameValid(panelFrame)) { return; }
|
||||
|
||||
var doc = panelFrame.contentWindow.document;
|
||||
|
||||
Reference in New Issue
Block a user