Enhance: faster msg.sendBg (#774)

This commit is contained in:
eight 2019-09-09 12:40:07 +08:00 committed by narcolepticinsomniac
parent 0e9d5ce08c
commit a7445011a9

View File

@ -41,12 +41,20 @@ const msg = (() => {
if (isBg) {
return Promise.resolve(window);
}
if (!chrome.runtime.getBackgroundPage) {
return Promise.resolve();
// try using extension.getBackgroundPage because runtime.getBackgroundPage is too slow
// https://github.com/openstyles/stylus/issues/771
if (chrome.extension.getBackgroundPage) {
const bg = chrome.extension.getBackgroundPage();
if (bg && bg.document && bg.document.readyState !== 'loading') {
return Promise.resolve(bg);
}
}
if (chrome.runtime.getBackgroundPage) {
return promisify(chrome.runtime.getBackgroundPage.bind(chrome.runtime))()
.catch(() => null);
}
return Promise.resolve(null);
}
function send(data, target = 'extension') {
const message = {data, target};