aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsiikamiika <siikamiika@users.noreply.github.com>2020-04-05 01:43:12 +0300
committersiikamiika <siikamiika@users.noreply.github.com>2020-04-05 20:03:42 +0300
commit31a326fe636683e71fa61f11ed25b4f2adaead44 (patch)
tree61a7d64c0c03a91c2bb02ccdd635b9fabd419387
parent0d76cef43437fda336a3314dc62db1388537042f (diff)
add option for iframe popups
-rw-r--r--ext/bg/data/options-schema.json7
-rw-r--r--ext/bg/js/options.js3
-rw-r--r--ext/bg/js/settings/main.js2
-rw-r--r--ext/bg/settings.html4
-rw-r--r--ext/fg/js/frontend-initialize.js6
5 files changed, 19 insertions, 3 deletions
diff --git a/ext/bg/data/options-schema.json b/ext/bg/data/options-schema.json
index cb759b72..da1f1ce0 100644
--- a/ext/bg/data/options-schema.json
+++ b/ext/bg/data/options-schema.json
@@ -108,7 +108,8 @@
"enableClipboardMonitor",
"showPitchAccentDownstepNotation",
"showPitchAccentPositionNotation",
- "showPitchAccentGraph"
+ "showPitchAccentGraph",
+ "showIframePopupsInRootFrame"
],
"properties": {
"enable": {
@@ -242,6 +243,10 @@
"showPitchAccentGraph": {
"type": "boolean",
"default": false
+ },
+ "showIframePopupsInRootFrame": {
+ "type": "boolean",
+ "default": false
}
}
},
diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js
index b36fe812..5c68c403 100644
--- a/ext/bg/js/options.js
+++ b/ext/bg/js/options.js
@@ -127,7 +127,8 @@ function profileOptionsCreateDefaults() {
enableClipboardMonitor: false,
showPitchAccentDownstepNotation: true,
showPitchAccentPositionNotation: true,
- showPitchAccentGraph: false
+ showPitchAccentGraph: false,
+ showIframePopupsInRootFrame: false
},
audio: {
diff --git a/ext/bg/js/settings/main.js b/ext/bg/js/settings/main.js
index 7caeaea0..1653ee35 100644
--- a/ext/bg/js/settings/main.js
+++ b/ext/bg/js/settings/main.js
@@ -87,6 +87,7 @@ async function formRead(options) {
options.general.showPitchAccentDownstepNotation = $('#show-pitch-accent-downstep-notation').prop('checked');
options.general.showPitchAccentPositionNotation = $('#show-pitch-accent-position-notation').prop('checked');
options.general.showPitchAccentGraph = $('#show-pitch-accent-graph').prop('checked');
+ options.general.showIframePopupsInRootFrame = $('#show-iframe-popups-in-root-frame').prop('checked');
options.general.popupTheme = $('#popup-theme').val();
options.general.popupOuterTheme = $('#popup-outer-theme').val();
options.general.customPopupCss = $('#custom-popup-css').val();
@@ -167,6 +168,7 @@ async function formWrite(options) {
$('#show-pitch-accent-downstep-notation').prop('checked', options.general.showPitchAccentDownstepNotation);
$('#show-pitch-accent-position-notation').prop('checked', options.general.showPitchAccentPositionNotation);
$('#show-pitch-accent-graph').prop('checked', options.general.showPitchAccentGraph);
+ $('#show-iframe-popups-in-root-frame').prop('checked', options.general.showIframePopupsInRootFrame);
$('#popup-theme').val(options.general.popupTheme);
$('#popup-outer-theme').val(options.general.popupOuterTheme);
$('#custom-popup-css').val(options.general.customPopupCss);
diff --git a/ext/bg/settings.html b/ext/bg/settings.html
index 0b2e4f9c..237162c7 100644
--- a/ext/bg/settings.html
+++ b/ext/bg/settings.html
@@ -175,6 +175,10 @@
</div>
<div class="checkbox options-advanced">
+ <label><input type="checkbox" id="show-iframe-popups-in-root-frame"> Show iframe popups in root frame</label>
+ </div>
+
+ <div class="checkbox options-advanced">
<label><input type="checkbox" id="show-debug-info"> Show debug information</label>
</div>
diff --git a/ext/fg/js/frontend-initialize.js b/ext/fg/js/frontend-initialize.js
index 2f86f5c8..4a1409db 100644
--- a/ext/fg/js/frontend-initialize.js
+++ b/ext/fg/js/frontend-initialize.js
@@ -22,6 +22,7 @@
* PopupProxy
* PopupProxyHost
* apiForward
+ * apiOptionsGet
*/
async function main() {
@@ -30,8 +31,11 @@ async function main() {
const data = window.frontendInitializationData || {};
const {id, depth=0, parentFrameId, url, proxy=false} = data;
+ const optionsContext = {depth, url};
+ const options = await apiOptionsGet(optionsContext);
+
let popup;
- if (!proxy && (window !== window.parent)) {
+ if (!proxy && (window !== window.parent) && options.general.showIframePopupsInRootFrame) {
const rootPopupInformationPromise = yomichan.getTemporaryListenerResult(
chrome.runtime.onMessage,
({action, params}, {resolve}) => {