Bug 1164940 - Lazily create iframe. r=jaws, a=sledru

This commit is contained in:
Gijs Kruitbosch
2015-05-14 21:33:31 +01:00
parent 1d9d5d9942
commit 2a9f43af9e
3 changed files with 13 additions and 5 deletions

View File

@@ -235,7 +235,6 @@
<panelview id="PanelUI-pocketView" flex="1">
<vbox class="panel-subview-body">
<iframe id="pocket-panel-iframe" type="content"/>
</vbox>
</panelview>

View File

@@ -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();

View File

@@ -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;