mirror of
https://github.com/gorhill/uMatrix.git
synced 2024-09-28 23:31:09 +12:00
"fix" #771
This commit is contained in:
parent
5922c3fcde
commit
6781a98fd6
2 changed files with 32 additions and 21 deletions
|
@ -359,12 +359,6 @@ var hasInlineScript = function(nodeList, summary) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( node.localName === 'script' ) {
|
if ( node.localName === 'script' ) {
|
||||||
// https://github.com/gorhill/httpswitchboard/issues/252
|
|
||||||
// Do not count uMatrix's own script tags, they are not required
|
|
||||||
// to "unbreak" a web page
|
|
||||||
if ( typeof node.id === 'string' && ownScripts[node.id] ) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
text = node.textContent.trim();
|
text = node.textContent.trim();
|
||||||
if ( text === '' ) {
|
if ( text === '' ) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -383,10 +377,6 @@ var hasInlineScript = function(nodeList, summary) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var ownScripts = {
|
|
||||||
'umatrix-ua-spoofer': true
|
|
||||||
};
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
var nodeListsAddedHandler = function(nodeLists) {
|
var nodeListsAddedHandler = function(nodeLists) {
|
||||||
|
|
|
@ -79,9 +79,12 @@ var navigatorSpoofer = " \
|
||||||
var pos = spoofedUserAgent.indexOf('/'); \n \
|
var pos = spoofedUserAgent.indexOf('/'); \n \
|
||||||
var appName = pos === -1 ? '' : spoofedUserAgent.slice(0, pos); \n \
|
var appName = pos === -1 ? '' : spoofedUserAgent.slice(0, pos); \n \
|
||||||
var appVersion = pos === -1 ? spoofedUserAgent : spoofedUserAgent.slice(pos + 1); \n \
|
var appVersion = pos === -1 ? spoofedUserAgent : spoofedUserAgent.slice(pos + 1); \n \
|
||||||
Object.defineProperty(navigator, 'userAgent', { get: function(){ return spoofedUserAgent; } }); \n \
|
Object.defineProperty(navigator, 'userAgent', { value: spoofedUserAgent }); \n \
|
||||||
Object.defineProperty(navigator, 'appName', { get: function(){ return appName; } }); \n \
|
Object.defineProperty(navigator, 'appName', { value: appName }); \n \
|
||||||
Object.defineProperty(navigator, 'appVersion', { get: function(){ return appVersion; } }); \n \
|
Object.defineProperty(navigator, 'appVersion', { value: appVersion }); \n \
|
||||||
|
var c = document.currentScript, \n \
|
||||||
|
p = c && c.parentNode; \n \
|
||||||
|
if ( p ) { p.removeChild(c); } \n \
|
||||||
} catch (e) { \n \
|
} catch (e) { \n \
|
||||||
} \n \
|
} \n \
|
||||||
})();";
|
})();";
|
||||||
|
@ -102,17 +105,35 @@ var injectNavigatorSpoofer = function(spoofedUserAgent) {
|
||||||
if ( spoofedUserAgent === navigator.userAgent ) {
|
if ( spoofedUserAgent === navigator.userAgent ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var script = document.createElement('script');
|
var parent = document.head || document.documentElement,
|
||||||
script.type = 'text/javascript';
|
scriptText = navigatorSpoofer.replace('{{ua-json}}', JSON.stringify(spoofedUserAgent)),
|
||||||
script.id = 'umatrix-ua-spoofer';
|
script = document.createElement('script');
|
||||||
var js = document.createTextNode(navigatorSpoofer.replace('{{ua-json}}', JSON.stringify(spoofedUserAgent)));
|
script.setAttribute('type', 'text/javascript');
|
||||||
script.appendChild(js);
|
script.setAttribute('id', 'umatrix-ua-spoofer');
|
||||||
|
script.appendChild(document.createTextNode(scriptText));
|
||||||
try {
|
try {
|
||||||
var parent = document.head || document.documentElement;
|
|
||||||
parent.appendChild(script);
|
parent.appendChild(script);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (ex) {
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://github.com/gorhill/uMatrix/issues/771
|
||||||
|
var spoofer = document.querySelector('script#umatrix-ua-spoofer');
|
||||||
|
if ( spoofer !== null ) {
|
||||||
|
spoofer.parentNode.removeChild(spoofer);
|
||||||
|
script = document.createElement('script');
|
||||||
|
script.setAttribute('type', 'text/javascript');
|
||||||
|
script.setAttribute('id', 'umatrix-ua-spoofer');
|
||||||
|
script.setAttribute('src', 'data:application/javascript;base64,' + window.btoa(scriptText));
|
||||||
|
try {
|
||||||
|
parent.appendChild(script);
|
||||||
|
}
|
||||||
|
catch (ex) {
|
||||||
|
}
|
||||||
|
spoofer = document.querySelector('script#umatrix-ua-spoofer');
|
||||||
|
if ( spoofer !== null ) {
|
||||||
|
spoofer.parentNode.removeChild(spoofer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// The port will never be used again at this point, disconnecting allows
|
// The port will never be used again at this point, disconnecting allows
|
||||||
|
|
Loading…
Reference in a new issue