@@ -16,6 +16,21 @@ function CookieRule(host, cookiename) {
1616 this . name_c = new RegExp ( cookiename ) ;
1717}
1818
19+ // Firefox 23+ blocks mixed content by default, so rulesets that create
20+ // mixed content situations should be disabled there
21+
22+ try {
23+ var appPrefs = CC [ "@mozilla.org/preferences-service;1" ] . getService ( CI . nsIPrefBranch ) ;
24+ var blockMixedContent = appPrefs . getBoolPref ( "security.mixed_content.block_active_content" ) ;
25+ if ( blockMixedContent ) {
26+ localPlatformRegexp = new RegExp ( "firefox" ) ;
27+ } else {
28+ localPlatformRegexp = new RegExp ( "(firefox|mixedcontent)" ) ;
29+ }
30+ } catch ( e ) {
31+ localPlatformRegexp = new RegExp ( "(firefox|mixedcontent)" ) ;
32+ }
33+
1934ruleset_counter = 0 ;
2035function RuleSet ( name , xmlName , match_rule , default_off , platform ) {
2136 if ( xmlName == "WordPress.xml" || xmlName == "Github.xml" ) {
@@ -39,7 +54,7 @@ function RuleSet(name, xmlName, match_rule, default_off, platform) {
3954 this . on_by_default = false ;
4055 }
4156 if ( platform )
42- if ( platform . search ( HTTPSRules . localPlatformRegexp ) == - 1 ) {
57+ if ( platform . search ( localPlatformRegexp ) == - 1 ) {
4358 this . on_by_default = false ;
4459 this . notes = "Only for " + platform ;
4560 }
@@ -383,7 +398,6 @@ const HTTPSRules = {
383398 this . rulesetsByID = { } ;
384399 this . rulesetsByName = { } ;
385400 var t1 = new Date ( ) . getTime ( ) ;
386- this . checkMixedContentHandling ( ) ;
387401 var rulefiles = RuleWriter . enumerate ( RuleWriter . getCustomRuleDir ( ) ) ;
388402 this . scanRulefiles ( rulefiles ) ;
389403 rulefiles = RuleWriter . enumerate ( RuleWriter . getRuleDir ( ) ) ;
@@ -414,30 +428,6 @@ const HTTPSRules = {
414428 return ;
415429 } ,
416430
417- checkMixedContentHandling : function ( ) {
418- // Firefox 23+ blocks mixed content by default, so rulesets that create
419- // mixed content situations should be disabled there
420- var appInfo = CC [ "@mozilla.org/xre/app-info;1" ] . getService ( CI . nsIXULAppInfo ) ;
421- var platformVer = appInfo . platformVersion ;
422- var versionChecker = CC [ "@mozilla.org/xpcom/version-comparator;1" ]
423- . getService ( CI . nsIVersionComparator ) ;
424- var prefs = Components . classes [ "@mozilla.org/preferences-service;1" ]
425- . getService ( Components . interfaces . nsIPrefService ) . getBranch ( "" ) ;
426-
427-
428- // If mixed content is present and enabled, and the user hasn't opted to enable
429- // mixed content triggering rules, leave them out. Otherwise add them in.
430- if ( versionChecker . compare ( appInfo . version , "23.0a1" ) >= 0
431- && prefs . getBoolPref ( "security.mixed_content.block_active_content" )
432- && ! prefs . getBoolPref ( "extensions.https_everywhere.enable_mixed_rulesets" ) ) {
433- this . log ( INFO , "Not loading rules that trigger mixed content errors." ) ;
434- this . localPlatformRegexp = new RegExp ( "firefox" ) ;
435- } else {
436- this . log ( INFO , "Loading rules that would normally trigger mixed content" ) ;
437- this . localPlatformRegexp = new RegExp ( "(firefox|mixedcontent)" ) ;
438- }
439- } ,
440-
441431 scanRulefiles : function ( rulefiles ) {
442432 var i = 0 ;
443433 var r = null ;
0 commit comments