diff options
| -rw-r--r-- | ext/bg/data/options-schema.json | 7 | ||||
| -rw-r--r-- | ext/bg/js/options.js | 3 | ||||
| -rw-r--r-- | ext/bg/js/settings/main.js | 2 | ||||
| -rw-r--r-- | ext/bg/settings.html | 4 | ||||
| -rw-r--r-- | ext/fg/js/frontend-initialize.js | 6 | 
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}) => { |