mirror of
https://github.com/gorhill/uBlock.git
synced 2024-10-06 09:37:12 +02:00
code review: preemptively address https://bugzilla.mozilla.org/show_bug.cgi?id=1408996#c9
This commit is contained in:
parent
198f72a912
commit
bbda2a9086
@ -38,7 +38,7 @@
|
|||||||
"content_scripts": [
|
"content_scripts": [
|
||||||
{
|
{
|
||||||
"matches": ["http://*/*", "https://*/*"],
|
"matches": ["http://*/*", "https://*/*"],
|
||||||
"js": ["js/vapi-client.js", "js/contentscript.js"],
|
"js": ["js/vapi.js", "js/vapi-client.js", "js/contentscript.js"],
|
||||||
"run_at": "document_start",
|
"run_at": "document_start",
|
||||||
"all_frames": true
|
"all_frames": true
|
||||||
},
|
},
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/options_ui.js"></script>
|
<script src="js/options_ui.js"></script>
|
||||||
<title></title>
|
<title></title>
|
||||||
|
@ -28,8 +28,7 @@
|
|||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
/******************************************************************************/
|
||||||
var vAPI = self.vAPI = self.vAPI || {};
|
|
||||||
|
|
||||||
var chrome = self.chrome;
|
var chrome = self.chrome;
|
||||||
var manifest = chrome.runtime.getManifest();
|
var manifest = chrome.runtime.getManifest();
|
||||||
|
@ -19,58 +19,21 @@
|
|||||||
Home: https://github.com/gorhill/uBlock
|
Home: https://github.com/gorhill/uBlock
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* global HTMLDocument, XMLDocument */
|
// For non-background page
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
// For non background pages
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
(function(self) {
|
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
/******************************************************************************/
|
|
||||||
|
|
||||||
// https://github.com/chrisaljoudi/uBlock/issues/464
|
|
||||||
if ( document instanceof HTMLDocument === false ) {
|
|
||||||
// https://github.com/chrisaljoudi/uBlock/issues/1528
|
|
||||||
// A XMLDocument can be a valid HTML document.
|
|
||||||
if (
|
|
||||||
document instanceof XMLDocument === false ||
|
|
||||||
document.createElement('div') instanceof HTMLDivElement === false
|
|
||||||
) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// https://github.com/gorhill/uBlock/issues/1124
|
|
||||||
// Looks like `contentType` is on track to be standardized:
|
|
||||||
// https://dom.spec.whatwg.org/#concept-document-content-type
|
|
||||||
// https://forums.lanik.us/viewtopic.php?f=64&t=31522
|
|
||||||
// Skip text/plain documents.
|
|
||||||
var contentType = document.contentType || '';
|
|
||||||
if ( /^image\/|^text\/plain/.test(contentType) ) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
|
|
||||||
// https://bugs.chromium.org/p/project-zero/issues/detail?id=1225&desc=6#c10
|
|
||||||
if ( !self.vAPI || self.vAPI.uBO !== true ) {
|
|
||||||
self.vAPI = { uBO: true };
|
|
||||||
}
|
|
||||||
|
|
||||||
var vAPI = self.vAPI;
|
|
||||||
var chrome = self.chrome;
|
|
||||||
|
|
||||||
// https://github.com/chrisaljoudi/uBlock/issues/456
|
// https://github.com/chrisaljoudi/uBlock/issues/456
|
||||||
// Already injected?
|
// Skip if already injected.
|
||||||
if ( vAPI.sessionId ) {
|
|
||||||
return;
|
if ( typeof vAPI === 'object' && !vAPI.clientScript ) { // >>>>>>>> start of HUGE-IF-BLOCK
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
vAPI.clientScript = true;
|
||||||
|
|
||||||
vAPI.randomToken = function() {
|
vAPI.randomToken = function() {
|
||||||
return String.fromCharCode(Date.now() % 26 + 97) +
|
return String.fromCharCode(Date.now() % 26 + 97) +
|
||||||
@ -102,7 +65,6 @@ vAPI.shutdown = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
vAPI.messaging = {
|
vAPI.messaging = {
|
||||||
@ -349,6 +311,4 @@ vAPI.shutdown.add(function() {
|
|||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
})(this);
|
} // <<<<<<<< end of HUGE-IF-BLOCK
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
|
@ -28,12 +28,6 @@
|
|||||||
|
|
||||||
(function(self) {
|
(function(self) {
|
||||||
|
|
||||||
// https://bugs.chromium.org/p/project-zero/issues/detail?id=1225&desc=6#c10
|
|
||||||
if ( !self.vAPI || self.vAPI.uBO !== true ) {
|
|
||||||
self.vAPI = { uBO: true };
|
|
||||||
}
|
|
||||||
|
|
||||||
var vAPI = self.vAPI;
|
|
||||||
var chrome = self.chrome;
|
var chrome = self.chrome;
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
54
platform/chromium/vapi.js
Normal file
54
platform/chromium/vapi.js
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
|
||||||
|
uBlock Origin - a browser extension to block requests.
|
||||||
|
Copyright (C) 2017 The uBlock Origin authors
|
||||||
|
|
||||||
|
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
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/* global HTMLDocument, XMLDocument */
|
||||||
|
|
||||||
|
// For background page, auxiliary pages, and content scripts.
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1408996#c9
|
||||||
|
var vAPI; // jshint ignore:line
|
||||||
|
|
||||||
|
// https://github.com/chrisaljoudi/uBlock/issues/464
|
||||||
|
// https://github.com/chrisaljoudi/uBlock/issues/1528
|
||||||
|
// A XMLDocument can be a valid HTML document.
|
||||||
|
|
||||||
|
// https://github.com/gorhill/uBlock/issues/1124
|
||||||
|
// Looks like `contentType` is on track to be standardized:
|
||||||
|
// https://dom.spec.whatwg.org/#concept-document-content-type
|
||||||
|
|
||||||
|
// https://forums.lanik.us/viewtopic.php?f=64&t=31522
|
||||||
|
// Skip text/plain documents.
|
||||||
|
|
||||||
|
if (
|
||||||
|
(document instanceof HTMLDocument ||
|
||||||
|
document instanceof XMLDocument &&
|
||||||
|
document.createElement('div') instanceof HTMLDivElement
|
||||||
|
) &&
|
||||||
|
(/^image\/|^text\/plain/.test(document.contentType || '') === false)
|
||||||
|
) {
|
||||||
|
vAPI = vAPI instanceof Object && vAPI.uBO === true ? vAPI : { uBO: true };
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************/
|
@ -25,7 +25,7 @@
|
|||||||
"content_scripts": [
|
"content_scripts": [
|
||||||
{
|
{
|
||||||
"matches": ["http://*/*", "https://*/*"],
|
"matches": ["http://*/*", "https://*/*"],
|
||||||
"js": ["js/vapi-client.js", "js/contentscript.js"],
|
"js": ["js/vapi.js", "js/vapi-client.js", "js/contentscript.js"],
|
||||||
"run_at": "document_start",
|
"run_at": "document_start",
|
||||||
"all_frames": true
|
"all_frames": true
|
||||||
},
|
},
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
"file://*/*"
|
"file://*/*"
|
||||||
],
|
],
|
||||||
"js":[
|
"js":[
|
||||||
|
"js/vapi.js",
|
||||||
"js/vapi-client.js",
|
"js/vapi-client.js",
|
||||||
"js/contentscript.js"
|
"js/contentscript.js"
|
||||||
],
|
],
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
<input id="importFilePicker" type="file" accept="text/plain" class="hiddenFileInput">
|
<input id="importFilePicker" type="file" accept="text/plain" class="hiddenFileInput">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
<li><a href="http://fontawesome.io" target="_blank">Font Awesome</a> by <a href="https://github.com/davegandy">Dave Gandy</a>
|
<li><a href="http://fontawesome.io" target="_blank">Font Awesome</a> by <a href="https://github.com/davegandy">Dave Gandy</a>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
<button id="advancedSettingsApply" class="custom important" type="button" disabled="true" data-i18n="genericApplyChanges"></button> 
|
<button id="advancedSettingsApply" class="custom important" type="button" disabled="true" data-i18n="genericApplyChanges"></button> 
|
||||||
<p><textarea id="advancedSettings" dir="auto" spellcheck="false"></textarea>
|
<p><textarea id="advancedSettings" dir="auto" spellcheck="false"></textarea>
|
||||||
|
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
<div id="content"></div>
|
<div id="content"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
<script src="js/polyfill.js"></script>
|
<script src="js/polyfill.js"></script>
|
||||||
<script src="lib/punycode.js"></script>
|
<script src="lib/punycode.js"></script>
|
||||||
<script src="lib/publicsuffixlist.js"></script>
|
<script src="lib/publicsuffixlist.js"></script>
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-background.js"></script>
|
<script src="js/vapi-background.js"></script>
|
||||||
<script src="js/vapi-webrequest.js"></script><!-- Forks can pick the webext, chromium, or their own implementation -->
|
<script src="js/vapi-webrequest.js"></script><!-- Forks can pick the webext, chromium, or their own implementation -->
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
<iframe id="iframe" src=""></iframe>
|
<iframe id="iframe" src=""></iframe>
|
||||||
|
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
<script src="js/i18n.js"></script>
|
<script src="js/i18n.js"></script>
|
||||||
|
@ -166,6 +166,7 @@ body[dir="rtl"] #theURL > p > span {
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
@ -105,7 +105,13 @@
|
|||||||
// https://github.com/chrisaljoudi/uBlock/issues/456
|
// https://github.com/chrisaljoudi/uBlock/issues/456
|
||||||
// https://github.com/gorhill/uBlock/issues/2029
|
// https://github.com/gorhill/uBlock/issues/2029
|
||||||
|
|
||||||
if ( typeof vAPI !== 'undefined' ) { // >>>>>>>> start of HUGE-IF-BLOCK
|
if ( typeof vAPI === 'object' && !vAPI.contentScript ) { // >>>>>>>> start of HUGE-IF-BLOCK
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/******************************************************************************/
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
vAPI.contentScript = true;
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
@ -112,6 +112,7 @@
|
|||||||
<div id="filterFinderDialogSentence1"><span><span></span><code></code><span></span></span></div>
|
<div id="filterFinderDialogSentence1"><span><span></span><code></code><span></span></span></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="lib/punycode.js"></script>
|
<script src="lib/punycode.js"></script>
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
@ -55,6 +55,7 @@
|
|||||||
<p><button class="custom" type="button" id="reset" data-i18n="aboutResetDataButton"></button>
|
<p><button class="custom" type="button" id="reset" data-i18n="aboutResetDataButton"></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
<input id="importFilePicker" type="file" accept="text/plain" class="hiddenFileInput">
|
<input id="importFilePicker" type="file" accept="text/plain" class="hiddenFileInput">
|
||||||
|
|
||||||
<script src="lib/punycode.js"></script>
|
<script src="lib/punycode.js"></script>
|
||||||
|
<script src="js/vapi.js"></script>
|
||||||
<script src="js/vapi-common.js"></script>
|
<script src="js/vapi-common.js"></script>
|
||||||
<script src="js/vapi-client.js"></script>
|
<script src="js/vapi-client.js"></script>
|
||||||
<script src="js/udom.js"></script>
|
<script src="js/udom.js"></script>
|
||||||
|
Loading…
Reference in New Issue
Block a user