summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsiikamiika <siikamiika@users.noreply.github.com>2020-04-10 02:15:24 +0300
committersiikamiika <siikamiika@users.noreply.github.com>2020-04-11 21:01:27 +0300
commit61a96e327a815bda7fea4c5d2096dead901fdf33 (patch)
tree0fb76f6b407ab5d4668b674a9e164243a2995042
parent9adbc80a70ea263ae97a853c3d9bb0b6109503bd (diff)
prevent injecting frontend multiple times
-rw-r--r--ext/bg/js/search-frontend.js5
-rw-r--r--ext/fg/js/popup-nested.js11
2 files changed, 14 insertions, 2 deletions
diff --git a/ext/bg/js/search-frontend.js b/ext/bg/js/search-frontend.js
index 48326caf..18cb6060 100644
--- a/ext/bg/js/search-frontend.js
+++ b/ext/bg/js/search-frontend.js
@@ -54,13 +54,16 @@ function injectSearchFrontend() {
async function main() {
await yomichan.prepare();
+ let optionsApplied = false;
+
const applyOptions = async () => {
const optionsContext = {
depth: 0,
url: window.location.href
};
const options = await apiOptionsGet(optionsContext);
- if (!options.scanning.enableOnSearchPage) { return; }
+ if (!options.scanning.enableOnSearchPage || optionsApplied) { return; }
+ optionsApplied = true;
window.frontendInitializationData = {depth: 1, proxy: false};
injectSearchFrontend();
diff --git a/ext/fg/js/popup-nested.js b/ext/fg/js/popup-nested.js
index f193aa36..3ecdf50c 100644
--- a/ext/fg/js/popup-nested.js
+++ b/ext/fg/js/popup-nested.js
@@ -44,15 +44,24 @@ async function popupNestedInitialize(id, depth, parentFrameId, url) {
}
popupNestedInitialized = true;
+ let optionsApplied = false;
+
const applyOptions = async () => {
const optionsContext = {depth, url};
const options = await apiOptionsGet(optionsContext);
const popupNestingMaxDepth = options.scanning.popupNestingMaxDepth;
- if (!(typeof popupNestingMaxDepth === 'number' && typeof depth === 'number' && depth < popupNestingMaxDepth)) {
+ const maxPopupDepthExceeded = !(
+ typeof popupNestingMaxDepth === 'number' &&
+ typeof depth === 'number' &&
+ depth < popupNestingMaxDepth
+ );
+ if (maxPopupDepthExceeded || optionsApplied) {
return;
}
+ optionsApplied = true;
+
window.frontendInitializationData = {id, depth, parentFrameId, url, proxy: true};
injectPopupNested();