/
githubmr
/
facebook-react
Обзор
Документация
Войти
/
githubmr
/
facebook-react
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-devtools-extensions/src/contentScripts/hookSettingsInjector.js
42 строки
1 KB
Ruslan Lesiutin
feat[react-devtools/extension]: use chrome.storage to persist settings across sessions (#30636)
18 сен 2024, 20:26
Не верифицирован
18 сен 2024, 20:26
f37c7bc
Код
Авторство
О чём код?
/* global chrome */ // We can't use chrome.storage domain from scripts which are injected in ExecutionWorld.MAIN // This is the only purpose of this script - to send persisted settings to installHook.js content script async function messageListener(event: MessageEvent) { if (event.source !== window) { return; } if (event.data.source === 'react-devtools-hook-installer') { if (event.data.payload.handshake) { const settings = await chrome.storage.local.get(); // If storage was empty (first installation), define default settings if (typeof settings.appendComponentStack !== 'boolean') { settings.appendComponentStack = true; } if (typeof settings.breakOnConsoleErrors !== 'boolean') { settings.breakOnConsoleErrors = false; } if (typeof settings.showInlineWarningsAndErrors !== 'boolean') { settings.showInlineWarningsAndErrors = true; } if (typeof settings.hideConsoleLogsInStrictMode !== 'boolean') { settings.hideConsoleLogsInStrictMode = false; } window.postMessage({ source: 'react-devtools-hook-settings-injector', payload: {settings}, }); window.removeEventListener('message', messageListener); } } } window.addEventListener('message', messageListener); window.postMessage({ source: 'react-devtools-hook-settings-injector', payload: {handshake: true}, });