Fixup 59e0f3f4: explicitly list our functions in self-destruct

Seems simpler and more robust. Otherwise Chrome spams console warnings about its webkit* aliases we touch.
This commit is contained in:
tophf 2017-03-16 15:47:58 +03:00
parent 1d30b19132
commit 71ea723728

View File

@ -321,14 +321,24 @@ function initObserver() {
iframeObserver.disconnect();
// we can destroy global functions in this context to free up memory
var globals = Object.keys(window);
for (var i = 0, len = globals.length; i < len; i++) {
var key = globals[i];
var obj = window[key];
if (typeof obj == 'function' && !/native code/.test(obj)) {
window[key] = null;
}
}
[
'addDocumentStylesToAllIFrames',
'addDocumentStylesToIFrame',
'addStyleElement',
'addStyleToIFrameSrcDoc',
'applyOnMessage',
'applySections',
'applyStyles',
'disableAll',
'getDynamicIFrames',
'iframeIsDynamic',
'iframeIsLoadingSrcDoc',
'initObserver',
'removeStyle',
'replaceAll',
'requestStyles',
'retireStyle'
].forEach(fn => window[fn] = null);
// we can destroy global variables
g_styleElements = iframeObserver = retiredStyleIds = null;