Add option to use the unsecure frame URL (#618)

This commit is contained in:
toasted-nutbread 2020-06-21 15:52:43 -04:00 committed by GitHub
parent 9e28db6ef7
commit 3db7b3a925
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 3 deletions

View File

@ -109,7 +109,8 @@
"showPitchAccentDownstepNotation",
"showPitchAccentPositionNotation",
"showPitchAccentGraph",
"showIframePopupsInRootFrame"
"showIframePopupsInRootFrame",
"unsecurePopupFrameUrl"
],
"properties": {
"enable": {
@ -247,6 +248,10 @@
"showIframePopupsInRootFrame": {
"type": "boolean",
"default": false
},
"unsecurePopupFrameUrl": {
"type": "boolean",
"default": false
}
}
},

View File

@ -176,7 +176,8 @@ function profileOptionsCreateDefaults() {
showPitchAccentDownstepNotation: true,
showPitchAccentPositionNotation: true,
showPitchAccentGraph: false,
showIframePopupsInRootFrame: false
showIframePopupsInRootFrame: false,
unsecurePopupFrameUrl: false
},
audio: {

View File

@ -182,6 +182,10 @@
<label><input type="checkbox" id="show-iframe-popups-in-root-frame" data-setting="general.showIframePopupsInRootFrame"> Show iframe popups in root frame</label>
</div>
<div class="checkbox options-advanced">
<label><input type="checkbox" id="show-iframe-popups-in-root-frame" data-setting="general.unsecurePopupFrameUrl"> Use unsecure popup frame URL</label>
</div>
<div class="checkbox options-advanced">
<label><input type="checkbox" id="show-debug-info" data-setting="general.debugInfo" data-transform-pre="setDocumentAttribute" data-transform-post="setDocumentAttribute" data-document-attribute="data-options-general-debug-info"> Show debug information</label>
</div>

View File

@ -328,12 +328,18 @@ class Popup {
async _createInjectPromise() {
this._injectStyles();
const unsecurePopupFrameUrl = (this._options !== null && this._options.general.unsecurePopupFrameUrl);
const {secret, token} = await this._initializeFrame(this._frame, this._targetOrigin, this._frameId, (frame) => {
frame.removeAttribute('src');
frame.removeAttribute('srcdoc');
this._observeFullscreen(true);
this._onFullscreenChanged();
frame.contentDocument.location.href = chrome.runtime.getURL('/fg/float.html');
const url = chrome.runtime.getURL('/fg/float.html');
if (unsecurePopupFrameUrl) {
frame.setAttribute('src', url);
} else {
frame.contentDocument.location.href = url;
}
});
this._frameSecret = secret;
this._frameToken = token;