Skip to content

Commit c2365c8

Browse files
committed
Break out https listener, clean up helper function
Signed-off-by: Nick Semenkovich <semenko@alum.mit.edu>
1 parent aea9daa commit c2365c8

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

chromium/background.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* @param url: a relative URL to local XML
66
*/
7-
function getRuleXml(url) {
7+
function loadExtensionFile(url, returnType) {
88
var xhr = new XMLHttpRequest();
99
// Use blocking XHR to ensure everything is loaded by the time
1010
// we return.
@@ -14,13 +14,16 @@ function getRuleXml(url) {
1414
if (xhr.readyState != 4) {
1515
return;
1616
}
17-
return xhr.responseXML;
17+
if (returnType === 'xml') {
18+
return xhr.responseXML;
19+
}
20+
return xhr.responseText;
1821
}
1922

2023
// Rules are loaded here
2124
var all_rules = new RuleSets(navigator.userAgent, LRUCache, localStorage);
2225
for (var i = 0; i < rule_list.length; i++) {
23-
all_rules.addFromXml(getRuleXml(rule_list[i]));
26+
all_rules.addFromXml(loadExtensionFile(rule_list[i], 'xml'));
2427
}
2528

2629
var USER_RULE_KEY = 'userRules';
@@ -504,7 +507,14 @@ function onBeforeRedirect(details) {
504507
}
505508

506509
// Registers the handler for requests
507-
wr.onBeforeRequest.addListener(onBeforeRequest, {urls: ["https://*/*", "http://*/*"]}, ["blocking"]);
510+
// We listen to all HTTP hosts, because RequestFilter can't handle tons of url restrictions.
511+
wr.onBeforeRequest.addListener(onBeforeRequest, {urls: ["http://*/*"]}, ["blocking"]);
512+
513+
// TODO: Listen only to the tiny subset of HTTPS hosts that we rewrite/downgrade.
514+
var httpsUrlsWeListenTo = ["https://*/*"];
515+
// See: https://developer.chrome.com/extensions/match_patterns
516+
wr.onBeforeRequest.addListener(onBeforeRequest, {urls: httpsUrlsWeListenTo}, ["blocking"]);
517+
508518

509519
// Try to catch redirect loops on URLs we've redirected to HTTPS.
510520
wr.onBeforeRedirect.addListener(onBeforeRedirect, {urls: ["https://*/*"]});

0 commit comments

Comments
 (0)