31 lines
996 B
JavaScript
31 lines
996 B
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/. */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Set dom.webcomponents.enabled pref to true and loads an iframe, to ensure
|
|
* that the Element instance is loaded with the correct value of the
|
|
* preference.
|
|
*
|
|
* @return {Promise} promise that resolves when iframe is loaded.
|
|
*/
|
|
function setWebComponentsPrefAndCreateIframe(aSrcDoc) {
|
|
return new Promise(function (aResolve, aReject) {
|
|
SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
["dom.webcomponents.enabled", true]
|
|
]
|
|
}, () => {
|
|
let iframe = document.createElement("iframe");
|
|
iframe.onload = function () { aResolve(iframe.contentDocument); }
|
|
iframe.onerror = function () { aReject('Failed to load iframe'); }
|
|
if (aSrcDoc) {
|
|
iframe.srcdoc = aSrcDoc;
|
|
}
|
|
document.body.appendChild(iframe);
|
|
});
|
|
});
|
|
}
|