Skip to content
This repository was archived by the owner on Sep 9, 2022. It is now read-only.

Commit

Permalink
this fixes #7
Browse files Browse the repository at this point in the history
  • Loading branch information
gorhill committed Jun 27, 2014
1 parent c3b9436 commit 3eb85ed
Show file tree
Hide file tree
Showing 15 changed files with 152 additions and 16 deletions.
4 changes: 4 additions & 0 deletions _locales/de/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@
},


"settingsCollapseBlockedPrompt" : {
"message": "Hide placeholders of blocked elements",
"description": "English: Hide placeholders of blocked elements"
},
"settingsIconBadgePrompt" : {
"message": "Zeige die Zahl der blockierten Anforderungen auf dem Icon",
"description": "English: Show the number of blocked requests on the icon"
Expand Down
4 changes: 4 additions & 0 deletions _locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@
},


"settingsCollapseBlockedPrompt" : {
"message": "Hide placeholders of blocked elements",
"description": "English: Hide placeholders of blocked elements"
},
"settingsIconBadgePrompt" : {
"message": "Show the number of blocked requests on the icon",
"description": "English: Show the number of blocked requests on the icon"
Expand Down
4 changes: 4 additions & 0 deletions _locales/fr/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@
},


"settingsCollapseBlockedPrompt" : {
"message": "Cacher les espaces réservés des éléments bloqués",
"description": "English: Hide placeholders of blocked elements"
},
"settingsIconBadgePrompt" : {
"message": "Afficher le nombre de requêtes bloquées sur l'icône",
"description": "English: Show the number of blocked requests on the icon"
Expand Down
4 changes: 4 additions & 0 deletions _locales/ru/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@
},


"settingsCollapseBlockedPrompt" : {
"message": "Hide placeholders of blocked elements",
"description": "English: Hide placeholders of blocked elements"
},
"settingsIconBadgePrompt" : {
"message": "Show the number of blocked requests on the icon",
"description": "English: Show the number of blocked requests on the icon"
Expand Down
4 changes: 4 additions & 0 deletions _locales/zh_CN/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@
},


