disconnect an orphaned chrome.runtime message/port listener
This commit is contained in:
parent
885919e7d9
commit
9aa382ebf5
|
@ -361,6 +361,9 @@
|
|||
// so we need to detach event listeners
|
||||
[docRewriteObserver, docRootObserver].forEach(ob => ob && ob.takeRecords() && ob.disconnect());
|
||||
window.removeEventListener(chrome.runtime.id, orphanCheck, true);
|
||||
try {
|
||||
chrome.runtime.onMessage.removeListener(applyOnMessage);
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
function initDocRewriteObserver() {
|
||||
|
|
|
@ -103,6 +103,9 @@
|
|||
// In Chrome content script is orphaned on an extension update/reload
|
||||
// so we need to detach event listeners
|
||||
removeEventListener(eventName, orphanCheckRequest, true);
|
||||
try {
|
||||
chrome.runtime.onConnect.removeListener(onConnected);
|
||||
} catch (e) {}
|
||||
};
|
||||
dispatchEvent(new Event(eventName));
|
||||
addEventListener(eventName, orphanCheckRequest, true);
|
||||
|
|
|
@ -13,18 +13,7 @@
|
|||
['', 'Chrome', 'Opera'].forEach(browser =>
|
||||
document.addEventListener('stylish' + type + browser, onClick)));
|
||||
|
||||
chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
|
||||
switch (msg.method) {
|
||||
case 'ping':
|
||||
// orphaned content script check
|
||||
sendResponse(true);
|
||||
break;
|
||||
case 'openSettings':
|
||||
openSettings();
|
||||
sendResponse(true);
|
||||
break;
|
||||
}
|
||||
});
|
||||
chrome.runtime.onMessage.addListener(onMessage);
|
||||
|
||||
new MutationObserver((mutations, observer) => {
|
||||
if (document.body) {
|
||||
|
@ -38,6 +27,19 @@
|
|||
}
|
||||
}).observe(document.documentElement, {childList: true});
|
||||
|
||||
function onMessage(msg, sender, sendResponse) {
|
||||
switch (msg.method) {
|
||||
case 'ping':
|
||||
// orphaned content script check
|
||||
sendResponse(true);
|
||||
break;
|
||||
case 'openSettings':
|
||||
openSettings();
|
||||
sendResponse(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* since we are using "stylish-code-chrome" meta key on all browsers and
|
||||
US.o does not provide "advanced settings" on this url if browser is not Chrome,
|
||||
we need to fix this URL using "stylish-update-url" meta key
|
||||
|
@ -304,6 +306,9 @@
|
|||
['Update', 'Install'].forEach(type =>
|
||||
['', 'Chrome', 'Opera'].forEach(browser =>
|
||||
document.addEventListener('stylish' + type + browser, onClick)));
|
||||
try {
|
||||
chrome.runtime.onMessage.addListener(onMessage);
|
||||
} catch (e) {}
|
||||
}
|
||||
})();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user