prevent injecting frontend multiple times

This commit is contained in:
siikamiika 2020-04-10 02:15:24 +03:00
parent 9adbc80a70
commit 61a96e327a
2 changed files with 14 additions and 2 deletions

View File

@ -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();

View File

@ -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();