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"> <panelview id="PanelUI-pocketView" flex="1">
<vbox class="panel-subview-body"> <vbox class="panel-subview-body">
<iframe id="pocket-panel-iframe" type="content"/>
</vbox> </vbox>
</panelview> </panelview>

View File

@@ -25,7 +25,7 @@ let Pocket = {
onPanelViewShowing(event) { onPanelViewShowing(event) {
let document = event.target.ownerDocument; let document = event.target.ownerDocument;
let window = document.defaultView; let window = document.defaultView;
let iframe = document.getElementById('pocket-panel-iframe'); let iframe = window.pktUI.getPanelFrame();
let urlToSave = Pocket._urlToSave; let urlToSave = Pocket._urlToSave;
let titleToSave = Pocket._titleToSave; let titleToSave = Pocket._titleToSave;
@@ -55,7 +55,7 @@ let Pocket = {
onFrameLoaded(event) { onFrameLoaded(event) {
let document = event.currentTarget.ownerDocument; let document = event.currentTarget.ownerDocument;
let window = document.defaultView; let window = document.defaultView;
let iframe = document.getElementById('pocket-panel-iframe'); let iframe = window.pktUI.getPanelFrame();
iframe.removeEventListener("load", Pocket.onFrameLoaded, true); iframe.removeEventListener("load", Pocket.onFrameLoaded, true);
window.pktUI.pocketPanelDidShow(); window.pktUI.pocketPanelDidShow();

View File

@@ -644,7 +644,15 @@ var pktUI = (function() {
} }
function getPanelFrame() { 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() { function getSubview() {
@@ -779,6 +787,7 @@ var pktUI = (function() {
*/ */
return { return {
onLoad: onLoad, onLoad: onLoad,
getPanelFrame: getPanelFrame,
pocketButtonOnCommand: pocketButtonOnCommand, pocketButtonOnCommand: pocketButtonOnCommand,
pocketPanelDidShow: pocketPanelDidShow, pocketPanelDidShow: pocketPanelDidShow,
@@ -841,7 +850,7 @@ var pktUIMessaging = (function() {
if (!isPanelIdValid(panelId)) { return; }; if (!isPanelIdValid(panelId)) { return; };
var panelFrame = document.getElementById('pocket-panel-iframe'); var panelFrame = pktUI.getPanelFrame();
if (!isPocketPanelFrameValid(panelFrame)) { return; } if (!isPocketPanelFrameValid(panelFrame)) { return; }
var doc = panelFrame.contentWindow.document; var doc = panelFrame.contentWindow.document;