force "slow" path for scriplet injection for the time being (see #3526, https://github.com/uBlockOrigin/uAssets/issues/1492)

This commit is contained in:
Raymond Hill 2018-02-20 10:46:47 -05:00
parent c5cbf5db47
commit 2999dbee5c
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2
3 changed files with 27 additions and 8 deletions

View File

@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "uBlock Origin",
"version": "1.15.8",
"version": "1.15.10",
"commands": {
"launch-element-zapper": {

View File

@ -513,15 +513,25 @@ var onMessage = function(request, sender, callback) {
request.entity = µb.URI.entityFromDomain(request.domain);
response.specificCosmeticFilters =
µb.cosmeticFilteringEngine.retrieveDomainSelectors(request, response);
// https://github.com/gorhill/uBlock/issues/3526
// https://github.com/uBlockOrigin/uAssets/issues/1492
// Two distinct issues, but both are arising as a result of
// injecting scriptlets through stream filtering. So falling back
// to "slow" scriplet injection for the time being. Stream filtering
// (`##^`) should be used for when scriptlets are defeated by early
// script tags on a page.
//
// If response body filtering is supported, than the scriptlets have
// already been injected.
if (
µb.canFilterResponseBody === false ||
µb.textEncode === undefined ||
µb.textEncode.normalizeCharset(request.charset) === undefined
) {
//if (
// µb.canFilterResponseBody === false ||
// µb.textEncode === undefined ||
// µb.textEncode.normalizeCharset(request.charset) === undefined
//) {
response.scriptlets = µb.scriptletFilteringEngine.retrieve(request);
}
//}
if ( request.isRootFrame && µb.logger.isEnabled() ) {
µb.logCosmeticFilters(tabId);
}

View File

@ -839,7 +839,16 @@ var filterDocument = (function() {
charset: undefined
};
request.selectors = µb.htmlFilteringEngine.retrieve(request);
request.scriptlets = µb.scriptletFilteringEngine.retrieve(request);
// https://github.com/gorhill/uBlock/issues/3526
// https://github.com/uBlockOrigin/uAssets/issues/1492
// Two distinct issues, but both are arising as a result of
// injecting scriptlets through stream filtering. So falling back
// to "slow" scriplet injection for the time being. Stream filtering
// (`##^`) should be used for when scriptlets are defeated by early
// script tags on a page.
//
//request.scriptlets = µb.scriptletFilteringEngine.retrieve(request);
if (
request.selectors === undefined &&