mirror of
https://git.axenov.dev/mirrors/cursor-free-vip.git
synced 2026-04-22 07:07:30 +00:00
Big Change Update
This commit is contained in:
BIN
uBlock0.chromium/web_accessible_resources/1x1.gif
Normal file
BIN
uBlock0.chromium/web_accessible_resources/1x1.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 B |
BIN
uBlock0.chromium/web_accessible_resources/2x2.png
Normal file
BIN
uBlock0.chromium/web_accessible_resources/2x2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 B |
BIN
uBlock0.chromium/web_accessible_resources/32x32.png
Normal file
BIN
uBlock0.chromium/web_accessible_resources/32x32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 83 B |
BIN
uBlock0.chromium/web_accessible_resources/3x2.png
Normal file
BIN
uBlock0.chromium/web_accessible_resources/3x2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 B |
11
uBlock0.chromium/web_accessible_resources/README.txt
Normal file
11
uBlock0.chromium/web_accessible_resources/README.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
IMPORTANT
|
||||
|
||||
Content of this folder cannot be accessed without the internal secret token
|
||||
created for each request to any of the "web accessible resources".
|
||||
|
||||
Any fetch operation made without uBlock Origin's internal secret will result
|
||||
in failure. This means that despite the content of the folder here declared as
|
||||
"web accessible resources", it still cannot be seen by the outside world.
|
||||
|
||||
Only uBlock Origin knows the secret token at runtime and hence only
|
||||
uBlock Origin can access the content of this folder.
|
||||
70
uBlock0.chromium/web_accessible_resources/amazon_ads.js
Normal file
70
uBlock0.chromium/web_accessible_resources/amazon_ads.js
Normal file
@@ -0,0 +1,70 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
if ( amznads ) {
|
||||
return;
|
||||
}
|
||||
var w = window;
|
||||
var noopfn = function() {
|
||||
;
|
||||
}.bind();
|
||||
var amznads = {
|
||||
appendScriptTag: noopfn,
|
||||
appendTargetingToAdServerUrl: noopfn,
|
||||
appendTargetingToQueryString: noopfn,
|
||||
clearTargetingFromGPTAsync: noopfn,
|
||||
doAllTasks: noopfn,
|
||||
doGetAdsAsync: noopfn,
|
||||
doTask: noopfn,
|
||||
detectIframeAndGetURL: noopfn,
|
||||
getAds: noopfn,
|
||||
getAdsAsync: noopfn,
|
||||
getAdForSlot: noopfn,
|
||||
getAdsCallback: noopfn,
|
||||
getDisplayAds: noopfn,
|
||||
getDisplayAdsAsync: noopfn,
|
||||
getDisplayAdsCallback: noopfn,
|
||||
getKeys: noopfn,
|
||||
getReferrerURL: noopfn,
|
||||
getScriptSource: noopfn,
|
||||
getTargeting: noopfn,
|
||||
getTokens: noopfn,
|
||||
getValidMilliseconds: noopfn,
|
||||
getVideoAds: noopfn,
|
||||
getVideoAdsAsync: noopfn,
|
||||
getVideoAdsCallback: noopfn,
|
||||
handleCallBack: noopfn,
|
||||
hasAds: noopfn,
|
||||
renderAd: noopfn,
|
||||
saveAds: noopfn,
|
||||
setTargeting: noopfn,
|
||||
setTargetingForGPTAsync: noopfn,
|
||||
setTargetingForGPTSync: noopfn,
|
||||
tryGetAdsAsync: noopfn,
|
||||
updateAds: noopfn
|
||||
};
|
||||
w.amznads = amznads;
|
||||
w.amzn_ads = w.amzn_ads || noopfn;
|
||||
w.aax_write = w.aax_write || noopfn;
|
||||
w.aax_render_ad = w.aax_render_ad || noopfn;
|
||||
})();
|
||||
62
uBlock0.chromium/web_accessible_resources/amazon_apstag.js
Normal file
62
uBlock0.chromium/web_accessible_resources/amazon_apstag.js
Normal file
@@ -0,0 +1,62 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
// https://www.reddit.com/r/uBlockOrigin/comments/ghjqph/
|
||||
// https://github.com/NanoMeow/QuickReports/issues/3717
|
||||
// https://www.reddit.com/r/uBlockOrigin/comments/qyx7en/
|
||||
|
||||
// https://searchfox.org/mozilla-central/source/browser/extensions/webcompat/shims/apstag.js
|
||||
// Import queue-related initialization code.
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const w = window;
|
||||
const noopfn = function() {
|
||||
; // jshint ignore:line
|
||||
}.bind();
|
||||
const _Q = w.apstag && w.apstag._Q || [];
|
||||
const apstag = {
|
||||
_Q,
|
||||
fetchBids: function(a, b) {
|
||||
if ( typeof b === 'function' ) {
|
||||
b([]);
|
||||
}
|
||||
},
|
||||
init: noopfn,
|
||||
setDisplayBids: noopfn,
|
||||
targetingKeys: noopfn,
|
||||
};
|
||||
w.apstag = apstag;
|
||||
_Q.push = function(prefix, args) {
|
||||
try {
|
||||
switch (prefix) {
|
||||
case 'f':
|
||||
apstag.fetchBids(...args);
|
||||
break;
|
||||
}
|
||||
} catch (e) {
|
||||
console.trace(e);
|
||||
}
|
||||
};
|
||||
for ( const cmd of _Q ) {
|
||||
_Q.push(cmd);
|
||||
}
|
||||
})();
|
||||
34
uBlock0.chromium/web_accessible_resources/ampproject_v0.js
Normal file
34
uBlock0.chromium/web_accessible_resources/ampproject_v0.js
Normal file
@@ -0,0 +1,34 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const head = document.head;
|
||||
if ( !head ) { return; }
|
||||
const style = document.createElement('style');
|
||||
style.textContent = [
|
||||
'body {',
|
||||
' animation: none !important;',
|
||||
' overflow: unset !important;',
|
||||
'}'
|
||||
].join('\n');
|
||||
head.appendChild(style);
|
||||
})();
|
||||
33
uBlock0.chromium/web_accessible_resources/chartbeat.js
Normal file
33
uBlock0.chromium/web_accessible_resources/chartbeat.js
Normal file
@@ -0,0 +1,33 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const noopfn = function() {
|
||||
};
|
||||
window.pSUPERFLY = {
|
||||
activity: noopfn,
|
||||
virtualPage: noopfn
|
||||
};
|
||||
for ( const hider of document.querySelectorAll('style[id^=chartbeat-flicker-control]') ) {
|
||||
hider.remove();
|
||||
}
|
||||
})();
|
||||
28
uBlock0.chromium/web_accessible_resources/click2load.html
Normal file
28
uBlock0.chromium/web_accessible_resources/click2load.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<!DOCTYPE html>
|
||||
<html id="ublock0-clicktoload">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>uBlock Origin Click-to-Load</title>
|
||||
<link rel="stylesheet" href="../css/themes/default.css">
|
||||
<link rel="stylesheet" href="../css/common.css">
|
||||
<link rel="stylesheet" href="../css/fa-icons.css">
|
||||
<link rel="stylesheet" href="../css/click2load.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<span class="logo"><img src="../img/ublock.svg"></span>
|
||||
<span id="clickToLoad" data-i18n="clickToLoad"></span>
|
||||
<div id="frameURL"><span></span> <a class="fa-icon" href="" rel="noreferrer noopener" target="_blank">external-link</a></div>
|
||||
|
||||
<script src="../js/fa-icons.js" type="module"></script>
|
||||
<script src="../js/vapi.js"></script>
|
||||
<script src="../js/vapi-common.js"></script>
|
||||
<script src="../js/vapi-client.js"></script>
|
||||
<script src="../js/theme.js" type="module"></script>
|
||||
<script src="../js/i18n.js" type="module"></script>
|
||||
<script src="../js/click2load.js" type="module"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
25
uBlock0.chromium/web_accessible_resources/dom-inspector.html
Normal file
25
uBlock0.chromium/web_accessible_resources/dom-inspector.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html id="ublock0-inspector">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="color-scheme" content="light dark">
|
||||
<title>uBlock Origin Inspector</title>
|
||||
<link rel="stylesheet" href="../css/dom-inspector.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<svg>
|
||||
<path d></path>
|
||||
<path d></path>
|
||||
<path d></path>
|
||||
<path d></path>
|
||||
</svg>
|
||||
|
||||
<script src="../js/vapi.js"></script>
|
||||
<script src="../js/vapi-common.js"></script>
|
||||
<script src="../js/vapi-client.js"></script>
|
||||
<script src="../js/dom-inspector.js" type="module"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
window.google_ad_status = 1;
|
||||
0
uBlock0.chromium/web_accessible_resources/empty
Normal file
0
uBlock0.chromium/web_accessible_resources/empty
Normal file
72
uBlock0.chromium/web_accessible_resources/epicker-ui.html
Normal file
72
uBlock0.chromium/web_accessible_resources/epicker-ui.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<html id="ublock0-epicker">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="color-scheme" content="light dark">
|
||||
<title>uBlock Origin Element Picker</title>
|
||||
<link rel="stylesheet" href="../lib/codemirror/lib/codemirror.css">
|
||||
<link rel="stylesheet" href="../lib/codemirror/addon/hint/show-hint.css">
|
||||
|
||||
<link rel="stylesheet" href="../css/themes/default.css">
|
||||
<link rel="stylesheet" href="../css/common.css">
|
||||
<link rel="stylesheet" href="../css/epicker-ui.css">
|
||||
<link rel="stylesheet" href="../css/codemirror.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<aside style="right: 2px; bottom: 2px;">
|
||||
<div id="windowbar"><div id="minimize"><svg viewBox="0 0 64 64"><path d="M 16,48 H 48" /><rect x="16" y="16" height="32" width="32" /></div><div id="move"></div><div id="quit" data-i18n-title="pickerQuit"><svg viewBox="0 0 64 64"><path d="M16 16L48 48M16 48L48 16" /></div></div>
|
||||
<section>
|
||||
<div>
|
||||
<div class="codeMirrorContainer codeMirrorBreakAll cm-theme-override"></div>
|
||||
<div class="resultsetWidgets">
|
||||
<span id="resultsetModifiers">
|
||||
<span id="resultsetDepth" class="resultsetModifier">
|
||||
<span><span></span><span></span><span></span></span>
|
||||
<input type="range" min="0" max="7" value="7">
|
||||
</span>
|
||||
<span id="resultsetSpecificity" class="resultsetModifier">
|
||||
<span><span></span><span></span><span></span></span>
|
||||
<input type="range" min="0" max="7" value="6">
|
||||
</span>
|
||||
</span>
|
||||
<span id="resultsetCount"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div id="toolbar">
|
||||
<div>
|
||||
<button id="pick" type="button" data-i18n="pickerPick">_<span class="hover"></span></button>
|
||||
<button id="preview" type="button" data-i18n="pickerPreview">_<span class="hover"></span></button>
|
||||
</div>
|
||||
<button id="create" type="button" class="preferred" disabled data-i18n="pickerCreate">_<span class="hover"></span></button>
|
||||
</div>
|
||||
</section>
|
||||
<ul id="candidateFilters">
|
||||
<li id="netFilters">
|
||||
<span data-i18n="pickerNetFilters"></span>
|
||||
<ul lang="en" class="changeFilter"></ul>
|
||||
</li>
|
||||
<li id="cosmeticFilters" data-specificity="3">
|
||||
<span data-i18n="pickerCosmeticFilters"></span>
|
||||
<ul lang="en" class="changeFilter"></ul>
|
||||
</li>
|
||||
</ul>
|
||||
</aside>
|
||||
<svg id="sea"><path d></path><path d></path></svg>
|
||||
|
||||
<script src="../lib/codemirror/lib/codemirror.js"></script>
|
||||
<script src="../lib/codemirror/addon/edit/closebrackets.js"></script>
|
||||
<script src="../lib/codemirror/addon/edit/matchbrackets.js"></script>
|
||||
<script src="../lib/codemirror/addon/hint/show-hint.js"></script>
|
||||
<script src="../lib/hsluv/hsluv-0.1.0.min.js"></script>
|
||||
|
||||
<script src="../js/vapi.js"></script>
|
||||
<script src="../js/vapi-common.js"></script>
|
||||
<script src="../js/vapi-client.js"></script>
|
||||
<script src="../js/theme.js" type="module"></script>
|
||||
<script src="../js/i18n.js" type="module"></script>
|
||||
<script src="../js/epicker-ui.js" type="module"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
55
uBlock0.chromium/web_accessible_resources/fingerprint2.js
Normal file
55
uBlock0.chromium/web_accessible_resources/fingerprint2.js
Normal file
@@ -0,0 +1,55 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2014-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
// Reference:
|
||||
// https://github.com/fingerprintjs/fingerprintjs/tree/v2
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const hex32 = len => {
|
||||
return Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)
|
||||
.toString(16)
|
||||
.slice(-len)
|
||||
.padStart(len, '0');
|
||||
};
|
||||
const browserId = `${hex32(8)}${hex32(8)}${hex32(8)}${hex32(8)}`;
|
||||
const fp2 = function(){};
|
||||
fp2.get = function(opts, cb) {
|
||||
if ( !cb ) { cb = opts; }
|
||||
setTimeout(( ) => { cb([]); }, 1);
|
||||
};
|
||||
fp2.getPromise = function() {
|
||||
return Promise.resolve([]);
|
||||
};
|
||||
fp2.getV18 = function() {
|
||||
return browserId;
|
||||
};
|
||||
fp2.x64hash128 = function() {
|
||||
return browserId;
|
||||
};
|
||||
fp2.prototype = {
|
||||
get: function(opts, cb) {
|
||||
if ( !cb ) { cb = opts; }
|
||||
setTimeout(( ) => { cb(browserId, []); }, 1);
|
||||
},
|
||||
};
|
||||
self.Fingerprint2 = fp2;
|
||||
})();
|
||||
45
uBlock0.chromium/web_accessible_resources/fingerprint3.js
Normal file
45
uBlock0.chromium/web_accessible_resources/fingerprint3.js
Normal file
@@ -0,0 +1,45 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2022-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const visitorId = (( ) => {
|
||||
let id = '';
|
||||
for ( let i = 0; i < 8; i++ ) {
|
||||
id += (Math.random() * 0x10000 + 0x1000 | 0).toString(16).slice(-4);
|
||||
}
|
||||
return id;
|
||||
})();
|
||||
const FingerprintJS = class {
|
||||
static hashComponents() {
|
||||
return visitorId;
|
||||
}
|
||||
static load() {
|
||||
return Promise.resolve(new FingerprintJS());
|
||||
}
|
||||
get() {
|
||||
return Promise.resolve({
|
||||
visitorId,
|
||||
});
|
||||
}
|
||||
};
|
||||
window.FingerprintJS = FingerprintJS;
|
||||
})();
|
||||
@@ -0,0 +1,110 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
// https://developers.google.com/analytics/devguides/collection/analyticsjs/
|
||||
const noopfn = function() {
|
||||
};
|
||||
//
|
||||
const Tracker = function() {
|
||||
};
|
||||
const p = Tracker.prototype;
|
||||
p.get = noopfn;
|
||||
p.set = noopfn;
|
||||
p.send = noopfn;
|
||||
//
|
||||
const w = window;
|
||||
const gaName = w.GoogleAnalyticsObject || 'ga';
|
||||
const gaQueue = w[gaName];
|
||||
// https://github.com/uBlockOrigin/uAssets/pull/4115
|
||||
const ga = function() {
|
||||
const len = arguments.length;
|
||||
if ( len === 0 ) { return; }
|
||||
const args = Array.from(arguments);
|
||||
let fn;
|
||||
let a = args[len-1];
|
||||
if ( a instanceof Object && a.hitCallback instanceof Function ) {
|
||||
fn = a.hitCallback;
|
||||
} else if ( a instanceof Function ) {
|
||||
fn = ( ) => { a(ga.create()); };
|
||||
} else {
|
||||
const pos = args.indexOf('hitCallback');
|
||||
if ( pos !== -1 && args[pos+1] instanceof Function ) {
|
||||
fn = args[pos+1];
|
||||
}
|
||||
}
|
||||
if ( fn instanceof Function === false ) { return; }
|
||||
try {
|
||||
fn();
|
||||
} catch (ex) {
|
||||
}
|
||||
};
|
||||
ga.create = function() {
|
||||
return new Tracker();
|
||||
};
|
||||
ga.getByName = function() {
|
||||
return new Tracker();
|
||||
};
|
||||
ga.getAll = function() {
|
||||
return [new Tracker()];
|
||||
};
|
||||
ga.remove = noopfn;
|
||||
// https://github.com/uBlockOrigin/uAssets/issues/2107
|
||||
ga.loaded = true;
|
||||
w[gaName] = ga;
|
||||
// https://github.com/gorhill/uBlock/issues/3075
|
||||
const dl = w.dataLayer;
|
||||
if ( dl instanceof Object ) {
|
||||
if ( dl.hide instanceof Object && typeof dl.hide.end === 'function' ) {
|
||||
dl.hide.end();
|
||||
dl.hide.end = ()=>{};
|
||||
}
|
||||
if ( typeof dl.push === 'function' ) {
|
||||
const doCallback = function(item) {
|
||||
if ( item instanceof Object === false ) { return; }
|
||||
if ( typeof item.eventCallback !== 'function' ) { return; }
|
||||
setTimeout(item.eventCallback, 1);
|
||||
item.eventCallback = ()=>{};
|
||||
};
|
||||
dl.push = new Proxy(dl.push, {
|
||||
apply: function(target, thisArg, args) {
|
||||
doCallback(args[0]);
|
||||
return Reflect.apply(target, thisArg, args);
|
||||
}
|
||||
});
|
||||
if ( Array.isArray(dl) ) {
|
||||
const q = dl.slice();
|
||||
for ( const item of q ) {
|
||||
doCallback(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// empty ga queue
|
||||
if ( gaQueue instanceof Function && Array.isArray(gaQueue.q) ) {
|
||||
const q = gaQueue.q.slice();
|
||||
gaQueue.q.length = 0;
|
||||
for ( const entry of q ) {
|
||||
ga(...entry);
|
||||
}
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,36 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const noopfn = function() {
|
||||
};
|
||||
window.cxApi = {
|
||||
chooseVariation: function() {
|
||||
return 0;
|
||||
},
|
||||
getChosenVariation: noopfn,
|
||||
setAllowHash: noopfn,
|
||||
setChosenVariation: noopfn,
|
||||
setCookiePath: noopfn,
|
||||
setDomainName: noopfn
|
||||
};
|
||||
})();
|
||||
130
uBlock0.chromium/web_accessible_resources/google-analytics_ga.js
Normal file
130
uBlock0.chromium/web_accessible_resources/google-analytics_ga.js
Normal file
@@ -0,0 +1,130 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const noopfn = function() {
|
||||
};
|
||||
//
|
||||
const Gaq = function() {
|
||||
};
|
||||
Gaq.prototype.Na = noopfn;
|
||||
Gaq.prototype.O = noopfn;
|
||||
Gaq.prototype.Sa = noopfn;
|
||||
Gaq.prototype.Ta = noopfn;
|
||||
Gaq.prototype.Va = noopfn;
|
||||
Gaq.prototype._createAsyncTracker = noopfn;
|
||||
Gaq.prototype._getAsyncTracker = noopfn;
|
||||
Gaq.prototype._getPlugin = noopfn;
|
||||
Gaq.prototype.push = function(a) {
|
||||
if ( typeof a === 'function' ) {
|
||||
a(); return;
|
||||
}
|
||||
if ( Array.isArray(a) === false ) { return; }
|
||||
// https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._link
|
||||
// https://github.com/uBlockOrigin/uBlock-issues/issues/1807
|
||||
if (
|
||||
typeof a[0] === 'string' &&
|
||||
/(^|\.)_link$/.test(a[0]) &&
|
||||
typeof a[1] === 'string'
|
||||
) {
|
||||
try {
|
||||
window.location.assign(a[1]);
|
||||
} catch(ex) {
|
||||
}
|
||||
}
|
||||
// https://github.com/gorhill/uBlock/issues/2162
|
||||
if ( a[0] === '_set' && a[1] === 'hitCallback' && typeof a[2] === 'function' ) {
|
||||
a[2]();
|
||||
}
|
||||
};
|
||||
//
|
||||
const tracker = (function() {
|
||||
const out = {};
|
||||
const api = [
|
||||
'_addIgnoredOrganic _addIgnoredRef _addItem _addOrganic',
|
||||
'_addTrans _clearIgnoredOrganic _clearIgnoredRef _clearOrganic',
|
||||
'_cookiePathCopy _deleteCustomVar _getName _setAccount',
|
||||
'_getAccount _getClientInfo _getDetectFlash _getDetectTitle',
|
||||
'_getLinkerUrl _getLocalGifPath _getServiceMode _getVersion',
|
||||
'_getVisitorCustomVar _initData _linkByPost',
|
||||
'_setAllowAnchor _setAllowHash _setAllowLinker _setCampContentKey',
|
||||
'_setCampMediumKey _setCampNameKey _setCampNOKey _setCampSourceKey',
|
||||
'_setCampTermKey _setCampaignCookieTimeout _setCampaignTrack _setClientInfo',
|
||||
'_setCookiePath _setCookiePersistence _setCookieTimeout _setCustomVar',
|
||||
'_setDetectFlash _setDetectTitle _setDomainName _setLocalGifPath',
|
||||
'_setLocalRemoteServerMode _setLocalServerMode _setReferrerOverride _setRemoteServerMode',
|
||||
'_setSampleRate _setSessionTimeout _setSiteSpeedSampleRate _setSessionCookieTimeout',
|
||||
'_setVar _setVisitorCookieTimeout _trackEvent _trackPageLoadTime',
|
||||
'_trackPageview _trackSocial _trackTiming _trackTrans',
|
||||
'_visitCode'
|
||||
].join(' ').split(/\s+/);
|
||||
for ( const method of api ) {
|
||||
out[method] = noopfn;
|
||||
}
|
||||
out._getLinkerUrl = function(a) {
|
||||
return a;
|
||||
};
|
||||
// https://github.com/AdguardTeam/Scriptlets/issues/154
|
||||
out._link = function(a) {
|
||||
if ( typeof a !== 'string' ) { return; }
|
||||
try {
|
||||
window.location.assign(a);
|
||||
} catch(ex) {
|
||||
}
|
||||
};
|
||||
return out;
|
||||
})();
|
||||
//
|
||||
const Gat = function() {
|
||||
};
|
||||
Gat.prototype._anonymizeIP = noopfn;
|
||||
Gat.prototype._createTracker = noopfn;
|
||||
Gat.prototype._forceSSL = noopfn;
|
||||
Gat.prototype._getPlugin = noopfn;
|
||||
Gat.prototype._getTracker = function() {
|
||||
return tracker;
|
||||
};
|
||||
Gat.prototype._getTrackerByName = function() {
|
||||
return tracker;
|
||||
};
|
||||
Gat.prototype._getTrackers = noopfn;
|
||||
Gat.prototype.aa = noopfn;
|
||||
Gat.prototype.ab = noopfn;
|
||||
Gat.prototype.hb = noopfn;
|
||||
Gat.prototype.la = noopfn;
|
||||
Gat.prototype.oa = noopfn;
|
||||
Gat.prototype.pa = noopfn;
|
||||
Gat.prototype.u = noopfn;
|
||||
const gat = new Gat();
|
||||
window._gat = gat;
|
||||
//
|
||||
const gaq = new Gaq();
|
||||
(function() {
|
||||
const aa = window._gaq || [];
|
||||
if ( Array.isArray(aa) ) {
|
||||
while ( aa[0] ) {
|
||||
gaq.push(aa.shift());
|
||||
}
|
||||
}
|
||||
})();
|
||||
window._gaq = gaq.qf = gaq;
|
||||
})();
|
||||
@@ -0,0 +1,28 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
window._gaq = window._gaq || {
|
||||
push: function() {
|
||||
}
|
||||
};
|
||||
})();
|
||||
855
uBlock0.chromium/web_accessible_resources/google-ima.js
Normal file
855
uBlock0.chromium/web_accessible_resources/google-ima.js
Normal file
@@ -0,0 +1,855 @@
|
||||
/**
|
||||
*
|
||||
* Source below is based on Mozilla source code:
|
||||
* https://searchfox.org/mozilla-central/rev/d317e93d9a59c9e4c06ada85fbff9f6a1ceaaad1/browser/extensions/webcompat/shims/google-ima.js
|
||||
*
|
||||
* Modifications to the original code below this comment:
|
||||
* - Avoid JS syntax not supported by older browser versions
|
||||
* - Add missing shim event
|
||||
* - Modified to avoid jshint warnings as per uBO's config
|
||||
* - Added `OmidVerificationVendor` to `ima`
|
||||
* - Have `AdError.getInnerError()` return `null`
|
||||
* - Have `AdDisplayContainer` constructor add DIV element to container
|
||||
* - Added missing event dispatcher functionality
|
||||
* - Corrected return type of `Ad.getUniversalAdIds()`
|
||||
* - Corrected typo in `UniversalAdIdInfo.getAdIdValue()` method name
|
||||
* - Corrected dispatch of LOAD event when preloading is enabled
|
||||
* - Corrected dispatch of CONTENT_PAUSE/RESUME_REQUESTED events
|
||||
*
|
||||
* Related issue:
|
||||
* - https://github.com/uBlockOrigin/uBlock-issues/issues/2158
|
||||
*
|
||||
**/
|
||||
|
||||
'use strict';
|
||||
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/**
|
||||
* Bug 1713690 - Shim Google Interactive Media Ads ima3.js
|
||||
*
|
||||
* Many sites use ima3.js for ad bidding and placement, often in conjunction
|
||||
* with Google Publisher Tags, Prebid.js and/or other scripts. This shim
|
||||
* provides a stubbed-out version of the API which helps work around related
|
||||
* site breakage, such as black bxoes where videos ought to be placed.
|
||||
*/
|
||||
|
||||
if (!window.google || !window.google.ima || !window.google.ima.VERSION) {
|
||||
const VERSION = "3.517.2";
|
||||
|
||||
const CheckCanAutoplay = (function() {
|
||||
// Sourced from: https://searchfox.org/mozilla-central/source/dom/media/gtest/negative_duration.mp4
|
||||
const TEST_VIDEO = new Blob(
|
||||
[
|
||||
new Uint32Array([
|
||||
469762048,
|
||||
1887007846,
|
||||
1752392036,
|
||||
0,
|
||||
913273705,
|
||||
1717987696,
|
||||
828601953,
|
||||
-1878917120,
|
||||
1987014509,
|
||||
1811939328,
|
||||
1684567661,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
-402456576,
|
||||
0,
|
||||
256,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
256,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
256,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
64,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
33554432,
|
||||
-201261056,
|
||||
1801548404,
|
||||
1744830464,
|
||||
1684564852,
|
||||
251658241,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
16777216,
|
||||
0,
|
||||
-1,
|
||||
-1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
256,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
256,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
64,
|
||||
5,
|
||||
53250,
|
||||
-2080309248,
|
||||
1634296941,
|
||||
738197504,
|
||||
1684563053,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
-2137614336,
|
||||
-1,
|
||||
-1,
|
||||
50261,
|
||||
754974720,
|
||||
1919706216,
|
||||
0,
|
||||
0,
|
||||
1701079414,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1701079382,
|
||||
1851869295,
|
||||
1919249508,
|
||||
16777216,
|
||||
1852402979,
|
||||
102,
|
||||
1752004116,
|
||||
100,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1852400676,
|
||||
102,
|
||||
1701995548,
|
||||
102,
|
||||
0,
|
||||
1,
|
||||
1819440396,
|
||||
32,
|
||||
1,
|
||||
1651799011,
|
||||
108,
|
||||
1937011607,
|
||||
100,
|
||||
0,
|
||||
1,
|
||||
1668702599,
|
||||
49,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
33555712,
|
||||
4718800,
|
||||
4718592,
|
||||
0,
|
||||
65536,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
16776984,
|
||||
1630601216,
|
||||
21193590,
|
||||
-14745500,
|
||||
1729626337,
|
||||
-1407254428,
|
||||
89161945,
|
||||
1049019,
|
||||
9453056,
|
||||
-251611125,
|
||||
27269507,
|
||||
-379058688,
|
||||
-1329024392,
|
||||
268435456,
|
||||
1937011827,
|
||||
0,
|
||||
0,
|
||||
268435456,
|
||||
1668510835,
|
||||
0,
|
||||
0,
|
||||
335544320,
|
||||
2054386803,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
268435456,
|
||||
1868788851,
|
||||
0,
|
||||
0,
|
||||
671088640,
|
||||
2019915373,
|
||||
536870912,
|
||||
2019914356,
|
||||
0,
|
||||
16777216,
|
||||
16777216,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]),
|
||||
],
|
||||
{ type: "video/mp4" }
|
||||
);
|
||||
|
||||
let testVideo;
|
||||
|
||||
return function() {
|
||||
if (!testVideo) {
|
||||
testVideo = document.createElement("video");
|
||||
testVideo.style =
|
||||
"position:absolute; width:0; height:0; left:0; right:0; z-index:-1; border:0";
|
||||
testVideo.setAttribute("muted", "muted");
|
||||
testVideo.setAttribute("playsinline", "playsinline");
|
||||
testVideo.src = URL.createObjectURL(TEST_VIDEO);
|
||||
document.body.appendChild(testVideo);
|
||||
}
|
||||
return testVideo.play();
|
||||
};
|
||||
})();
|
||||
|
||||
const ima = {};
|
||||
|
||||
class AdDisplayContainer {
|
||||
constructor(containerElement) {
|
||||
const divElement = document.createElement("div");
|
||||
divElement.style.setProperty("display", "none", "important");
|
||||
divElement.style.setProperty("visibility", "collapse", "important");
|
||||
containerElement.appendChild(divElement);
|
||||
}
|
||||
destroy() {}
|
||||
initialize() {}
|
||||
}
|
||||
|
||||
class ImaSdkSettings {
|
||||
constructor() {
|
||||
this.c = true;
|
||||
this.f = {};
|
||||
this.i = false;
|
||||
this.l = "";
|
||||
this.p = "";
|
||||
this.r = 0;
|
||||
this.t = "";
|
||||
this.v = "";
|
||||
}
|
||||
getCompanionBackfill() {}
|
||||
getDisableCustomPlaybackForIOS10Plus() {
|
||||
return this.i;
|
||||
}
|
||||
getFeatureFlags() {
|
||||
return this.f;
|
||||
}
|
||||
getLocale() {
|
||||
return this.l;
|
||||
}
|
||||
getNumRedirects() {
|
||||
return this.r;
|
||||
}
|
||||
getPlayerType() {
|
||||
return this.t;
|
||||
}
|
||||
getPlayerVersion() {
|
||||
return this.v;
|
||||
}
|
||||
getPpid() {
|
||||
return this.p;
|
||||
}
|
||||
isCookiesEnabled() {
|
||||
return this.c;
|
||||
}
|
||||
setAutoPlayAdBreaks() {}
|
||||
setCompanionBackfill() {}
|
||||
setCookiesEnabled(c) {
|
||||
this.c = !!c;
|
||||
}
|
||||
setDisableCustomPlaybackForIOS10Plus(i) {
|
||||
this.i = !!i;
|
||||
}
|
||||
setFeatureFlags(f) {
|
||||
this.f = f;
|
||||
}
|
||||
setLocale(l) {
|
||||
this.l = l;
|
||||
}
|
||||
setNumRedirects(r) {
|
||||
this.r = r;
|
||||
}
|
||||
setPlayerType(t) {
|
||||
this.t = t;
|
||||
}
|
||||
setPlayerVersion(v) {
|
||||
this.v = v;
|
||||
}
|
||||
setPpid(p) {
|
||||
this.p = p;
|
||||
}
|
||||
setSessionId(/*s*/) {}
|
||||
setVpaidAllowed(/*a*/) {}
|
||||
setVpaidMode(/*m*/) {}
|
||||
|
||||
// https://github.com/uBlockOrigin/uBlock-issues/issues/2265#issuecomment-1637094149
|
||||
getDisableFlashAds() {
|
||||
}
|
||||
setDisableFlashAds() {
|
||||
}
|
||||
}
|
||||
ImaSdkSettings.CompanionBackfillMode = {
|
||||
ALWAYS: "always",
|
||||
ON_MASTER_AD: "on_master_ad",
|
||||
};
|
||||
ImaSdkSettings.VpaidMode = {
|
||||
DISABLED: 0,
|
||||
ENABLED: 1,
|
||||
INSECURE: 2,
|
||||
};
|
||||
|
||||
class EventHandler {
|
||||
constructor() {
|
||||
this.listeners = new Map();
|
||||
}
|
||||
|
||||
_dispatch(e) {
|
||||
let listeners = this.listeners.get(e.type);
|
||||
listeners = listeners ? Array.from(listeners.values()) : [];
|
||||
for (const listener of listeners) {
|
||||
try {
|
||||
listener(e);
|
||||
} catch (r) {
|
||||
console.error(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
addEventListener(types, c, options, context) {
|
||||
if (!Array.isArray(types)) {
|
||||
types = [types];
|
||||
}
|
||||
|
||||
for (const t of types) {
|
||||
if (!this.listeners.has(t)) {
|
||||
this.listeners.set(t, new Map());
|
||||
}
|
||||
this.listeners.get(t).set(c, c.bind(context || this));
|
||||
}
|
||||
}
|
||||
|
||||
removeEventListener(types, c) {
|
||||
if (!Array.isArray(types)) {
|
||||
types = [types];
|
||||
}
|
||||
|
||||
for (const t of types) {
|
||||
const typeSet = this.listeners.get(t);
|
||||
if (typeSet) {
|
||||
typeSet.delete(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class AdsLoader extends EventHandler {
|
||||
constructor() {
|
||||
super();
|
||||
this.settings = new ImaSdkSettings();
|
||||
}
|
||||
contentComplete() {}
|
||||
destroy() {}
|
||||
getSettings() {
|
||||
return this.settings;
|
||||
}
|
||||
getVersion() {
|
||||
return VERSION;
|
||||
}
|
||||
requestAds(/*r, c*/) {
|
||||
// If autoplay is disabled and the page is trying to autoplay a tracking
|
||||
// ad, then IMA fails with an error, and the page is expected to request
|
||||
// ads again later when the user clicks to play.
|
||||
CheckCanAutoplay().then(
|
||||
() => {
|
||||
const { ADS_MANAGER_LOADED } = AdsManagerLoadedEvent.Type;
|
||||
this._dispatch(new ima.AdsManagerLoadedEvent(ADS_MANAGER_LOADED));
|
||||
},
|
||||
() => {
|
||||
const e = new ima.AdError(
|
||||
"adPlayError",
|
||||
1205,
|
||||
1205,
|
||||
"The browser prevented playback initiated without user interaction."
|
||||
);
|
||||
this._dispatch(new ima.AdErrorEvent(e));
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class AdsManager extends EventHandler {
|
||||
constructor() {
|
||||
super();
|
||||
this.volume = 1;
|
||||
this._enablePreloading = false;
|
||||
}
|
||||
collapse() {}
|
||||
configureAdsManager() {}
|
||||
destroy() {}
|
||||
discardAdBreak() {}
|
||||
expand() {}
|
||||
focus() {}
|
||||
getAdSkippableState() {
|
||||
return false;
|
||||
}
|
||||
getCuePoints() {
|
||||
return [0];
|
||||
}
|
||||
getCurrentAd() {
|
||||
return currentAd;
|
||||
}
|
||||
getCurrentAdCuePoints() {
|
||||
return [];
|
||||
}
|
||||
getRemainingTime() {
|
||||
return 0;
|
||||
}
|
||||
getVolume() {
|
||||
return this.volume;
|
||||
}
|
||||
init(/*w, h, m, e*/) {
|
||||
if (this._enablePreloading) {
|
||||
this._dispatch(new ima.AdEvent(AdEvent.Type.LOADED));
|
||||
}
|
||||
}
|
||||
isCustomClickTrackingUsed() {
|
||||
return false;
|
||||
}
|
||||
isCustomPlaybackUsed() {
|
||||
return false;
|
||||
}
|
||||
pause() {}
|
||||
requestNextAdBreak() {}
|
||||
resize(/*w, h, m*/) {}
|
||||
resume() {}
|
||||
setVolume(v) {
|
||||
this.volume = v;
|
||||
}
|
||||
skip() {}
|
||||
start() {
|
||||
requestAnimationFrame(() => {
|
||||
for (const type of [
|
||||
AdEvent.Type.LOADED,
|
||||
AdEvent.Type.STARTED,
|
||||
AdEvent.Type.CONTENT_PAUSE_REQUESTED,
|
||||
AdEvent.Type.AD_BUFFERING,
|
||||
AdEvent.Type.FIRST_QUARTILE,
|
||||
AdEvent.Type.MIDPOINT,
|
||||
AdEvent.Type.THIRD_QUARTILE,
|
||||
AdEvent.Type.COMPLETE,
|
||||
AdEvent.Type.ALL_ADS_COMPLETED,
|
||||
AdEvent.Type.CONTENT_RESUME_REQUESTED,
|
||||
]) {
|
||||
try {
|
||||
this._dispatch(new ima.AdEvent(type));
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
stop() {}
|
||||
updateAdsRenderingSettings(/*s*/) {}
|
||||
}
|
||||
|
||||
class AdsRenderingSettings {}
|
||||
|
||||
class AdsRequest {
|
||||
setAdWillAutoPlay() {}
|
||||
setAdWillPlayMuted() {}
|
||||
setContinuousPlayback() {}
|
||||
}
|
||||
|
||||
class AdPodInfo {
|
||||
getAdPosition() {
|
||||
return 1;
|
||||
}
|
||||
getIsBumper() {
|
||||
return false;
|
||||
}
|
||||
getMaxDuration() {
|
||||
return -1;
|
||||
}
|
||||
getPodIndex() {
|
||||
return 1;
|
||||
}
|
||||
getTimeOffset() {
|
||||
return 0;
|
||||
}
|
||||
getTotalAds() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
class Ad {
|
||||
constructor() {
|
||||
this._pi = new AdPodInfo();
|
||||
}
|
||||
getAdId() {
|
||||
return "";
|
||||
}
|
||||
getAdPodInfo() {
|
||||
return this._pi;
|
||||
}
|
||||
getAdSystem() {
|
||||
return "";
|
||||
}
|
||||
getAdvertiserName() {
|
||||
return "";
|
||||
}
|
||||
getApiFramework() {
|
||||
return null;
|
||||
}
|
||||
getCompanionAds() {
|
||||
return [];
|
||||
}
|
||||
getContentType() {
|
||||
return "";
|
||||
}
|
||||
getCreativeAdId() {
|
||||
return "";
|
||||
}
|
||||
getCreativeId() {
|
||||
return "";
|
||||
}
|
||||
getDealId() {
|
||||
return "";
|
||||
}
|
||||
getDescription() {
|
||||
return "";
|
||||
}
|
||||
getDuration() {
|
||||
return 8.5;
|
||||
}
|
||||
getHeight() {
|
||||
return 0;
|
||||
}
|
||||
getMediaUrl() {
|
||||
return null;
|
||||
}
|
||||
getMinSuggestedDuration() {
|
||||
return -2;
|
||||
}
|
||||
getSkipTimeOffset() {
|
||||
return -1;
|
||||
}
|
||||
getSurveyUrl() {
|
||||
return null;
|
||||
}
|
||||
getTitle() {
|
||||
return "";
|
||||
}
|
||||
getTraffickingParameters() {
|
||||
return {};
|
||||
}
|
||||
getTraffickingParametersString() {
|
||||
return "";
|
||||
}
|
||||
getUiElements() {
|
||||
return [""];
|
||||
}
|
||||
getUniversalAdIdRegistry() {
|
||||
return "unknown";
|
||||
}
|
||||
getUniversalAdIds() {
|
||||
return [new UniversalAdIdInfo()];
|
||||
}
|
||||
getUniversalAdIdValue() {
|
||||
return "unknown";
|
||||
}
|
||||
getVastMediaBitrate() {
|
||||
return 0;
|
||||
}
|
||||
getVastMediaHeight() {
|
||||
return 0;
|
||||
}
|
||||
getVastMediaWidth() {
|
||||
return 0;
|
||||
}
|
||||
getWidth() {
|
||||
return 0;
|
||||
}
|
||||
getWrapperAdIds() {
|
||||
return [""];
|
||||
}
|
||||
getWrapperAdSystems() {
|
||||
return [""];
|
||||
}
|
||||
getWrapperCreativeIds() {
|
||||
return [""];
|
||||
}
|
||||
isLinear() {
|
||||
return true;
|
||||
}
|
||||
isSkippable() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
class CompanionAd {
|
||||
getAdSlotId() {
|
||||
return "";
|
||||
}
|
||||
getContent() {
|
||||
return "";
|
||||
}
|
||||
getContentType() {
|
||||
return "";
|
||||
}
|
||||
getHeight() {
|
||||
return 1;
|
||||
}
|
||||
getWidth() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
class AdError {
|
||||
constructor(type, code, vast, message) {
|
||||
this.errorCode = code;
|
||||
this.message = message;
|
||||
this.type = type;
|
||||
this.vastErrorCode = vast;
|
||||
}
|
||||
getErrorCode() {
|
||||
return this.errorCode;
|
||||
}
|
||||
getInnerError() {
|
||||
return null;
|
||||
}
|
||||
getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
getType() {
|
||||
return this.type;
|
||||
}
|
||||
getVastErrorCode() {
|
||||
return this.vastErrorCode;
|
||||
}
|
||||
toString() {
|
||||
return `AdError ${this.errorCode}: ${this.message}`;
|
||||
}
|
||||
}
|
||||
AdError.ErrorCode = {};
|
||||
AdError.Type = {};
|
||||
|
||||
const isEngadget = () => {
|
||||
try {
|
||||
for (const ctx of Object.values(window.vidible._getContexts())) {
|
||||
const player = ctx.getPlayer();
|
||||
if (!player) { continue;}
|
||||
const div = player.div;
|
||||
if (!div) { continue; }
|
||||
if (div.innerHTML.includes("www.engadget.com")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} catch (_) {}
|
||||
return false;
|
||||
};
|
||||
|
||||
const currentAd = isEngadget() ? undefined : new Ad();
|
||||
|
||||
class AdEvent {
|
||||
constructor(type) {
|
||||
this.type = type;
|
||||
}
|
||||
getAd() {
|
||||
return currentAd;
|
||||
}
|
||||
getAdData() {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
AdEvent.Type = {
|
||||
AD_BREAK_READY: "adBreakReady",
|
||||
AD_BUFFERING: "adBuffering",
|
||||
AD_CAN_PLAY: "adCanPlay",
|
||||
AD_METADATA: "adMetadata",
|
||||
AD_PROGRESS: "adProgress",
|
||||
ALL_ADS_COMPLETED: "allAdsCompleted",
|
||||
CLICK: "click",
|
||||
COMPLETE: "complete",
|
||||
CONTENT_PAUSE_REQUESTED: "contentPauseRequested",
|
||||
CONTENT_RESUME_REQUESTED: "contentResumeRequested",
|
||||
DURATION_CHANGE: "durationChange",
|
||||
EXPANDED_CHANGED: "expandedChanged",
|
||||
FIRST_QUARTILE: "firstQuartile",
|
||||
IMPRESSION: "impression",
|
||||
INTERACTION: "interaction",
|
||||
LINEAR_CHANGE: "linearChange",
|
||||
LINEAR_CHANGED: "linearChanged",
|
||||
LOADED: "loaded",
|
||||
LOG: "log",
|
||||
MIDPOINT: "midpoint",
|
||||
PAUSED: "pause",
|
||||
RESUMED: "resume",
|
||||
SKIPPABLE_STATE_CHANGED: "skippableStateChanged",
|
||||
SKIPPED: "skip",
|
||||
STARTED: "start",
|
||||
THIRD_QUARTILE: "thirdQuartile",
|
||||
USER_CLOSE: "userClose",
|
||||
VIDEO_CLICKED: "videoClicked",
|
||||
VIDEO_ICON_CLICKED: "videoIconClicked",
|
||||
VIEWABLE_IMPRESSION: "viewable_impression",
|
||||
VOLUME_CHANGED: "volumeChange",
|
||||
VOLUME_MUTED: "mute",
|
||||
};
|
||||
|
||||
class AdErrorEvent {
|
||||
constructor(error) {
|
||||
this.type = "adError";
|
||||
this.error = error;
|
||||
}
|
||||
getError() {
|
||||
return this.error;
|
||||
}
|
||||
getUserRequestContext() {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
AdErrorEvent.Type = {
|
||||
AD_ERROR: "adError",
|
||||
};
|
||||
|
||||
const manager = new AdsManager();
|
||||
|
||||
class AdsManagerLoadedEvent {
|
||||
constructor(type) {
|
||||
this.type = type;
|
||||
}
|
||||
getAdsManager(c, settings) {
|
||||
if (settings && settings.enablePreloading) {
|
||||
manager._enablePreloading = true;
|
||||
}
|
||||
return manager;
|
||||
}
|
||||
getUserRequestContext() {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
AdsManagerLoadedEvent.Type = {
|
||||
ADS_MANAGER_LOADED: "adsManagerLoaded",
|
||||
};
|
||||
|
||||
class CustomContentLoadedEvent {}
|
||||
CustomContentLoadedEvent.Type = {
|
||||
CUSTOM_CONTENT_LOADED: "deprecated-event",
|
||||
};
|
||||
|
||||
class CompanionAdSelectionSettings {}
|
||||
CompanionAdSelectionSettings.CreativeType = {
|
||||
ALL: "All",
|
||||
FLASH: "Flash",
|
||||
IMAGE: "Image",
|
||||
};
|
||||
CompanionAdSelectionSettings.ResourceType = {
|
||||
ALL: "All",
|
||||
HTML: "Html",
|
||||
IFRAME: "IFrame",
|
||||
STATIC: "Static",
|
||||
};
|
||||
CompanionAdSelectionSettings.SizeCriteria = {
|
||||
IGNORE: "IgnoreSize",
|
||||
SELECT_EXACT_MATCH: "SelectExactMatch",
|
||||
SELECT_NEAR_MATCH: "SelectNearMatch",
|
||||
};
|
||||
|
||||
class AdCuePoints {
|
||||
getCuePoints() {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
class AdProgressData {}
|
||||
|
||||
class UniversalAdIdInfo {
|
||||
getAdIdRegistry() {
|
||||
return "";
|
||||
}
|
||||
getAdIdValue() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
Object.assign(ima, {
|
||||
AdCuePoints,
|
||||
AdDisplayContainer,
|
||||
AdError,
|
||||
AdErrorEvent,
|
||||
AdEvent,
|
||||
AdPodInfo,
|
||||
AdProgressData,
|
||||
AdsLoader,
|
||||
AdsManager: manager,
|
||||
AdsManagerLoadedEvent,
|
||||
AdsRenderingSettings,
|
||||
AdsRequest,
|
||||
CompanionAd,
|
||||
CompanionAdSelectionSettings,
|
||||
CustomContentLoadedEvent,
|
||||
gptProxyInstance: {},
|
||||
ImaSdkSettings,
|
||||
OmidAccessMode: {
|
||||
DOMAIN: "domain",
|
||||
FULL: "full",
|
||||
LIMITED: "limited",
|
||||
},
|
||||
OmidVerificationVendor: {
|
||||
1: "OTHER",
|
||||
2: "GOOGLE",
|
||||
GOOGLE: 2,
|
||||
OTHER: 1
|
||||
},
|
||||
settings: new ImaSdkSettings(),
|
||||
UiElements: {
|
||||
AD_ATTRIBUTION: "adAttribution",
|
||||
COUNTDOWN: "countdown",
|
||||
},
|
||||
UniversalAdIdInfo,
|
||||
VERSION,
|
||||
ViewMode: {
|
||||
FULLSCREEN: "fullscreen",
|
||||
NORMAL: "normal",
|
||||
},
|
||||
});
|
||||
|
||||
if (!window.google) {
|
||||
window.google = {};
|
||||
}
|
||||
|
||||
window.google.ima = ima;
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const init = ( ) => {
|
||||
window.adsbygoogle = {
|
||||
loaded: true,
|
||||
push: function() {
|
||||
}
|
||||
};
|
||||
const phs = document.querySelectorAll('.adsbygoogle');
|
||||
const css = 'height:1px!important;max-height:1px!important;max-width:1px!important;width:1px!important;';
|
||||
for ( let i = 0; i < phs.length; i++ ) {
|
||||
const id = `aswift_${i}`;
|
||||
if ( document.querySelector(`iframe#${id}`) !== null ) { continue; }
|
||||
const fr = document.createElement('iframe');
|
||||
fr.id = id;
|
||||
fr.style = css;
|
||||
const cfr = document.createElement('iframe');
|
||||
cfr.id = `google_ads_frame${i}`;
|
||||
fr.appendChild(cfr);
|
||||
const ph = phs[i];
|
||||
ph.appendChild(fr);
|
||||
ph.setAttribute('data-adsbygoogle-status', 'done');
|
||||
}
|
||||
};
|
||||
if (
|
||||
document.querySelectorAll('.adsbygoogle').length === 0 &&
|
||||
document.readyState === 'loading'
|
||||
) {
|
||||
window.addEventListener('DOMContentLoaded', init, { once: true });
|
||||
} else {
|
||||
init();
|
||||
}
|
||||
})();
|
||||
|
||||
/*
|
||||
pagead2.googlesyndication.com/pagead/js/adsbygoogle.js,adsbygoogle-placeholder,adsbygoogleStatus,google_ad_channel,google_ad_client,google_ad_format,google_ad_frequency_hint,google_ad_height,google_ad_host,google_ad_host_channel,google_ad_modifications,google_ad_region,google_ad_resizable,google_ad_resize,google_ad_section,google_ad_semantic_area,google_ad_width,google_adbreak_test,google_ads_frame,google_ads_iframe,google_adtest,google_admob_interstitial_slot,google_admob_rewarded_slot,google_admob_ads_only,google-adsense-platform-account,google_adsense_settings,google_ama_config,google-ama-order-assurance,google_ama_settings,google_ama_state,google_apltlad,google_audio_sense,google-auto-placed-read-aloud-player-reserved,google_debug_params,google_full_width_responsive,google_full_width_responsive_allowed,google_image_requests,google_js_errors,google_js_reporting_queue,google_loader_features_used,google_llp,google_logging_queue,google_max_ad_content_rating,google_measure_js_timing,google_ml_rank,google_overlays,google_override_format,google_package,google_page_url,google_persistent_state_async,google_pgb_reactive,google_placement_id,google_prev_ad_formats_by_region,google_prev_ad_slotnames_by_region,google_reactive_ad_format,google_reactive_ads_global_state,google_resizing_height,google_resizing_width,google_responsive_auto_format,google_responsive_dummy_ad,google_responsive_formats,google_restrict_data_processing,google_rum_task_id_counter,google_safe_for_responsive_override,google_shadow_mode,google_srt,google_tag_for_under_age_of_consent,google_tag_origin,google_tag_partner,google_traffic_source,google_unique_id,googletag
|
||||
*/
|
||||
@@ -0,0 +1,43 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const noopfn = function() {
|
||||
};
|
||||
const w = window;
|
||||
w.ga = w.ga || noopfn;
|
||||
const dl = w.dataLayer;
|
||||
if ( dl instanceof Object === false ) { return; }
|
||||
if ( dl.hide instanceof Object && typeof dl.hide.end === 'function' ) {
|
||||
dl.hide.end();
|
||||
}
|
||||
if ( typeof dl.push === 'function' ) {
|
||||
dl.push = function(o) {
|
||||
if (
|
||||
o instanceof Object &&
|
||||
typeof o.eventCallback === 'function'
|
||||
) {
|
||||
setTimeout(o.eventCallback, 1);
|
||||
}
|
||||
};
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,154 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
// https://developers.google.com/doubleclick-gpt/reference
|
||||
const noopfn = function() {
|
||||
}.bind();
|
||||
const noopthisfn = function() {
|
||||
return this;
|
||||
};
|
||||
const noopnullfn = function() {
|
||||
return null;
|
||||
};
|
||||
const nooparrayfn = function() {
|
||||
return [];
|
||||
};
|
||||
const noopstrfn = function() {
|
||||
return '';
|
||||
};
|
||||
//
|
||||
const companionAdsService = {
|
||||
addEventListener: noopthisfn,
|
||||
enableSyncLoading: noopfn,
|
||||
setRefreshUnfilledSlots: noopfn
|
||||
};
|
||||
const contentService = {
|
||||
addEventListener: noopthisfn,
|
||||
setContent: noopfn
|
||||
};
|
||||
const PassbackSlot = function() {
|
||||
};
|
||||
let p = PassbackSlot.prototype;
|
||||
p.display = noopfn;
|
||||
p.get = noopnullfn;
|
||||
p.set = noopthisfn;
|
||||
p.setClickUrl = noopthisfn;
|
||||
p.setTagForChildDirectedTreatment = noopthisfn;
|
||||
p.setTargeting = noopthisfn;
|
||||
p.updateTargetingFromMap = noopthisfn;
|
||||
const pubAdsService = {
|
||||
addEventListener: noopthisfn,
|
||||
clear: noopfn,
|
||||
clearCategoryExclusions: noopthisfn,
|
||||
clearTagForChildDirectedTreatment: noopthisfn,
|
||||
clearTargeting: noopthisfn,
|
||||
collapseEmptyDivs: noopfn,
|
||||
defineOutOfPagePassback: function() { return new PassbackSlot(); },
|
||||
definePassback: function() { return new PassbackSlot(); },
|
||||
disableInitialLoad: noopfn,
|
||||
display: noopfn,
|
||||
enableAsyncRendering: noopfn,
|
||||
enableLazyLoad: noopfn,
|
||||
enableSingleRequest: noopfn,
|
||||
enableSyncRendering: noopfn,
|
||||
enableVideoAds: noopfn,
|
||||
get: noopnullfn,
|
||||
getAttributeKeys: nooparrayfn,
|
||||
getTargeting: nooparrayfn,
|
||||
getTargetingKeys: nooparrayfn,
|
||||
getSlots: nooparrayfn,
|
||||
refresh: noopfn,
|
||||
removeEventListener: noopfn,
|
||||
set: noopthisfn,
|
||||
setCategoryExclusion: noopthisfn,
|
||||
setCentering: noopfn,
|
||||
setCookieOptions: noopthisfn,
|
||||
setForceSafeFrame: noopthisfn,
|
||||
setLocation: noopthisfn,
|
||||
setPublisherProvidedId: noopthisfn,
|
||||
setPrivacySettings: noopthisfn,
|
||||
setRequestNonPersonalizedAds: noopthisfn,
|
||||
setSafeFrameConfig: noopthisfn,
|
||||
setTagForChildDirectedTreatment: noopthisfn,
|
||||
setTargeting: noopthisfn,
|
||||
setVideoContent: noopthisfn,
|
||||
updateCorrelator: noopfn
|
||||
};
|
||||
const SizeMappingBuilder = function() {
|
||||
};
|
||||
p = SizeMappingBuilder.prototype;
|
||||
p.addSize = noopthisfn;
|
||||
p.build = noopnullfn;
|
||||
const Slot = function() {
|
||||
};
|
||||
p = Slot.prototype;
|
||||
p.addService = noopthisfn;
|
||||
p.clearCategoryExclusions = noopthisfn;
|
||||
p.clearTargeting = noopthisfn;
|
||||
p.defineSizeMapping = noopthisfn;
|
||||
p.get = noopnullfn;
|
||||
p.getAdUnitPath = nooparrayfn;
|
||||
p.getAttributeKeys = nooparrayfn;
|
||||
p.getCategoryExclusions = nooparrayfn;
|
||||
p.getDomId = noopstrfn;
|
||||
p.getResponseInformation = noopnullfn;
|
||||
p.getSlotElementId = noopstrfn;
|
||||
p.getSlotId = noopthisfn;
|
||||
p.getTargeting = nooparrayfn;
|
||||
p.getTargetingKeys = nooparrayfn;
|
||||
p.set = noopthisfn;
|
||||
p.setCategoryExclusion = noopthisfn;
|
||||
p.setClickUrl = noopthisfn;
|
||||
p.setCollapseEmptyDiv = noopthisfn;
|
||||
p.setTargeting = noopthisfn;
|
||||
p.updateTargetingFromMap = noopthisfn;
|
||||
//
|
||||
const gpt = window.googletag || {};
|
||||
const cmd = gpt.cmd || [];
|
||||
gpt.apiReady = true;
|
||||
gpt.cmd = [];
|
||||
gpt.cmd.push = function(a) {
|
||||
try {
|
||||
a();
|
||||
} catch (ex) {
|
||||
}
|
||||
return 1;
|
||||
};
|
||||
gpt.companionAds = function() { return companionAdsService; };
|
||||
gpt.content = function() { return contentService; };
|
||||
gpt.defineOutOfPageSlot = function() { return new Slot(); };
|
||||
gpt.defineSlot = function() { return new Slot(); };
|
||||
gpt.destroySlots = noopfn;
|
||||
gpt.disablePublisherConsole = noopfn;
|
||||
gpt.display = noopfn;
|
||||
gpt.enableServices = noopfn;
|
||||
gpt.getVersion = noopstrfn;
|
||||
gpt.pubads = function() { return pubAdsService; };
|
||||
gpt.pubadsReady = true;
|
||||
gpt.setAdIframeTitle = noopfn;
|
||||
gpt.sizeMapping = function() { return new SizeMappingBuilder(); };
|
||||
window.googletag = gpt;
|
||||
while ( cmd.length !== 0 ) {
|
||||
gpt.cmd.push(cmd.shift());
|
||||
}
|
||||
})();
|
||||
46
uBlock0.chromium/web_accessible_resources/hd-main.js
Normal file
46
uBlock0.chromium/web_accessible_resources/hd-main.js
Normal file
@@ -0,0 +1,46 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const l = {};
|
||||
const noopfn = function() {
|
||||
};
|
||||
const props = [
|
||||
"$j","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Nj","Oc","Pc","Pe",
|
||||
"Qc","Qe","Rc","Re","Ri","Sc","Tc","Uc","Vc","Wc","Wg","Xc","Xg","Yc","Yd",
|
||||
"ad","ae","bd","bf","cd","dd","ed","ef","ek","fd","fg","fh","fk","gd","hd",
|
||||
"ig","ij","jd","kd","ke","ld","md","mi","nd","od","oh","pd","pf","qd","rd",
|
||||
"sd","td","ud","vd","wd","wg","xd","xh","yd","zd",
|
||||
"$d","$e","$k","Ae","Af","Aj","Be","Ce","De","Ee","Ek","Eo","Ep","Fe","Fo",
|
||||
"Ge","Gh","Hk","Ie","Ip","Je","Ke","Kk","Kq","Le","Lh","Lk","Me","Mm","Ne",
|
||||
"Oe","Pe","Qe","Re","Rp","Se","Te","Ue","Ve","Vp","We","Xd","Xe","Yd","Ye",
|
||||
"Zd","Ze","Zf","Zk","ae","af","al","be","bf","bg","ce","cp","df","di","ee",
|
||||
"ef","fe","ff","gf","gm","he","hf","ie","je","jf","ke","kf","kl","le","lf",
|
||||
"lk","mf","mg","mn","nf","oe","of","pe","pf","pg","qe","qf","re","rf","se",
|
||||
"sf","te","tf","ti","ue","uf","ve","vf","we","wf","wg","wi","xe","ye","yf",
|
||||
"yk","yl","ze","zf","zk"
|
||||
];
|
||||
for ( let i = 0; i < props.length; i++ ) {
|
||||
l[props[i]] = noopfn;
|
||||
}
|
||||
window.L = window.J = l;
|
||||
})();
|
||||
87
uBlock0.chromium/web_accessible_resources/nobab.js
Normal file
87
uBlock0.chromium/web_accessible_resources/nobab.js
Normal file
@@ -0,0 +1,87 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const signatures = [
|
||||
[ 'blockadblock' ],
|
||||
[ 'babasbm' ],
|
||||
[ /getItem\('babn'\)/ ],
|
||||
[
|
||||
'getElementById',
|
||||
'String.fromCharCode',
|
||||
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
|
||||
'charAt',
|
||||
'DOMContentLoaded',
|
||||
'AdBlock',
|
||||
'addEventListener',
|
||||
'doScroll',
|
||||
'fromCharCode',
|
||||
'<<2|r>>4',
|
||||
'sessionStorage',
|
||||
'clientWidth',
|
||||
'localStorage',
|
||||
'Math',
|
||||
'random'
|
||||
],
|
||||
];
|
||||
const check = function(s) {
|
||||
for ( let i = 0; i < signatures.length; i++ ) {
|
||||
const tokens = signatures[i];
|
||||
let match = 0;
|
||||
for ( let j = 0; j < tokens.length; j++ ) {
|
||||
const token = tokens[j];
|
||||
const pos = token instanceof RegExp
|
||||
? s.search(token)
|
||||
: s.indexOf(token);
|
||||
if ( pos !== -1 ) { match += 1; }
|
||||
}
|
||||
if ( (match / tokens.length) >= 0.8 ) { return true; }
|
||||
}
|
||||
return false;
|
||||
};
|
||||
window.eval = new Proxy(window.eval, { // jshint ignore: line
|
||||
apply: function(target, thisArg, args) {
|
||||
const a = args[0];
|
||||
if ( typeof a !== 'string' || !check(a) ) {
|
||||
return target.apply(thisArg, args);
|
||||
}
|
||||
if ( document.body ) {
|
||||
document.body.style.removeProperty('visibility');
|
||||
}
|
||||
let el = document.getElementById('babasbmsgx');
|
||||
if ( el ) {
|
||||
el.parentNode.removeChild(el);
|
||||
}
|
||||
}
|
||||
});
|
||||
window.setTimeout = new Proxy(window.setTimeout, {
|
||||
apply: function(target, thisArg, args) {
|
||||
const a = args[0];
|
||||
if (
|
||||
typeof a !== 'string' ||
|
||||
/\.bab_elementid.$/.test(a) === false
|
||||
) {
|
||||
return target.apply(thisArg, args);
|
||||
}
|
||||
}
|
||||
});
|
||||
})();
|
||||
42
uBlock0.chromium/web_accessible_resources/nobab2.js
Normal file
42
uBlock0.chromium/web_accessible_resources/nobab2.js
Normal file
@@ -0,0 +1,42 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2021-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const script = document.currentScript;
|
||||
if ( script === null ) { return; }
|
||||
const src = script.src;
|
||||
if ( typeof src !== 'string' ) { return; }
|
||||
// The scriplet is meant to act ONLY when it's being used as a redirection
|
||||
// for specific domains.
|
||||
const re = new RegExp(
|
||||
'^https?://[\\w-]+\\.(' +
|
||||
[
|
||||
'adclixx\\.net',
|
||||
'adnetasia\\.com',
|
||||
'adtrackers\\.net',
|
||||
'bannertrack\\.net',
|
||||
].join('|') +
|
||||
')/.'
|
||||
);
|
||||
if ( re.test(src) === false ) { return; }
|
||||
window.nH7eXzOsG = 858;
|
||||
})();
|
||||
28
uBlock0.chromium/web_accessible_resources/noeval-silent.js
Normal file
28
uBlock0.chromium/web_accessible_resources/noeval-silent.js
Normal file
@@ -0,0 +1,28 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
window.eval = new Proxy(window.eval, { // jshint ignore: line
|
||||
apply: function() {
|
||||
}
|
||||
});
|
||||
})();
|
||||
30
uBlock0.chromium/web_accessible_resources/noeval.js
Normal file
30
uBlock0.chromium/web_accessible_resources/noeval.js
Normal file
@@ -0,0 +1,30 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const log = console.log.bind(console);
|
||||
window.eval = new Proxy(window.eval, { // jshint ignore: line
|
||||
apply: function(target, thisArg, args) {
|
||||
log(`Document tried to eval... ${args[0]}\n`);
|
||||
}
|
||||
});
|
||||
})();
|
||||
67
uBlock0.chromium/web_accessible_resources/nofab.js
Normal file
67
uBlock0.chromium/web_accessible_resources/nofab.js
Normal file
@@ -0,0 +1,67 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const noopfn = function() {
|
||||
};
|
||||
const Fab = function() {};
|
||||
Fab.prototype.check = noopfn;
|
||||
Fab.prototype.clearEvent = noopfn;
|
||||
Fab.prototype.emitEvent = noopfn;
|
||||
Fab.prototype.on = function(a, b) {
|
||||
if ( !a ) { b(); }
|
||||
return this;
|
||||
};
|
||||
Fab.prototype.onDetected = function() {
|
||||
return this;
|
||||
};
|
||||
Fab.prototype.onNotDetected = function(a) {
|
||||
a();
|
||||
return this;
|
||||
};
|
||||
Fab.prototype.setOption = noopfn;
|
||||
Fab.prototype.options = {
|
||||
set: noopfn,
|
||||
get: noopfn,
|
||||
};
|
||||
const fab = new Fab();
|
||||
const getSetFab = {
|
||||
get: function() { return Fab; },
|
||||
set: function() {}
|
||||
};
|
||||
const getsetfab = {
|
||||
get: function() { return fab; },
|
||||
set: function() {}
|
||||
};
|
||||
if ( window.hasOwnProperty('FuckAdBlock') ) { window.FuckAdBlock = Fab; }
|
||||
else { Object.defineProperty(window, 'FuckAdBlock', getSetFab); }
|
||||
if ( window.hasOwnProperty('BlockAdBlock') ) { window.BlockAdBlock = Fab; }
|
||||
else { Object.defineProperty(window, 'BlockAdBlock', getSetFab); }
|
||||
if ( window.hasOwnProperty('SniffAdBlock') ) { window.SniffAdBlock = Fab; }
|
||||
else { Object.defineProperty(window, 'SniffAdBlock', getSetFab); }
|
||||
if ( window.hasOwnProperty('fuckAdBlock') ) { window.fuckAdBlock = fab; }
|
||||
else { Object.defineProperty(window, 'fuckAdBlock', getsetfab); }
|
||||
if ( window.hasOwnProperty('blockAdBlock') ) { window.blockAdBlock = fab; }
|
||||
else { Object.defineProperty(window, 'blockAdBlock', getsetfab); }
|
||||
if ( window.hasOwnProperty('sniffAdBlock') ) { window.sniffAdBlock = fab; }
|
||||
else { Object.defineProperty(window, 'sniffAdBlock', getsetfab); }
|
||||
})();
|
||||
BIN
uBlock0.chromium/web_accessible_resources/noop-0.1s.mp3
Normal file
BIN
uBlock0.chromium/web_accessible_resources/noop-0.1s.mp3
Normal file
Binary file not shown.
BIN
uBlock0.chromium/web_accessible_resources/noop-0.5s.mp3
Normal file
BIN
uBlock0.chromium/web_accessible_resources/noop-0.5s.mp3
Normal file
Binary file not shown.
BIN
uBlock0.chromium/web_accessible_resources/noop-1s.mp4
Normal file
BIN
uBlock0.chromium/web_accessible_resources/noop-1s.mp4
Normal file
Binary file not shown.
1
uBlock0.chromium/web_accessible_resources/noop-vast2.xml
Normal file
1
uBlock0.chromium/web_accessible_resources/noop-vast2.xml
Normal file
@@ -0,0 +1 @@
|
||||
<VAST version="2.0"></VAST>
|
||||
1
uBlock0.chromium/web_accessible_resources/noop-vast3.xml
Normal file
1
uBlock0.chromium/web_accessible_resources/noop-vast3.xml
Normal file
@@ -0,0 +1 @@
|
||||
<VAST version="3.0"></VAST>
|
||||
1
uBlock0.chromium/web_accessible_resources/noop-vast4.xml
Normal file
1
uBlock0.chromium/web_accessible_resources/noop-vast4.xml
Normal file
@@ -0,0 +1 @@
|
||||
<VAST version="4.0"></VAST>
|
||||
1
uBlock0.chromium/web_accessible_resources/noop-vmap1.xml
Normal file
1
uBlock0.chromium/web_accessible_resources/noop-vmap1.xml
Normal file
@@ -0,0 +1 @@
|
||||
<vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" version="1.0"></vmap:VMAP>
|
||||
1
uBlock0.chromium/web_accessible_resources/noop.css
Normal file
1
uBlock0.chromium/web_accessible_resources/noop.css
Normal file
@@ -0,0 +1 @@
|
||||
/* */
|
||||
5
uBlock0.chromium/web_accessible_resources/noop.html
Normal file
5
uBlock0.chromium/web_accessible_resources/noop.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head><title></title></head>
|
||||
<body></body>
|
||||
</html>
|
||||
3
uBlock0.chromium/web_accessible_resources/noop.js
Normal file
3
uBlock0.chromium/web_accessible_resources/noop.js
Normal file
@@ -0,0 +1,3 @@
|
||||
(function() {
|
||||
'use strict';
|
||||
})();
|
||||
1
uBlock0.chromium/web_accessible_resources/noop.json
Normal file
1
uBlock0.chromium/web_accessible_resources/noop.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
1
uBlock0.chromium/web_accessible_resources/noop.txt
Normal file
1
uBlock0.chromium/web_accessible_resources/noop.txt
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
72
uBlock0.chromium/web_accessible_resources/outbrain-widget.js
Normal file
72
uBlock0.chromium/web_accessible_resources/outbrain-widget.js
Normal file
@@ -0,0 +1,72 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const noopfn = function() {
|
||||
};
|
||||
const obr = {};
|
||||
const methods = [
|
||||
'callClick',
|
||||
'callLoadMore',
|
||||
'callRecs',
|
||||
'callUserZapping',
|
||||
'callWhatIs',
|
||||
'cancelRecommendation',
|
||||
'cancelRecs',
|
||||
'closeCard',
|
||||
'closeModal',
|
||||
'closeTbx',
|
||||
'errorInjectionHandler',
|
||||
'getCountOfRecs',
|
||||
'getStat',
|
||||
'imageError',
|
||||
'manualVideoClicked',
|
||||
'onOdbReturn',
|
||||
'onVideoClick',
|
||||
'pagerLoad',
|
||||
'recClicked',
|
||||
'refreshSpecificWidget',
|
||||
'renderSpaWidgets',
|
||||
'refreshWidget',
|
||||
'reloadWidget',
|
||||
'researchWidget',
|
||||
'returnedError',
|
||||
'returnedHtmlData',
|
||||
'returnedIrdData',
|
||||
'returnedJsonData',
|
||||
'scrollLoad',
|
||||
'showDescription',
|
||||
'showRecInIframe',
|
||||
'userZappingMessage',
|
||||
'zappingFormAction'
|
||||
];
|
||||
obr.extern = {
|
||||
video: {
|
||||
getVideoRecs: noopfn,
|
||||
videoClicked: noopfn
|
||||
}
|
||||
};
|
||||
methods.forEach(function(a) {
|
||||
obr.extern[a] = noopfn;
|
||||
});
|
||||
window.OBR = window.OBR || obr;
|
||||
})();
|
||||
30
uBlock0.chromium/web_accessible_resources/popads-dummy.js
Normal file
30
uBlock0.chromium/web_accessible_resources/popads-dummy.js
Normal file
@@ -0,0 +1,30 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
delete window.PopAds;
|
||||
delete window.popns;
|
||||
Object.defineProperties(window, {
|
||||
PopAds: { value: {} },
|
||||
popns: { value: {} }
|
||||
});
|
||||
})();
|
||||
40
uBlock0.chromium/web_accessible_resources/popads.js
Normal file
40
uBlock0.chromium/web_accessible_resources/popads.js
Normal file
@@ -0,0 +1,40 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
const magic = String.fromCharCode(Date.now() % 26 + 97) +
|
||||
Math.floor(Math.random() * 982451653 + 982451653).toString(36);
|
||||
const oe = window.onerror;
|
||||
window.onerror = function(msg, src, line, col, error) {
|
||||
if ( typeof msg === 'string' && msg.indexOf(magic) !== -1 ) { return true; }
|
||||
if ( oe instanceof Function ) {
|
||||
return oe(msg, src, line, col, error);
|
||||
}
|
||||
}.bind();
|
||||
const throwMagic = function() { throw new ReferenceError(magic); };
|
||||
delete window.PopAds;
|
||||
delete window.popns;
|
||||
Object.defineProperties(window, {
|
||||
PopAds: { set: throwMagic },
|
||||
popns: { set: throwMagic }
|
||||
});
|
||||
})();
|
||||
26
uBlock0.chromium/web_accessible_resources/prebid-ads.js
Normal file
26
uBlock0.chromium/web_accessible_resources/prebid-ads.js
Normal file
@@ -0,0 +1,26 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2022-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
window.canRunAds = true;
|
||||
window.isAdBlockActive = false;
|
||||
})();
|
||||
@@ -0,0 +1,31 @@
|
||||
/*******************************************************************************
|
||||
|
||||
uBlock Origin - a browser extension to block requests.
|
||||
Copyright (C) 2019-present 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
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
window.COMSCORE = {
|
||||
purge: function() {
|
||||
window._comscore = [];
|
||||
},
|
||||
beacon: function() {
|
||||
}
|
||||
};
|
||||
})();
|
||||
Reference in New Issue
Block a user