"settingsCollapseBlockedPrompt" : {
"message": "Hide placeholders of blocked elements",
"description": "English: Hide placeholders of blocked elements"
},
"settingsIconBadgePrompt" : {
"message": "Show the number of blocked requests on the icon",
"description": "English: Show the number of blocked requests on the icon"
Expand Down
2 changes: 1 addition & 1 deletion background.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
<script src="js/profiler.js"></script>
<script src="js/storage.js"></script>
<script src="js/pagestore.js"></script>
<script src="js/uritools.js"></script>
<script src="js/tab.js"></script>
<script src="js/traffic.js"></script>
<script src="js/uritools.js"></script>
<script src="js/messaging-handlers.js"></script>
<script src="js/start.js"></script>
</body>
Expand Down
5 changes: 3 additions & 2 deletions js/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,10 @@ return {
manifest: chrome.runtime.getManifest(),

userSettings: {
showIconBadge: true,
collapseBlocked: true,
parseAllABPHideFilters: true,
netExceptionList: {}
netExceptionList: {},
showIconBadge: true
},
localSettings: {
blockedRequestCount: 0,
Expand Down
51 changes: 51 additions & 0 deletions js/contentscript-end.js
Original file line number Diff line number Diff line change
Expand Up @@ -335,13 +335,60 @@ var cosmeticFiltering = new CosmeticFiltering();

/******************************************************************************/

// https://github.com/gorhill/uBlock/issues/7

var hideBlockedElements = function(elems, details) {
var blockedRequests = details.blockedRequests;
var collapse = details.collapse;
var i = elems.length;
var elem;
while ( i-- ) {
elem = elems[i];
if ( !elem.src ) {
continue;
}
if ( blockedRequests[elem.src] ) {
elem.style.visibility = 'hidden';
if ( collapse ) {
elem.style.width = '0';
elem.style.height = '0';
}
}
}
};

var hideBlockedElementAddedNodes = function(nodes) {
var onBlockedRequestsReceived = function(details) {
hideBlockedElements(nodes, details);
var i = nodes.length;
var elem;
while ( i-- ) {
elem = nodes[i];
if ( elem.querySelectorAll ) {
hideBlockedElements(elem.querySelectorAll('img,iframe'), details);
}
}
};
messaging.ask({ what: 'blockedRequests' }, onBlockedRequestsReceived);
};

(function() {
var onBlockedRequestsReceived = function(details) {
hideBlockedElements(document.querySelectorAll('img,iframe'), details);
};
messaging.ask({ what: 'blockedRequests' }, onBlockedRequestsReceived);
})();

/******************************************************************************/

var mutationObservedHandler = function(mutations) {
var iMutation = mutations.length;
var mutation;
while ( iMutation-- ) {
mutation = mutations[iMutation];
if ( mutation.addedNodes ) {
cosmeticFiltering.allFromNodeList(mutation.addedNodes);
hideBlockedElementAddedNodes(mutation.addedNodes);
}
}

Expand All @@ -364,8 +411,12 @@ if ( /^https?:\/\/./.test(window.location.href) === false ) {
return;
}

/******************************************************************************/

cosmeticFiltering.onDOMContentLoaded();

/******************************************************************************/

// Observe changes in the DOM

// This fixes http://acid3.acidtests.org/
Expand Down
44 changes: 42 additions & 2 deletions js/messaging-handlers.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ var onMessage = function(request, sender, callback) {

/******************************************************************************/

// content scripts
// contentscript-start.js

(function() {

Expand All @@ -115,18 +115,58 @@ var onMessage = function(request, sender, callback) {
response = µBlock.abpHideFilters.retrieveDomainSelectors(tabHostname, request);
break;

default:
return µBlock.messaging.defaultHandler(request, sender, callback);
}

callback(response);
};

µBlock.messaging.listen('contentscript-start.js', onMessage);

})();

/******************************************************************************/

// contentscript-end.js

(function() {

var onMessage = function(request, sender, callback) {
// Async
switch ( request.what ) {
default:
break;
}

// Sync
var response;

var pageStore;
if ( sender && sender.tab ) {
pageStore = µBlock.pageStoreFromTabId(sender.tab.id);
}
var tabHostname = pageStore ? pageStore.pageHostname : '';

switch ( request.what ) {
case 'retrieveGenericCosmeticSelectors':
response = µBlock.abpHideFilters.retrieveGenericSelectors(tabHostname, request);
break;

case 'blockedRequests':
response = {
collapse: µBlock.userSettings.collapseBlocked,
blockedRequests: pageStore ? pageStore.blockedRequests : {}
}
break;

default:
return µBlock.messaging.defaultHandler(request, sender, callback);
}

callback(response);
};

µBlock.messaging.listen('contentscript-start.js', onMessage);
µBlock.messaging.listen('contentscript-end.js', onMessage);

})();
Expand Down
18 changes: 14 additions & 4 deletions js/pagestore.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ function PageStore(tabId, pageURL) {
this.pageDomain = '';
this.perLoadBlockedRequestCount = 0;
this.perLoadAllowedRequestCount = 0;
this.blockedRequests = {};
this.disposeTime = 0;
this.init(tabId, pageURL);
}
Expand All @@ -72,6 +73,7 @@ PageStore.prototype.init = function(tabId, pageURL) {
this.pageDomain = µb.URI.domainFromHostname(this.pageHostname);
this.perLoadBlockedRequestCount = 0;
this.perLoadAllowedRequestCount = 0;
this.blockedRequests = {};
this.disposeTime = 0;
return this;
};
Expand Down Expand Up @@ -99,13 +101,18 @@ PageStore.prototype.recordRequest = function(type, url, block) {
// the page is no longer visible in a browser tab.
µb.updateBadge(this.tabId);

if ( block !== false ) {
this.perLoadBlockedRequestCount++;
µb.localSettings.blockedRequestCount++;
} else {
if ( block === false ) {
this.perLoadAllowedRequestCount++;
µb.localSettings.allowedRequestCount++;
return;
}

this.perLoadBlockedRequestCount++;
µb.localSettings.blockedRequestCount++;

// https://github.com/gorhill/uBlock/issues/7
// https://github.com/gorhill/uBlock/issues/12
this.blockedRequests[url] = true;
};

/******************************************************************************/
Expand All @@ -117,6 +124,9 @@ PageStore.prototype.recordRequest = function(type, url, block) {
// notifying me, and this causes internal cached state to be out of sync.

PageStore.prototype.updateBadge = function() {
// https://github.com/gorhill/uBlock/issues/19
// TODO: need to check with µb object to see whether tab still exists.

var netFilteringSwitch = µb.getNetFilteringSwitch(this.pageHostname);
var iconPath = netFilteringSwitch ? 'img/browsericons/icon19.png' : 'img/browsericons/icon19-off.png';

Expand Down
8 changes: 8 additions & 0 deletions js/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,15 @@ var changeUserSettings = function(name, value) {

/******************************************************************************/

// TODO: use data-* to declare simple settings

var onUserSettingsReceived = function(details) {
$('#collapse-blocked')
.attr('checked', details.collapseBlocked === true)
.on('change', function(){
changeUserSettings('collapseBlocked', $(this).is(':checked'));
});

$('#icon-badge')
.attr('checked', details.showIconBadge === true)
.on('change', function(){
Expand Down
2 changes: 1 addition & 1 deletion js/tab.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
return uri.normalizedURI();
}
return '';
}
};

/******************************************************************************/

Expand Down
7 changes: 4 additions & 3 deletions js/traffic.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
Home: https://github.com/gorhill/uBlock
*/

/* jshint multistr: true */
/* global chrome, µBlock */

/******************************************************************************/
Expand Down Expand Up @@ -50,8 +49,8 @@ var onBeforeRequestHandler = function(details) {
return;
}

var µburi = µb.URI;
var requestURL = µburi.set(details.url).normalizedURI();
var requestURL = details.url;
var µburi = µb.URI.set(details.url);

// Ignore non-http schemes
var requestScheme = µburi.scheme;
Expand Down Expand Up @@ -79,7 +78,9 @@ var onBeforeRequestHandler = function(details) {

var reason = false;
if ( µb.getNetFilteringSwitch(pageStore.pageHostname) ) {
//quickProfiler.start('abpFilters.matchString');
reason = µb.abpFilters.matchString(pageStore, requestURL, requestType, requestHostname);
//quickProfiler.stop();
}
// Record what happened.
if ( pageStore.recordRequest ) {
Expand Down
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "__MSG_extName__",
"short_name": "µBlock",
"version": "0.1.0.11",
"version": "0.1.0.12",
"description": "__MSG_extShortDesc__",
"icons": {
"16": "img/icon_16.png",
Expand Down
9 changes: 7 additions & 2 deletions settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,18 @@
<link rel="stylesheet" type="text/css" href="css/common.css">
<link rel="stylesheet" type="text/css" href="css/dashboard-common.css">
<style>
ul {
list-style-type: none;
}
</style>
</head>

<body>

<input id="icon-badge" type="checkbox"> <span data-i18n="settingsIconBadgePrompt"></span>

<ul>
<li><input id="collapse-blocked" type="checkbox"> <span data-i18n="settingsCollapseBlockedPrompt"></span>
<li><input id="icon-badge" type="checkbox"> <span data-i18n="settingsIconBadgePrompt"></span>
</ul>

<script src="lib/jquery-2.min.js"></script>
<script src="js/i18n.js"></script>
Expand Down

0 comments on commit 3eb85ed

Please sign in to comment.