1
0
Fork 0
mirror of https://github.com/gorhill/uMatrix.git synced 2024-05-17 10:43:19 +12:00

use worker-src on Firefox 58+ -- turns out this was fixed weeks ago

This commit is contained in:
Raymond Hill 2018-01-17 09:25:01 -05:00
parent 08275aa527
commit c89a4cfe5e
No known key found for this signature in database
GPG key ID: 25E1490B761470C2
2 changed files with 27 additions and 11 deletions

View file

@ -39,7 +39,7 @@ var manifest = chrome.runtime.getManifest();
vAPI.chrome = true;
vAPI.webextFlavor = '';
vAPI.webextFlavor = undefined;
if (
self.browser instanceof Object &&
typeof self.browser.runtime.getBrowserInfo === 'function'
@ -47,6 +47,8 @@ if (
self.browser.runtime.getBrowserInfo().then(function(info) {
vAPI.webextFlavor = info.vendor + '-' + info.name + '-' + info.version;
});
} else {
vAPI.webextFlavor = '';
}
var noopFunc = function(){};
@ -776,7 +778,11 @@ vAPI.cloud = (function() {
// actual data, but all of this is provided for free by browser vendors,
// so we need to accept and deal with these limitations.
var initialize = function() {
var ratio = vAPI.webextFlavor.startsWith('Mozilla-Firefox-') ? 0.6 : 0.75;
var ratio =
vAPI.webextFlavor === undefined ||
vAPI.webextFlavor.startsWith('Mozilla-Firefox-') ?
0.6 :
0.75;
maxChunkSize = Math.floor(maxChunkSize * ratio);
initialize = function(){};
};

View file

@ -1,7 +1,7 @@
/*******************************************************************************
uMatrix - a Chromium browser extension to black/white list requests.
Copyright (C) 2014-2017 Raymond Hill
Copyright (C) 2014-2018 Raymond Hill
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -314,18 +314,16 @@ var onHeadersReceived = function(details) {
csp.push(µm.cspNoInlineStyle);
}
// TODO: Firefox will eventually support `worker-src`:
// https://bugzilla.mozilla.org/show_bug.cgi?id=1231788
if ( µm.cspNoWorker === undefined ) {
µm.cspNoWorker = vAPI.webextFlavor.startsWith('Mozilla-') ?
"child-src 'none'; frame-src data: blob: *; report-uri about:blank" :
"worker-src 'none'; report-uri about:blank" ;
// https://bugzilla.mozilla.org/show_bug.cgi?id=1302667
var cspNoWorker = µm.cspNoWorker;
if ( cspNoWorker === undefined ) {
cspNoWorker = cspNoWorkerInit();
}
if ( µm.tMatrix.evaluateSwitchZ('no-workers', rootHostname) ) {
csp.push(µm.cspNoWorker);
csp.push(cspNoWorker);
} else if ( µm.rawSettings.disableCSPReportInjection === false ) {
cspReport.push(µm.cspNoWorker);
cspReport.push(cspNoWorker);
}
var headers = details.responseHeaders,
@ -365,6 +363,18 @@ var onHeadersReceived = function(details) {
/******************************************************************************/
var cspNoWorkerInit = function() {
if ( vAPI.webextFlavor === undefined ) {
return "child-src 'none'; frame-src data: blob: *; report-uri about:blank";
}
µMatrix.cspNoWorker = /^Mozilla-Firefox-5[67]/.test(vAPI.webextFlavor) ?
"child-src 'none'; frame-src data: blob: *; report-uri about:blank" :
"worker-src 'none'; report-uri about:blank" ;
return µMatrix.cspNoWorker;
};
/******************************************************************************/
// Caller must ensure headerName is normalized to lower case.
var headerIndexFromName = function(headerName, headers) {