Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge branch 'master' of git://git.torproject.org/https-everywhere

  • Loading branch information...
commit c196e65ef01ae4630575ca7f5e1cc4bd01095719 2 parents 9ae84a4 + 360c31c
@Rafiot authored
Showing with 2,266 additions and 1,223 deletions.
  1. +7 −0 src/chrome.manifest
  2. +16 −16 src/chrome/content/about.xul
  3. +17 −37 src/chrome/content/code/ApplicableList.js
  4. +1 −1  src/chrome/content/code/HTTPS.js
  5. +348 −0 src/chrome/content/code/Root-CAs.js
  6. +29 −0 src/chrome/content/meta-preferences.xul
  7. +62 −0 src/chrome/content/observatory-popup.xul
  8. +153 −0 src/chrome/content/observatory-preferences.js
  9. +96 −0 src/chrome/content/observatory-preferences.xul
  10. +18 −0 src/chrome/content/preferences.js
  11. +12 −9 src/chrome/content/preferences.xul
  12. +7 −0 src/chrome/content/rules/1time.co.za.xml
  13. +2 −4 src/chrome/content/rules/AdblockPlus.xml
  14. +6 −2 src/chrome/content/rules/Adobe.xml
  15. +9 −0 src/chrome/content/rules/AerLingus.xml
  16. +13 −0 src/chrome/content/rules/AirAsia.xml
  17. +9 −0 src/chrome/content/rules/AlaskaAirlines.xml
  18. +2 −0  src/chrome/content/rules/Apple.xml
  19. +7 −0 src/chrome/content/rules/AustrianAirlines.xml
  20. +44 −0 src/chrome/content/rules/BYU.xml
  21. +9 −0 src/chrome/content/rules/BendigoBank.xml
  22. +6 −1 src/chrome/content/rules/Bitly.xml
  23. +1 −1  src/chrome/content/rules/BlockBuster.xml
  24. +6 −0 src/chrome/content/rules/Bmibaby.com.xml
  25. +12 −0 src/chrome/content/rules/Booking.com.xml
  26. +47 −0 src/chrome/content/rules/Caltech.xml
  27. +24 −0 src/chrome/content/rules/CanalDigital.xml
  28. +9 −0 src/chrome/content/rules/Chase.xml
  29. +9 −0 src/chrome/content/rules/Citibank.xml
  30. +8 −0 src/chrome/content/rules/CompareTheMarket.xml
  31. +6 −2 src/chrome/content/rules/DuckDuckGo.xml
  32. +0 −2  src/chrome/content/rules/EdUbuntu.xml
  33. +4 −2 src/chrome/content/rules/FSF.xml
  34. +9 −0 src/chrome/content/rules/FifthThirdBank.xml
  35. +8 −0 src/chrome/content/rules/FitBit.xml
  36. +4 −0 src/chrome/content/rules/Flickr.xml
  37. +6 −0 src/chrome/content/rules/Forbrukerraadet.xml
  38. +9 −0 src/chrome/content/rules/FusionNet.xml
  39. +3 −2 src/chrome/content/rules/GNOME.xml
  40. +3 −0  src/chrome/content/rules/Google.xml
  41. +2 −2 src/chrome/content/rules/GoogleAPIs.xml
  42. +2 −23 src/chrome/content/rules/GoogleServices.xml
  43. +1 −1  src/chrome/content/rules/Groupon.xml
  44. +7 −0 src/chrome/content/rules/Halifax.xml
  45. +9 −0 src/chrome/content/rules/HawaiianAirlines.xml
  46. +9 −0 src/chrome/content/rules/Hotwire.xml
  47. +9 −0 src/chrome/content/rules/IANA.xml
  48. +7 −0 src/chrome/content/rules/JapanAirlines.xml
  49. +9 −0 src/chrome/content/rules/Jet2.com.xml
  50. +5 −4 src/chrome/content/rules/KLM.xml
  51. +7 −0 src/chrome/content/rules/Khronos.xml
  52. +6 −0 src/chrome/content/rules/MCLU.xml
  53. +9 −0 src/chrome/content/rules/MakeMyTrip.xml
  54. +1 −1  src/chrome/content/rules/McAfee.xml
  55. +9 −0 src/chrome/content/rules/MomentusMedia.xml
  56. +7 −0 src/chrome/content/rules/Monarch.co.uk.xml
  57. +3 −1 src/chrome/content/rules/Mozdev.xml
  58. +5 −1 src/chrome/content/rules/Mozilla.xml
  59. +9 −0 src/chrome/content/rules/NAB.xml
  60. +6 −0 src/chrome/content/rules/NanoHUB.xml
  61. +1 −0  src/chrome/content/rules/Netflix.xml
  62. +9 −0 src/chrome/content/rules/PNC.xml
  63. +1 −0  src/chrome/content/rules/Pastebin.ca.xml
  64. +1 −1  src/chrome/content/rules/Pastebin.com.xml
  65. +1 −1  src/chrome/content/rules/Pizzahut.xml
  66. +6 −0 src/chrome/content/rules/Prolific.com.tw.xml
  67. +1 −0  src/chrome/content/rules/RadioShack.xml
  68. +6 −7 src/chrome/content/rules/Reddit.xml
  69. +2 −0  src/chrome/content/rules/SANS.xml
  70. +2 −1  src/chrome/content/rules/SICS.se.xml
  71. +6 −0 src/chrome/content/rules/SVGOpen.xml
  72. +0 −6 src/chrome/content/rules/Savannah.xml
  73. +6 −0 src/chrome/content/rules/SchooltoPrison.org.xml
  74. +3 −3 src/chrome/content/rules/Scroogle.xml
  75. +9 −0 src/chrome/content/rules/SpiritAirlines.xml
  76. +9 −0 src/chrome/content/rules/SunTrust.xml
  77. +2 −2 src/chrome/content/rules/Swiss.xml
  78. +6 −0 src/chrome/content/rules/TDBank.xml
  79. +9 −0 src/chrome/content/rules/ThomasCook.xml
  80. +11 −0 src/chrome/content/rules/TicketingNetworkEastMidlands.xml
  81. +1 −1  src/chrome/content/rules/Twitpic.xml
  82. +99 −5 src/chrome/content/rules/UCSD.edu.xml
  83. +8 −0 src/chrome/content/rules/UIE.xml
  84. +6 −1 src/chrome/content/rules/USPS.xml
  85. +1 −1  src/chrome/content/rules/VideoLAN.xml
  86. +9 −0 src/chrome/content/rules/VirginAustralia.xml
  87. +7 −0 src/chrome/content/rules/VisionAirlines.xml
  88. +9 −0 src/chrome/content/rules/Wachovia.xml
  89. +9 −0 src/chrome/content/rules/WestJet.xml
  90. +9 −0 src/chrome/content/rules/Westpac.xml
  91. +31 −7 src/chrome/content/rules/Wikipedia.xml
  92. +1 −1  src/chrome/content/rules/YouTube_testing.xml
  93. +7 −0 src/chrome/content/rules/goMokulele.xml
  94. +0 −1,052 src/chrome/content/rules/validity-analysis
  95. +24 −11 src/chrome/content/toolbar_button.js
  96. +24 −7 src/chrome/content/toolbar_button.xul
  97. +23 −0 src/chrome/locale/en/https-everywhere.dtd
  98. +94 −0 src/chrome/locale/en/ssl-observatory.dtd
  99. +5 −0 src/chrome/locale/lv-LV/https-everywhere.dtd
  100. +92 −0 src/chrome/locale/lv-LV/ssl-observatory.dtd
  101. +5 −0 src/chrome/locale/pt-BR/https-everywhere.dtd
  102. +4 −0 src/chrome/locale/sv-SE/https-everywhere.dtd
  103. BIN  src/chrome/skin/ssl-observatory-messy.jpg
  104. BIN  src/chrome/skin/ssl-observatory.jpg
  105. +1 −1  src/components/https-everywhere.js
  106. +515 −0 src/components/ssl-observatory.js
  107. +22 −0 src/defaults/preferences/preferences.js
  108. +3 −3 src/install.rdf
  109. +3 −0  test.sh
View
7 src/chrome.manifest
@@ -1,6 +1,9 @@
content https-everywhere chrome/content/
locale https-everywhere en chrome/locale/en/
+locale https-everywhere lv-LV chrome/locale/lv-LV/
+locale https-everywhere pt-BR chrome/locale/pt-BR/
+locale https-everywhere sv-SE chrome/locale/sv-SE/
skin https-everywhere classic/1.0 chrome/skin/
@@ -14,3 +17,7 @@ overlay chrome://browser/content/browser.xul chrome://https-everywhere/content/t
overlay chrome://navigator/content/navigator.xul chrome://https-everywhere/content/toolbar_button.xul
style chrome://global/content/customizeToolbar.xul chrome://https-everywhere/skin/https-everywhere.css
+component {0f9ab521-986d-4ad8-9c1f-6934e195c15c} components/ssl-observatory.js
+contract @eff.org/ssl-observatory;1 {0f9ab521-986d-4ad8-9c1f-6934e195c15c}
+
+category profile-after-change SSLObservatory @eff.org/ssl-observatory;1
View
32 src/chrome/content/about.xul
@@ -8,7 +8,7 @@
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
buttons="accept"
- title="About HTTPS Everywhere"
+ title="&https-everywhere.about.title;"
width="500"
height="550"
align="center">
@@ -16,44 +16,44 @@
<script type="application/x-javascript"
src="chrome://https-everywhere/content/preferences.js"/>
<vbox>
- <label style="text-align:center; font-weight:bold; font-size:22px;">HTTPS Everywhere</label>
- <label style="text-align:center; font-size:18px; margin-bottom:10px;">Encrypt the Web! Automatically use HTTPS security on many sites.</label>
+ <label style="text-align:center; font-weight:bold; font-size:22px;">&https-everywhere.about.ext_name;</label>
+ <label style="text-align:center; font-size:18px; margin-bottom:10px;">&https-everywhere.about.ext_description;</label>
<groupbox>
- <caption label="Version" />
- <label>1.0.0development.2</label>
+ <caption label="&https-everywhere.about.version;" />
+ <label>2.0development.1</label>
</groupbox>
<groupbox>
- <caption label="Created by" />
+ <caption label="&https-everywhere.about.created_by;" />
<label>Mike Perry and Peter Eckersley</label>
</groupbox>
<groupbox>
- <caption label="Ruleset Librarians" />
+ <caption label="&https-everywhere.about.librarians;" />
<label>Seth Schoen, Mike Cardwell and Andreas Jonsson</label>
</groupbox>
<groupbox>
- <caption label="Thanks to" />
- <label>Many many contributors, including Alec Moskvin, Alex Xu,
- Chris Palmer, Claudio Moretti, Daniel Kahn Gillmor, Felix Geyer,
- Heiko Adams, Jeroen van der Gun, katmagic, Micah Lee, Ori Avtalion,
- Osama Khalid, nitrox, Pablo Castellano, Rules Moore, Stefan Tomanek
- and Whizz Mo</label>
+ <caption label="&https-everywhere.about.thanks;" />
+ <label>Many many contributors, including Alec Moskvin, Alex Xu, Chris
+ Palmer, Christopher Liu, Claudio Moretti, Daniel Kahn Gillmor, dm0,
+ Felix Geyer, Heiko Adams, Jeroen van der Gun, Jorge Bernal, katmagic,
+ Micah Lee, Ori Avtalion, Osama Khalid, nitrox, Pablo Castellano, Rules
+ Moore, Stefan Tomanek, Victor Garin and Whizz Mo</label>
</groupbox>
<label style="font-weight:bold; margin-top:10px;">
- If you like HTTPS Everywhere, you might consider
+ &https-everywhere.about.countribute;
<label id="donate link"
- value="Donating to Tor"
+ value="&https-everywhere.about.donate_tor;"
style="color: blue; cursor:hand; text-decoration:underline; font-style:bold"
onmouseover="event.target.style.cursor='pointer'"
onmouseout="event.target.style.cursor='default'"
onclick="window_opener('https://www.torproject.org/donate/donate.html.en')"/>
or
<label id="donate link2"
- value="Donating to EFF"
+ value="&https-everywhere.about.donate_eff;"
style="color: blue; cursor:hand; text-decoration:underline; font-style:bold"
onmouseover="event.target.style.cursor='pointer'"
onmouseout="event.target.style.cursor='default'"
View
54 src/chrome/content/code/ApplicableList.js
@@ -55,7 +55,7 @@ ApplicableList.prototype = {
dst.setUserData(key, data, this.dom_handler);
},
- populate_menu: function(document) {
+ populate_menu: function(document, menupopup) {
// The base URI of the dom tends to be loaded from some /other/
// ApplicableList, so pretend we're loading it from here.
@@ -64,10 +64,10 @@ ApplicableList.prototype = {
this.document = document;
// get the menu popup
- this.menupopup = document.getElementById('https-everywhere-context');
+ this.menupopup = menupopup;
// empty it all of its menuitems
- while(this.menupopup.firstChild) {
+ while(this.menupopup.firstChild.tagName != "menuseparator") {
this.menupopup.removeChild(this.menupopup.firstChild);
}
@@ -84,7 +84,6 @@ ApplicableList.prototype = {
label.setAttribute('label', '(No Rules for This Page)');
}
label.setAttribute('command', 'https-everywhere-menuitem-preferences');
- this.menupopup.appendChild(label);
// create a commandset if it doesn't already exist
this.commandset = document.getElementById('https-everywhere-commandset');
@@ -110,43 +109,24 @@ ApplicableList.prototype = {
this.add_command(this.inactive[x]);
// add all the menu items
- for (var x in this.breaking)
- this.add_menuitem(this.breaking[x], 'breaking');
- // break once break everywhere
- for (var x in this.active)
- if (!(x in this.breaking))
- this.add_menuitem(this.active[x], 'active');
+ for (var x in this.inactive)
+ this.add_menuitem(this.inactive[x], 'inactive');
// rules that are active for some uris are not really moot
for (var x in this.moot)
if (!(x in this.active))
this.add_menuitem(this.moot[x], 'moot');
- for (var x in this.inactive)
- this.add_menuitem(this.inactive[x], 'inactive');
-
- // add other menu items
- this.menupopup.appendChild(document.createElement('menuseparator'));
-
- // preferences, about
- var about = document.createElement('menuitem');
- about.setAttribute('label', 'About HTTPS Everywhere');
- about.setAttribute('command', 'https-everywhere-menuitem-about');
- this.menupopup.appendChild(about);
-
- // separator
- this.menupopup.appendChild(document.createElement('menuseparator'));
-
- // donate
- /* var donate_eff = document.createElement('menuitem');
- donate_eff.setAttribute('label', 'Donate to EFF');
- donate_eff.setAttribute('command', 'https-everywhere-menuitem-donate-eff');
- this.menupopup.appendChild(donate_eff);
- var donate_tor = document.createElement('menuitem');
- donate_tor.setAttribute('label', 'Donate to Tor');
- donate_tor.setAttribute('command', 'https-everywhere-menuitem-donate-tor');
- this.menupopup.appendChild(donate_tor); */
-
- this.log(DBUG, "finished menu");
+ // break once break everywhere
+ for (var x in this.active)
+ if (!(x in this.breaking))
+ this.add_menuitem(this.active[x], 'active');
+ for (var x in this.breaking)
+ this.add_menuitem(this.breaking[x], 'breaking');
+ this.prepend_child(label);
+ },
+
+ prepend_child: function(node) {
+ this.menupopup.insertBefore(node, this.menupopup.firstChild);
},
add_command: function(rule) {
@@ -186,7 +166,7 @@ ApplicableList.prototype = {
item.appendChild(hbox);
// all done
- this.menupopup.appendChild(item);
+ this.prepend_child(item);
},
show_applicable: function() {
View
2  src/chrome/content/code/HTTPS.js
@@ -192,7 +192,7 @@ const HTTPS = {
this.log(WARN,"No URI inside request " +req);
return;
}
- this.log(DBUG, "Cookie hunting in " + uri.spec);
+ //this.log(DBUG, "Cookie hunting in " + uri.spec);
var alist = HTTPSEverywhere.instance.getApplicableListForChannel(req);
if (!alist)
this.log(INFO, "No alist for cookies for "+(req.URI) ? req.URI.spec : "???");
View
348 src/chrome/content/code/Root-CAs.js
@@ -0,0 +1,348 @@
+// These are concatenated md5 and sha1 fingerprints for the Firefox and
+// Microsoft root CAs as of Aug 2010
+
+root_ca_hashes = {
+ '00531D1D7201D423C820D00B6088C5D143DDB1FFF3B49B73831407F6BC8B975023D07C50' : true,
+ '015A99C3D64FA94B3C3BB1A3AB274CBFFC219A76112F76C1C508833C9A2FA2BA84AC087A' : true,
+ '019408DE857F8D806CE602CA89522848750251B2C632536F9D917279543C137CD721C6E0' : true,
+ '0208EE8CAAB8387A6824DCB4E26A52337E206939CC5FA883635F64C750EBF5FDA9AEE653' : true,
+ '0226C3015E08303743A9D07DCF37E6BF323C118E1BF7B8B65254E2E2100DD6029037F096' : true,
+ '034287D7C1167D18AFA4703CB8312C3E4EF2E6670AC9B5091FE06BE0E5483EAAD6BA32D9' : true,
+ '03DC08EEC4703FFA20E5E179E81AE7C59ED18028FB1E8A9701480A7890A59ACD73DFF871' : true,
+ '044BFDC96CDA2A32857C598461468A64BEB5A995746B9EDF738B56E6DF437A77BE106B81' : true,
+ '0468E9247E41CED76C441630703DDDB9AB16DD144ECDC0FC4BAAB62ECF0408896FDE52B7' : true,
+ '068690F2195471FDDD3DE6EEA161CAFF7030AABF8432A800666CCCC42A887E42B7553E2B' : true,
+ '069F6979166690021B8C8CA2C3076F3A627F8D7827656399D27D7F9044C9FEB3F33EFA9A' : true,
+ '06F0171EB1E961ED7A363CA594A1374AFAAA27B8CAF5FDF5CDA98AC3378572E04CE8F2E0' : true,
+ '06F9EBECCC569D88BA90F5BAB01AE00216D424FE9610E17519AF232BB68774E24144BE6E' : true,
+ '076192047EA6B9CD5E6B007AE3BF1D0434D499426F9FC2BB27B075BAB682AAE5EFFCBA74' : true,
+ '087C581F522B44B43B79CD01F8C5C3C995E6ADF8D77146024DD56A21B2E73FCDF23B35FF' : true,
+ '0B092C1CD721866F94376FE6A7F3224D0409565B77DA582E6495AC0060A72354E64B0192' : true,
+ '0C412F135BA054F596662D7ECD0E03F4DA79C1711150C23439AA2B0B0C62FD55B2F9F580' : true,
+ '0C5ADD5AAE29F7A77679FA4151FEF035B865130BEDCA38D27F69929420770BED86EFBC10' : true,
+ '0C7FDD6AF42AB9C89BBD207EA9DB5C3760D68974B5C2659E8A0FC1887C88D246691B182C' : true,
+ '0CF89E17FCD403BDE68D9B3C0587FE8433A335C23CE8034B04E13DE5C48E791AEB8C3204' : true,
+ '0E40A76CDE035D8FD10FE4D18DF96CA9A9E9780814375888F20519B06D2B0D2B6016907D' : true,
+ '0EFA4BF7D760CD65F7A7068857986239D29F6C98BEFC6D986521543EE8BE56CEBC288CF3' : true,
+ '0FA01300C3558AB7D37E2D04739EDE3C8B1A1106B8E26B232980FD652E6181376441FD11' : true,
+ '100EADF35C841D8E035F2DC93937F552742CDF1594049CBF17A2046CC639BB3888E02E33' : true,
+ '10FC635DF6263E0DF325BE5F79CD6767742C3192E607E424EB4549542BE1BBC53E6174E2' : true,
+ '119279403CB18340E5AB664A679280DFA9628F4B98A91B4835BAD2C1463286BB66646A8C' : true,
+ '14F108AD9DFA64E289E71CCFA8AD7D5E3921C115C15D0ECA5CCB5BC4F07D21D8050B566A' : true,
+ '155EF5117AA2C1150E927E66FE3B84C3B38FECEC0B148AA686C3D00F01ECC8848E8085EB' : true,
+ '15ACA5C2922D79BCE87FCB67ED02CF36E7B4F69D61EC9069DB7E90A7401A3CF47D4FE8EE' : true,
+ '15B298A354704048703A375582C45AFA0048F8D37B153F6EA2798C323EF4F318A5624A9E' : true,
+ '15EE9F5AA08528DF6BDD34A3A056D8307F8A77836BDC6D068F8B0737FCC5725413068CA4' : true,
+ '160A1613C17FF01D887EE3D9E71261CCF88015D3F98479E1DA553D24FD42BA3F43886AEF' : true,
+ '173574AF7B611CEBF4F93CE2EE40F9A2925A8F8D2C6D04E0665F596AFF22D863E8256F3F' : true,
+ '1802B00127036A191B323B83DE9AA985D6BF7994F42BE5FA29DA0BD7587B591F47A44F22' : true,
+ '1898C0D6E93AFCF9B0F50CF74B014417FAB7EE36972662FB2DB02AF6BF03FDE87C4B2F9B' : true,
+ '18AE695D15CAB917673267D597B260C04BA7B9DDD68788E12FF852E1A024204BF286A8F6' : true,
+ '1AD00CB9A6E68A3B6E95860C5B8CD8195A4D0E8B5FDCFDF64E7299A36C060DB222CA78E4' : true,
+ '1B2E00CA2606903DADFE6F1568D36BB367650DF17E8E7E5B8240A4F4564BCFE23D69C6F0' : true,
+ '1BD75F76734CC0DC98CA442BCC0F78DD31E2C52CE1089BEFFDDADB26DD7C782EBC4037BD' : true,
+ '1C4BE2C62DB9AC3114F4400769CB1F4011C5B5F75552B011669C2E9717DE6D9BFF5FA810' : true,
+ '1D3554048578B03F42424DBF20730A3F02FAF3E291435468607857694DF5E45B68851868' : true,
+ '1D6496AF2D821A300BA0620D76BC53AA7FBB6ACD7E0AB438DAAF6FD50210D007C6C0829C' : true,
+ '1E240EA0F876D785A3F5F8A1493D2EBAFD1ED1E2021B0B9F73E8EB75CE23436BBCC746EB' : true,
+ '1E42950233926BB95FC07FDAD6B24BFCCCAB0EA04C2301D6697BDD379FCD12EB24E3949D' : true,
+ '1E74C3863C0C35C53EC27FEF3CAA3CD9209900B63D955728140CD13622D8C687A4EB0085' : true,
+ '200B4A7A88A7A942868A5F74567B880593E6AB220303B52328DCDA569EBAE4D1D1CCFB65' : true,
+ '206BD68B4A8F48ABE488090DE5651A500CFD83DBAE44B9A0C8F676F3B570650B94B69DBF' : true,
+ '2124A681C1D8F219AF4998E39DFE0BF46A174570A916FBE84453EED3D070A1D8DA442829' : true,
+ '21BC82AB49C4133B4BB22B5C6B909C198BAF4C9B1DF02A92F7DA128EB91BACF498604B6F' : true,
+ '21D84C822B990933A2EB14248D8E5FE84054DA6F1C3F4074ACED0FECCDDB79D153FB901D' : true,
+ '21EFB85040393F756F27FEE3EA5870EBA59C9B10EC7357515ABB660C4D94F73B9E6E9272' : true,
+ '222DA601EA7C0AF7F06C56433F7776D3FEB8C432DCF9769ACEAE3DD8908FFD288665647D' : true,
+ '224D8F8AFCF735C2BB5734907B8B22163E2BF7F2031B96F38CE6C4D8A85D3E2D58476A0F' : true,
+ '246DABD2F2EA4A66AE5BBCAE50AD6E56F9DD19266B2043F1FE4B3DCB0190AFF11F31A69D' : true,
+ '2477D9A891D13BFA882DC2FFF8CD3393D8C5388AB7301B1B6ED47AE645253A6F9F1A2761' : true,
+ '252AC6C5896839F9557202165EA39ED23C71D70E35A5DAA8B2E3812DC3677417F5990DF3' : true,
+ '255BA669B87BF8780DC18FA6EAE47063FA0882595F9CA6A11ECCBEAF65C764C0CCC311D0' : true,
+ '257ABA832EB6A20BDAFEF5020F08D7AD81968B3AEF1CDC70F5FA3269C292A3635BD123D3' : true,
+ '259DCF5EB3259D95B93F00865F47943D43F9B110D5BAFD48225231B0D0082B372FEF9A54' : true,
+ '266D2C1998B6706838505419EC9034600B77BEBBCB7AA24705DECC0FBD6A02FC7ABD9B52' : true,
+ '27DE36FE72B70003009DF4F01E6C0424DE3F40BD5093D39B6C60F6DABC076201008976C9' : true,
+ '27EC3947CDDA5AAFE29A016521A94CBB4D2378EC919539B5007F758F033B211EC54D8BCF' : true,
+ '2A5D003739469475397B11A6F29341E13F85F2BB4A62B0B58BE1614ABB0D4631B4BEF8BA' : true,
+ '2A954ECA79B2874573D92D90BAF99FB6A43489159A520F0D93D032CCAF37E7FE20A8B419' : true,
+ '2B508718392D3BFFC3917F2D7DC08A97B19DD096DCD4E3E0FD676885505A672C438D4E9C' : true,
+ '2B7020568682A018C807531228702172F17F6FB631DC99E3A3C87FFE1CF1811088D96033' : true,
+ '2C20269DCB1A4A0085B5B75AAEC201378C96BAEBDD2B070748EE303266A0F3986E7CAE58' : true,
+ '2C6F17A39562012065D2076EFCB83F6DB1EAC3E5B82476E9D50B1EC67D2CC11E12E0B491' : true,
+ '2C8C175EB154AB9317B5365ADBD1C6F2A073E5C5BD43610D864C21130A855857CC9CEA46' : true,
+ '2C8F9F661D1890B147269D8E86828CA96252DC40F71143A22FDE9EF7348E064251B18118' : true,
+ '2CC2B0D5D622C52E901EF4633F0FBB324A058FDFD761DB21B0C2EE48579BE27F42A4DA1C' : true,
+ '2DBBE525D3D165823AB70EFAE6EBE2E1B3EAC44776C9C81CEAF29D95B6CCA0081B67EC9D' : true,
+ '2E03FDC5F5D72B9464C1BE8931F1169B96995C7711E8E52DF9E34BECEC67D3CBF1B6C4D2' : true,
+ '30C908DDD73E63A4092814C74EB97E2CCFE4313DBA05B8A7C30063995A9EB7C247AD8FD5' : true,
+ '30C9E71E6BE614EB65B216692031674D3BC0380B33C3F6A60C86152293D9DFF54B81C004' : true,
+ '31853C62949763B9AAFD894EAF6FE0CF1F4914F7D874951DDDAE02C0BEFD3A2D82755185' : true,
+ '324A4BBBC863699BBE749AC6DD1D4624AD7E1C28B064EF8F6003402014C3D0E3370EB58A' : true,
+ '3327D16CFC9185FC8C7E98FA854EF305E70715F6F728365B5190E271DEE4C65EBEEACAF3' : true,
+ '33B784F55F27D76827DE14DE122AED6F0747220199CE74B97CB03D79B264A2C855E933FF' : true,
+ '343339FC6D033A8FA25385443270DEC45E5A168867BFFF00987D0B1DC2AB466C4264F956' : true,
+ '34FCB8D036DB9E14B3C2F2DB8FE494C7379A197B418545350CA60369F33C2EAF474F2079' : true,
+ '354895364A545A72968EE064CCEF2C8CC90D1BEA883DA7D117BE3B79F4210E1A5894A72D' : true,
+ '370971C4AFEB7501AE636C3016BFD1E5A399F76F0CBF4C9DA55E4AC24E8960984B2905B6' : true,
+ '3741491B18569A26F5ADC266FB40A54C4313BB96F1D5869BC14E6A92F6CFF63469878237' : true,
+ '3785445332451F20F0F395E125C4434EF48B11BFDEABBE94542071E641DE6BBE882B40B9' : true,
+ '37A56ED4B1258497B7FD56157AF9A200B435D4E1119D1C6690A749EBB394BD637BA782B7' : true,
+ '3916AAB96A41E11469DF9E6C3B72DCB6879F4BEE05DF98583BE360D633E70D3FFE9871AF' : true,
+ '3AB2DE229A209349F9EDC8D28AE7680D36863563FD5128C7BEA6F005CFE9B43668086CCE' : true,
+ '3AE550B039BEC7463633A1FE823E8D943CBB5DE0FCD6397C0588E56697BD462ABDF95C76' : true,
+ '3B0AE4BB416A84B39D2C575E6542BE478E1032E9245944F84791983EC9E829CB1059B4D3' : true,
+ '3C4C25CC0A19CAEE6AEB55160086725F23E833233E7D0CC92B7C4279AC19C2F474D604CA' : true,
+ '3D4129CB1EAA1174CD5DB062AFB0435BDDE1D2A901802E1D875E84B3807E4BB1FD994134' : true,
+ '3E455215095192E1B75D379FB187298AB1BC968BD4F49D622AA89A81F2150152A41D829C' : true,
+ '3E80175BADD77C104BF941B0CF1642B000EA522C8A9C06AA3ECCE0B4FA6CDC21D92E8099' : true,
+ '3F459639E25087F7BBFE980C3C2098E62AC8D58B57CEBF2F49AFF2FC768F511462907A41' : true,
+ '400125068D21436A0E43009CE743F3D5F9CD0E2CDA7624C18FBDF0F0ABB645B8F7FED57A' : true,
+ '410352DC0FF7501B16F0028EBA6F45C5DAC9024F54D8F6DF94935FB1732638CA6AD77C13' : true,
+ '41B807F7A8D109EEB49A8E704DFC1B787A74410FB0CD5C972A364B71BF031D88A6510E9E' : true,
+ '4265CABE019A9A4CA98C4149CDC0D57F293621028B20ED02F566C532D1D6ED909F45002F' : true,
+ '42769768CFA6B43824AAA11BF267DECA4178AB4CBFCE7B4102ACDAC4933E6FF50DCF715C' : true,
+ '4281A0E21CE35510DE558942659622E6E0B4322EB2F6A568B654538448184A5036874384' : true,
+ '429BD669C6D445AD2E81511D355A89624F555CE20DCD3364E0DC7C41EFDD40F50356C122' : true,
+ '45E1A572C5A93664409EF5E45884678C6B2F34AD8958BE62FDB06B5CCEBB9DD94F4E39F3' : true,
+ '45F750114EC5ADBD53688663EC7B6AE1C09AB0C8AD7114714ED5E21A5A276ADCD5E7EFCB' : true,
+ '468C210EAB92214659DBA6DB0061DE265A5A4DAF7861267C4B1F1E67586BAE6ED4FEB93F' : true,
+ '48D11E627801C26E4369A42CEE130AB564902AD7277AF3E32CD8CC1DC79DE1FD7F8069EA' : true,
+ '4963AE27F4D5953DD8DB2486B89C0753D3C063F219ED073E34AD5D750B327629FFD59AF2' : true,
+ '497904B0EB8719AC47B0BC11519B74D0D1EB23A46D17D68FD92564C2F1F1601764D8E349' : true,
+ '49EFA6A1F0DE8EA76AEE5B7D1E5FC4463E42A18706BD0C9CCF594750D2E4D6AB0048FDC4' : true,
+ '4B1C568CA0E8C79E1EF5EE32939965FE4C95A9902ABE0777CED18D6ACCC3372D2748381E' : true,
+ '4B6771BE33B90DB64B3A400187F08B1F7AC5FFF8DCBC5583176877073BF751735E9BD358' : true,
+ '4B798DD41D0392AA51EE04E5906F474954F9C163759F19045121A319F64C2D0555B7E073' : true,
+ '4BE2C99196650CF40E5A9392A00AFEB28CF427FD790C3AD166068DE81E57EFBB932272D4' : true,
+ '4C5641E50DBB2BE8CAA3ED1808AD43390483ED3399AC3608058722EDBC5E4600E3BEF9D7' : true,
+ '4D56677ECCE6457259B74F511172E169C0DB578157E9EE82B5917DF0DD6D82EE9039C4E2' : true,
+ '4FEBF1F070C280635D589FDA123CA9C4E392512F0ACFF505DFF6DE067F7537E165EA574B' : true,
+ '50193E2FE8B6F4055449F3AEC98B3E1947AFB915CDA26D82467B97FA42914468726138DD' : true,
+ '5186E81FBCB1C371B51810DB5FDCF62078E9DD0650624DB9CB36B50767F209B843BE15B3' : true,
+ '556EBEF54C1D7C0360C43418BC9649C1245C97DF7514E7CF2DF8BE72AE957B9E04741E85' : true,
+ '565FAA80611217F66721E62B6D61568E8025EFF46E70C8D472246584FE403B8A8D6ADBF5' : true,
+ '58EB470764D62CBAE29B96552B9700B56A6F2A8B6E2615088DF59CD24C402418AE42A3F1' : true,
+ '59736628512B98B410FF7D06FA22D6C8A0F8DB3F0BF417693B282EB74A6AD86DF9D448A3' : true,
+ '5A11B922850289E1C3F22CE14EC101844B421F7515F6AE8A6ECEF97F6982A400A4D9224E' : true,
+ '5B6F532CBB8188FA6C042C325DA56B967CA04FD8064C1CAA32A37AA94375038E8DF8DDC0' : true,
+ '5B9EFD3B6035EA688E52FE1319144AA36B81446A5CDDF474A0F800FFBE69FD0DB6287516' : true,
+ '5C48DCF74272EC56946D1CCC713580756631BF9EF74F9EB6C9D5A60CBA6ABED1F7BDEF7B' : true,
+ '5E397BDDF8BAEC82E9AC62BA0C54002BCA3AFBCF1240364B44B216208880483919937CF7' : true,
+ '5E809E845A0E650B1702F355182A3ED7786A74AC76AB147F9C6A3050BA9EA87EFE9ACE3C' : true,
+ '5F944A7322B8F7D131EC5939F78EFE6E9FC796E8F8524F863AE1496D381242105F1B78F5' : true,
+ '60847C5ACEDB0CD4CBA7E9FE02C6A9C0101DFA3FD50BCBBB9BB5600C1955A41AF4733A04' : true,
+ '649CEF2E44FCC68F5207D051738FCB3DDA40188B9189A3EDEEAEDA97FE2F9DF5B7D18A41' : true,
+ '65295911BB8F5166890D47824002C5AFC4674DDC6CE2967FF9C92E072EF8E8A7FBD6A131' : true,
+ '6558AB15AD576C1EA8A7B569ACBFFFEBE5DF743CB601C49B9843DCAB8CE86A81109FE48E' : true,
+ '67AC0D773011DED143AE7B737190BCA9ED8DC8386C4886AEEE079158AAC3BFE658E394B4' : true,
+ '67CB9DC013248A829BB2171ED11BECD4D23209AD23D314232174E40D7F9D62139786633A' : true,
+ '689B17C654E0E0E099551642F75A86D8027268293E5F5D17AAA4B3C3E6361E1F92575EAA' : true,
+ '6960ECBE8C94D76E6F2EC4782F55F08397226AAE4A7A64A59BD16787F27F841C0A001FD0' : true,
+ '6C397DA40E5559B23FD641B11250DE435F3B8CF2F810B37D78B4CEEC1919C37334B9C774' : true,
+ '6CC9A76E47F10CE3533B784C4DC26AC5B72FFF92D2CE43DE0A8D4C548C503726A81E2B93' : true,
+ '6D38C49B22244CA3A8B3A09345E157FA89C32E6B524E4D65388B9ECEDC637134ED4193A3' : true,
+ '70B57C4881953E80DC289BBAEF1EE4854072BA31FEC351438480F62E6CB95508461EAB2F' : true,
+ '711F0E21E7AAEA323A6623D3AB50D66996974CD6B663A7184526B1D648AD815CF51E801A' : true,
+ '71AA6AAF1FA5C0D50E90D40BF6AADFCC55C86F7414AC8BDD6814F4D86AF15F3710E104D0' : true,
+ '71E265FBCD7B0B845BE3BCD76320C598CFF810FB2C4FFC0156BFE1E1FABCB418C68D31C5' : true,
+ '72E44A87E369408077EABCE3F4FFF0E15F43E5B1BFF8788CAC1CC7CA4A9AC6222BCC34C6' : true,
+ '733A747AECBBA396A6C2E4E2C89BC0C3AEC5FB3FC8E1BFC4E54F03075A9AE800B7F7B6FA' : true,
+ '739DD35FC63C95FEC6ED89E58208DD897FB9E2C995C97A939F9E81A07AEA9B4D70463496' : true,
+ '74014A91B108C458CE47CDF0DD11530885A408C09C193E5D51587DCDD61330FD8CDE37BF' : true,
+ '747B820343F0009E6BB3EC47BF85A5934463C531D7CCC1006794612BB656D3BF8257846F' : true,
+ '74A82C81432B35609B78056B58F36582CFF360F524CB20F1FEAD89006F7F586A285B2D5B' : true,
+ '770D19B121FD00429C3E0CA5DD0B028E25019019CFFBD9991CB76825748D945F30939542' : true,
+ '774AF42C9DB027B747B515E4C762F0FCDF646DCB7B0FD3A96AEE88C64E2D676711FF9D5F' : true,
+ '782A02DFDB2E14D5A75F0ADFB68E9C5D4F65566336DB6598581D584A596C87934D5F2AB4' : true,
+ '78A5FB104BE4632ED26BFBF2B6C24B8EEC0C3716EA9EDFADD35DFBD55608E60A05D3CBF3' : true,
+ '79E4A9840D7D3A96D7C04FE2434C892EA8985D3A65E5E5C4B2D7D66D40C6DD2FB19C5436' : true,
+ '7A79544D07923B5BFF41F00EC739A298C060ED44CBD881BD0EF86C0BA287DDCF8167478C' : true,
+ '7BB508999A8C18BF85277D0EAEDAB2AB24BA6D6C8A5B5837A48DB5FAE919EA675C94D217' : true,
+ '7C62FF749D31535E684AD578AA1EBF239F744E9F2B4DBAEC0F312C50B6563B8E2D93C311' : true,
+ '7CA50FF85B9A7D6D30AE545AE342A28A59AF82799186C7B47507CBCF035746EB04DDB716' : true,
+ '7D86908F5BF1F240C0F73D62B5A4A93B72997913EC9B0DAE65D1B6D7B24A76A3AEC2EE16' : true,
+ '7E234E5BA7A5B425E90007741162AED67F8AB0CFD051876A66F3360F47C88D8CD335FC74' : true,
+ '7F667A71D3EB6978209A51149D83DA20BE36A4562FB2EE05DBB3D32323ADF445084ED656' : true,
+ '803ABC22C1E6FB8D9B3B274A321B9A0147BEABC922EAE80E78783462A79F45C254FDE68B' : true,
+ '8135B9FBFB12CA186936EBAE6978A1F1DCBB9EB7194BC47205C111752986835B53CAE4F8' : true,
+ '81D6ED354F1F26D031D040DD8AE5810DE0925E18C7765E22DABD9427529DA6AF4E066428' : true,
+ '8212F789E10B9160A4B6229F9468119268ED18B309CD5291C0D3357C1D1141BF883866B1' : true,
+ '824AD493004D66B6A32CA77B3536CF0B687EC17E0602E3CD3F7DFBD7E28D57A0199A3F44' : true,
+ '8292BA5BEFCD8A6FA63D55F984F6D6B7F9B5B632455F9CBEEC575F80DCE96E2CC7B278B7' : true,
+ '84901D95304956FC4181F045D776C46B439E525F5A6A47C32CEBC45C63ED39317CE5F4DF' : true,
+ '852FF4764CD5426CCB5E7DF717E835BD4EFCED9C6BDD0C985CA3C7D253063C5BE6FC620C' : true,
+ '85CA765A1BD16822DCA22312CAC680345BCDCDCC66F6DCE4441FE37D5CC3134C46F47038' : true,
+ '86386D5E49636C855CDB6DDC94B7D0F7ACED5F6553FD25CE015F1F7A483B6A749F6178C6' : true,
+ '86420509BCA79DEC1DF32E0EBAD81DD01D8259CA2127C3CBC16CD932F62C65298CA88712' : true,
+ '86ACDE2BC56DC3D98C2888D38D16131ECE6A64A309E42FBBD9851C453E6409EAE87D60F1' : true,
+ '86EF8E319D9F8569A2A41A127168BA1B90DECE77F8C825340E62EBD635E1BE20CF7327DD' : true,
+ '8714AB83C4041BF193C750E2D721EBEF30779E9315022E94856A3FF8BCF815B082F9AEFD' : true,
+ '879055F2CE31153C33D927C876E37DE13070F8833E4AA6803E09A646AE3F7D8AE1FD1654' : true,
+ '87CE0B7B2A0E4900E158719B37A893720563B8630D62D75ABBC8AB1E4BDFB5A899B24D43' : true,
+ '882C8C52B8A23CF3F7BB03EAAEAC420B74207441729CDD92EC7931D823108DC28192E2BB' : true,
+ '8949548CC8689A8329ECDC067321AB97A60F34C8626C81F68BF77DA9F667588A903F7D36' : true,
+ '8956AA4D441E59D805A1886DEAC828B26372C49DA9FFF051B8B5C7D4E5AAE30384024B9C' : true,
+ '8BCA525F7553D02C6F630D8F882E1CD78EB03FC3CF7BB292866268B751223DB5103405CB' : true,
+ '8CCADC0B22CEF5BE72AC411A11A8D81291C6D6EE3E8AC86384E548C299295C756C817B81' : true,
+ '8CD79FEBC7B8144C5478A7903BA935671F55E8839BAC30728BE7108EDE7B0BB0D3298224' : true,
+ '8D26FF2F316D5929DDE636A7E2CE6425720FC15DDC27D456D098FABF3CDD78D31EF5A8DA' : true,
+ '8D639B56C114E4EE9A128586119082A3D2441AA8C203AECAA96E501F124D52B68FE4C375' : true,
+ '8D7251DBA03ACF2077DFF265065EDFEFC8C25F169EF85074D5BEE8CDA2D43CAEE75FD257' : true,
+ '8EADB501AA4D81E48C1DD1E1140095193679CA35668772304D30A5FB873B0FA77BB70D54' : true,
+ '8F5D770627C4983C5B9378E7D77D9BCC7E784A101C8265CC2DE1F16D47B440CAD90A1945' : true,
+ '8F91E7EEE3FCDA86CAFCDC70EDB7B70C8250BED5A214433A66377CBC10EF83F669DA3A67' : true,
+ '911B3F6ECD9EABEE07FE1F71D2B36127E19FE30E8B84609E809B170D72A8C5BA6E1409BD' : true,
+ '91DE0625ABDAFD32170CBB25172A84672796BAE63F1801E277261BA0D77770028F20EEE4' : true,
+ '91F4035520A1F8632C62DEACFB611C8E21FCBD8E7F6CAF051BD1B343ECA8E76147F20F8A' : true,
+ '9265588BA21A317273685CB4A57A0748E621F3354379059A4B68309D8A2F74221587EC79' : true,
+ '932A3EF6FD23690D7120D42B47992BA6CBA1C5F8B0E35EB8B94512D3F934A2E90610D336' : true,
+ '937F901CED846717A4655F9BCB3002978781C25A96BDC2FB4C65064FF9390B26048A0E01' : true,
+ '93C28E117BD4F30319BD2875134A454AAB48F333DB04ABB9C072DA5B0CC1D057F0369B46' : true,
+ '93EB36130BC154F13E7505E5E01CD4375F4E1FCF31B7913B850B54F6E5FF501A2B6FC6CF' : true,
+ '93F1AD340B2BE7A85460E2738CA49431705D2B4565C7047A540694A79AF7ABB842BDC161' : true,
+ '9414777E3E5EFD8F30BD41B0CFE7D03075E0ABB6138512271C04F85FDDDE38E4B7242EFE' : true,
+ '96897D61D1552B27E25A39B42A6C446F8EFDCABC93E61E925D4D1DED181A4320A467A139' : true,
+ '9760E8575FD35047E5430C94368AB06290AEA26985FF14804C434952ECE9608477AF556F' : true,
+ '978FC66B3B3E40857724750B76BB55F8B5D303BF8682E152919D83F184ED05F1DCE5370C' : true,
+ '9A771918ED96CFDF1BB70EF58DB9882ECF74BFFF9B86815B08335440363E87B6B6F0BF73' : true,
+ '9AAEF722F533FB4EEC0A249DC63D7D255E997CA5945AAB75FFD14804A974BF2AE1DFE7E1' : true,
+ '9B340D1A315B97462698BCA6136A71969E6CEB179185A29EC6060CA53E1974AF94AF59D4' : true,
+ '9D666ACCFFD5F543B4BF8C16D12BA8998939576E178DF705780FCC5EC84F84F6253A4893' : true,
+ '9DFBF9ACED893322F428488325235BE0A69A91FD057F136A42630BB1760D2D51120C1650' : true,
+ '9E80FF78010C2EC136BDFE96906E08F34ABDEEEC950D359C89AEC752A12C5B29F6D6AA0C' : true,
+ '9F6C1F0F07AC1921F915BBD5C72CD82AF5C27CF5FFF3029ACF1A1A4BEC7EE1964C77D784' : true,
+ '9FDDDBABFF8EFF45215FF06C9D8FFE2B9656CD7B57969895D0E141466806FBB8C6110687' : true,
+ 'A10B44B3CA10D8006E9D0FD80F920AD1B80186D1EB9C86A54104CF3054F34C52B7E558C6' : true,
+ 'A208E4B33EEFDE084B60D0BF7952498D8CC4307BC60755E7B22DD9F7FEA245936C7CF288' : true,
+ 'A2339B4C747873D46CE7C1F38DCB5CE985371CA6E550143DCE2803471BDE3A09E8F8770F' : true,
+ 'A26F53B7EE40DB4A68E7FA18D9104B7269BD8CF49CD300FB592E1793CA556AF3ECAA35FB' : true,
+ 'A33D88FE161BDDF95C9F1A7FD8C89008A3E31E20B2E46A328520472D0CDE9523E7260C6D' : true,
+ 'A37D2C27E4A7F3AA5F75D4C49264026AB6AF5BE5F878A00114C3D7FEF8C775C34CCD17B6' : true,
+ 'A3EC750F2E88DFFA48014E0B5C486FFB37F76DE6077C90C5B13E931AB74110B4F2E49A27' : true,
+ 'A66B6090239B3F2DBB986FD6A7190D46E0AB059420725493056062023670F7CD2EFC6666' : true,
+ 'A771FD26FC3CE540F19906EBC1936DE9E619D25B380B7B13FDA33E8A58CD82D8A88E0515' : true,
+ 'A7F2E41606411150306B9CE3B49CB0C9E12DFB4B41D7D9C32B30514BAC1D81D8385E2D46' : true,
+ 'A80D6F3978B9436D77426D985ACC23CAD6DAA8208D09D2154D24B52FCB346EB258B28A58' : true,
+ 'A8EDDEEB938866D82FC3BD1DBE45BE4D7639C71847E151B5C7EA01C758FBF12ABA298F7A' : true,
+ 'A923759BBA49366E31C2DBF2E766BA87317A2AD07F2B335EF5A1C34E4B57E8B7D8F1FCA6' : true,
+ 'A981C0B73A9250BC91A521FF3D47879FCB658264EA8CDA186E1752FB52C397367EA387BE' : true,
+ 'AA088FF6F97BB7F2B1A71E9BEAEABD79CF9E876DD3EBFC422697A3B5A37AA076A9062348' : true,
+ 'AA8E5DD9F8DB0A58B78D26876C823555409D4BD917B55C27B69B64CB9822440DCD09B889' : true,
+ 'AABFBF6497DA981D6FC6083A957033CA394FF6850B06BE52E51856CC10E180E882B385CC' : true,
+ 'AB57A65B7D428219B5D85826285EFDFFB12E13634586A46F1AB2606837582DC4ACFD9497' : true,
+ 'ABAB8D2DB740E5973D2FF2A63BDA6A05C18211328A92B3B23809B9B5E2740A07FB12EB5E' : true,
+ 'ABBFEAE36B29A6CCA6783599EFAD2B802F173F7DE99667AFA57AF80AA2D1B12FAC830338' : true,
+ 'ACB694A59C17E0D791529BB19706A6E4D4DE20D05E66FC53FE1A50882C78DB2852CAE474' : true,
+ 'AD8E0F9E016BA0C574D50CD368654F1ECFDEFE102FDA05BBE4C78D2E4423589005B2571D' : true,
+ 'AFB8336E7CDDC60264AD58FC0D4F7BCFBC7B3C6FEF26B9F7AB10D7A1F6B67C5ED2A12D3D' : true,
+ 'B001EE14D9AF291894768EF169332A846E3A55A4190C195C93843CC0DB722E313061F0B1' : true,
+ 'B147BC1857D118A0782DEC71E82A9573204285DCF7EB764195578E136BD4B7D1E98E46A5' : true,
+ 'B39C25B1C32E32538015309D4D02773E6782AAE0EDEEE21A5839D3C0CD14680A4F60142A' : true,
+ 'B3A53E77216DAC4AC0C9FBD5413DCA0658119F0E128287EA50FDD987456F4F78DCFAD6D4' : true,
+ 'B44ADBE85916461E5AD86EDA064352622964B686135B5DFDDD3253A89BBC24D74B08C64D' : true,
+ 'B465220A7CADDF41B7D544D5ADFA9A75BC9219DDC98E14BF1A781F6E280B04C27F902712' : true,
+ 'B4819E89AC1724FD2A4285271D0C2B5D20CB594FB4EDD895763FD5254E959A6674C6EEB2' : true,
+ 'B5E83436C910445848706D2E83D4B805039EEDB80BE7A03C6953893B20D2D9323A4C2AFD' : true,
+ 'B75274E292B48093F275E4CCD7F2EA263BC49F48F8F373A09C1EBDF85BB1C365C7D811B3' : true,
+ 'B774CD487C5F9A0D3BF3FE66F41B3DFA5B4E0EC28EBD8292A51782241281AD9FEEDD4E4C' : true,
+ 'B7B0D1EC1A033ECEA91511CCB16FB2AEE3D73606996CDFEF61FA04C335E98EA96104264A' : true,
+ 'B8089AF003CC1B0DC86C0B76A1756423A0A1AB90C9FC847B3B1261E8977D5FD32261D3CC' : true,
+ 'B816334C4C4CF2D8D34D06B4A65B4003838E30F77FDD14AA385ED145009C0E2236494FAA' : true,
+ 'B8D312034E8C0C5A47C9B6C59E5B97FD0560A2C738FF98D1172A94FE45FB8A47D665371E' : true,
+ 'BA21EA20D6DDDB8FC1578B40ADA1FCFC801D62D07B449D5C5C035C98EA61FA443C2A58FE' : true,
+ 'BA926442161FCBA116481AF6405C59870456F23D1E9C43AECB0D807F1C0647551A05F456' : true,
+ 'BC6C5133A7E9D366635415721B2192935922A1E15AEA163521F898396A4646B0441B0FA9' : true,
+ 'BD8ACE34A8AE6148E85EC87A1CE8CCBFD2EDF88B41B6FE01461D6E2834EC7C8F6C77721E' : true,
+ 'BDD6F58A7C3CC4A6F934CCC38961F6B2CABB51672400588E6419F1D40878D0403AA20264' : true,
+ 'BE395ABE078AB1121725CC1D46343CB2DE990CED99E0431F60EDC3937E7CD5BF0ED9E5FA' : true,
+ 'BF6059A35BBAF6A77642DA6F1A7B50CF5D989CDB159611365165641B560FDBEA2AC23EF1' : true,
+ 'BFB5E77D3DEA6F1DF08A50BC8C1CFA1DE4554333CA390E128B8BF81D90B70F4002D1D6E9' : true,
+ 'C1623E23C582739C03594B2BE977497F2AB628485E78FBF3AD9E7910DD6BDF99722C96E5' : true,
+ 'C1D43E07AEEBECFD7589E67EA84CEBCD76B76096DD145629AC7585D37063C1BC47861C8B' : true,
+ 'C1D951C084B86A75E82FD7D65F7EAC460B972C9EA6E7CC58D93B20BF71EC412E7209FABF' : true,
+ 'C22A59ABCF152F4CF7E631A316AE840C9158C5EF987301A8903CFDAB03D72DA1D88909C9' : true,
+ 'C2DBAB8E9652C5EEAEF25500896D55953913853E45C439A2DA718CDFB6F3E033E04FEE71' : true,
+ 'C45D0E48B6AC28304E0ABCF938168757D8A6332CE0036FB185F6634F7D6A066526322827' : true,
+ 'C463AB44201C36E437C05F279D0F6F6E97E2E99636A547554F838FBA38B82E74F89A830A' : true,
+ 'C4D7F0B2A3C57D6167F004CD43D3BA5890DEDE9E4C4E9F6FD88617579DD391BC65A68964' : true,
+ 'C570C4A2ED53780CC810538164CBD01D23E594945195F2414803B4D564D2A3A3F5D88B8C' : true,
+ 'C5A1B7FF73DDD6D7343218DFFC3CAD8806083F593F15A104A069A46BA903D006B7970991' : true,
+ 'C5DFB849CA051355EE2DBA1AC33EB028D69B561148F01C77C54578C10926DF5B856976AD' : true,
+ 'C5E67BBF06D04F43EDC47A658AFB6B19339B6B1450249B557A01877284D9E02FC3D2D8E9' : true,
+ 'C69F6D5CB379B00389CBF03FA4C09F8AEF2DACCBEABB682D32CE4ABD6CB90025236C07BC' : true,
+ 'C7BD11D6918A3582C53666017C6F4779634C3B0230CF1B78B4569FECF2C04A8652EFEF0E' : true,
+ 'C86E97F335A729144782892391A6BEC84A3F8D6BDC0E1ECFCD72E377DEF2D7FF92C19BC7' : true,
+ 'C91962D0DA7E1020FCA4CD0380872DF551A44C28F313E3F9CB5E7C0A1E0E0DD2843758AE' : true,
+ 'C9982777281E3D0E153C8400B88503E656E0FAC03B8F18235518E5D311CAE8C24331AB66' : true,
+ 'CA3DD368F1035CD032FAB82B59E85ADB97817950D81C9670CC34D809CF794431367EF474' : true,
+ 'CB17E431673EE209FE455793F30AFA1C4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5' : true,
+ 'CBBDC3682DB3CB1859D32952E8C66489C9321DE6B5A82666CF6971A18A56F2D3A8675602' : true,
+ 'CC4DAEFB306BD838FE50EB86614BD2269C615C4D4D85103A5326C24DBAEAE4A2D2D5CC97' : true,
+ 'CD3B3D625B09B80936879E122F7164BA67EB337B684CEB0EC2B0760AB488278CDD9597DD' : true,
+ 'CD68B6A7C7C4CE75E01D4F5744619209132D0D45534B6997CDB2D5C339E25576609B5CC6' : true,
+ 'CD996CDB2AC296155ABF879EAEA5EE93EE29D6EA98E632C6E527E0906F0280688BDF44DC' : true,
+ 'CDF439F3B51850D73EA4C591A03E214BE1A45B141A21DA1A79F41A42A961D669CD0634C1' : true,
+ 'CE78335C5978016E18EAB936A0B92E23AE5083ED7CF45CBC8F61C621FE685D794221156E' : true,
+ 'CF8F3B62A3CACA711BA3E1CB4857351F5D003860F002ED829DEAA41868F788186D62127F' : true,
+ 'CFF4270DD4EDDC6516496D3DDABF6EDE3A44735AE581901F248661461E3B9CC45FF53A1B' : true,
+ 'D2EDEE7992F78272180BFED98BEC13D8A7F8390BA57705096FD36941D42E7198C6D4D9D5' : true,
+ 'D35376E3CE58C5B0F29FF42A05F0A1F2211165CA379FBB5ED801E31C430A62AAC109BCB4' : true,
+ 'D3D9BDAE9FAC6724B3C81B52E1B9A9BD4A65D5F41DEF39B8B8904A4AD3648133CFC7A1D1' : true,
+ 'D3F3A616C0FA6B1D59B12D964D0E112E74F8A3C3EFE7B390064B83903C21646020E5DFCE' : true,
+ 'D474DE575C39B2D39C8583C5C065498A5FB7EE0633E259DBAD0C4C9AE6D38F1A61C7DC25' : true,
+ 'D480656824F9892228DBF5A49A178F14016897E1A0B8F2C3B134665C20A727B7A158E28F' : true,
+ 'D59788DA6416E71D664AA6EA37FC7ADCEC93DE083C93D933A986B3D5CDE25ACB2FEECF8E' : true,
+ 'D5BEFFB5EE826CF0E2578EA7E5346F03D904080A4929C838E9F185ECF7A22DEF99342407' : true,
+ 'D5E98140C51869FC462C8975620FAA7807E032E020B72C3F192F0628A2593A19A70F069E' : true,
+ 'D63981C6527E9669FCFCCA66ED05F296B51C067CEE2B0C3DF855AB2D92F4FE39D4E70F0E' : true,
+ 'D6A5C3ED5DDD3E00C13D87921F1D3FE4B31EB1B740E36C8402DADC37D44DF5D4674952F9' : true,
+ 'D6ED3CCAE2660FAF10430D779B0409BF85B5FF679B0C79961FC86E4422004613DB179284' : true,
+ 'D7343DEF1D270928E131025B132BDDF7B172B1A56D95F91FE50287E14D37EA6A4463768A' : true,
+ 'D87E32EF69F8BF72031D4082E8A775AF42EFDDE6BFF35ED0BAE6ACDD204C50AE86C4F4FA' : true,
+ 'DA26B6E6C7C2F7B79E4659B3577718653E84D3BCC544C0F6FA19435C851F3F2FCBA8E814' : true,
+ 'DB233DF969FA4BB9958044735E7D4183273EE12457FDC4F90C55E82B56167F62F532E547' : true,
+ 'DBC8F2272EB1EA6A29235DFE563E33DFC8EC8C879269CB4BAB39E98D7E5767F31495739D' : true,
+ 'DC32C3A76D2557C768099DEA2DA9A2D18782C6C304353BCFD29692D2593E7D44D934FF11' : true,
+ 'DC6D6FAF897CDD17332FB5BA9035E9CE7F88CD7223F3C813818C994614A89C99FA3B5247' : true,
+ 'DD753F56BFBBC5A17A1553C690F9FBCC24A40A1F573643A67F0A4B0749F6A22BF28ABB6B' : true,
+ 'DF0DBC7CC836B77699A1ABF0D20F896A342CD9D3062DA48C346965297F081EBC2EF68FDC' : true,
+ 'DF168A83EA83845DB96501C6A65D193EDBAC3C7AA4254DA1AA5CAAD68468CB88EEDDEEA8' : true,
+ 'DF3C735981E7395081044C34A2CBB37B61573A11DF0ED87ED5926522EAD056D744B32371' : true,
+ 'DFF28073CCF1E66173FCF542E9C57CEE99A69BE61AFE886B4D2B82007CB854FC317E1539' : true,
+ 'E006A1C97DCFC9FC0DC0567596D862139BAAE59F56EE21CB435ABE2593DFA7F040D11DCB' : true,
+ 'E14B5273D71BDB9330E5BDE4096EBEFB216B2A29E62A00CE820146D8244141B92511B279' : true,
+ 'E1C07EA0AABBD4B77B84C228117808A7CDD4EEAE6000AC7F40C3802C171E30148030C072' : true,
+ 'E2D52023ECEEB872E12B5D296FFA43DA9BACF3B664EAC5A17BED08437C72E4ACDA12F7E7' : true,
+ 'E2D8F867F4509435FC5E05FC822295C30446C8BB9A6983C95C8A2E5464687C1115AAB74A' : true,
+ 'E2F8E080D0083F1EC1E9D23F8069AE06C73026E325FE21916B55C4B53A56B13DCAF3D625' : true,
+ 'E60BD2C9CA2D88DB1A710E4B78EB024140E78C1D523D1CD9954FAC1A1AB3BD3CBAA15BFC' : true,
+ 'E77ADCB11F6E061F746C591627C34BC07454535C24A3A758207E3E3ED324F816FB211649' : true,
+ 'E8CC9FB09B40C51F4FBA7421F952857A688B6EB807E8EDA5C7B17C4393D0795F0FAE155F' : true,
+ 'EBB04F1D3A2E372F1DDA6E27D6B680FA18F7C1FCC3090203FD5BAA2F861A754976C8DD25' : true,
+ 'EBF59D290D61F9421F7CC2BA6DE3150928903A635B5280FAE6774C0B6DA7D6BAA64AF2E8' : true,
+ 'EC407D2B765267052CEAF23A4F65F0D8A5EC73D48C34FCBEF1005AEB85843524BBFAB727' : true,
+ 'ED41F58C50C52B9C73E6EE6CEBC2A8261B4B396126276B6491A2686DD70243212D1F1D96' : true,
+ 'EE2931BC327E9AE6E8B5F751B4347190503006091D97D4F5AE39F7CBE7927D7D652D3431' : true,
+ 'EE7A41E0CF757D889280A21A9A7BA157679A4F81FC705DDEC419778DD2EBD875F4C242C6' : true,
+ 'EEFE6169656EF89CC62AF4D72B63EFA29FAD91A6CE6AC6C50047C44EC9D4A50D92D84979' : true,
+ 'EF5AF133EFF1CDBB5102EE12144B96C4A1DB6393916F17E4185509400415C70240B0AE6B' : true,
+ 'F058C503826717AB8FDA0310278E19C2CB44A097857C45FA187ED952086CB9841F2D51B5' : true,
+ 'F096B62FC510D5678E832532E85E2EE52388C9D371CC9E963DFF7D3CA7CEFCD625EC190D' : true,
+ 'F09E639376A595BC1861F19BFBD364DD80BF3DE9A41D768D194B293C85632CDBC8EA8CF7' : true,
+ 'F16A2218C9CDDFCE821D1DB7785CA9A57998A308E14D6585E6C21E153A719FBA5AD34AD9' : true,
+ 'F1BC636A54E0B527F5CDE71AE34D6E4A36B12B49F9819ED74C9EBC380FC6568F5DACB2F7' : true,
+ 'F20598E5964BBE5D55181B55B388E3929078C5A28F9A4325C2A7C73813CDFE13C20F934E' : true,
+ 'F27DE954E4A3220D769FE70BBBB3242B049811056AFE9FD0F5BE01685AACE6A5D1C4454C' : true,
+ 'F37E3A13DC746306741A3C38328CFBA9253F775B0E7797AB645F15915597C39E263631D1' : true,
+ 'F3D752A875FD18ECE17D35B1706EA59C968338F113E36A7BABDD08F7776391A68736582E' : true,
+ 'F4FF97428070FE66168BBED35315819BF44095C238AC73FC4F77BF8F98DF70F8F091BC52' : true,
+ 'F520DA5203862B92768D5CB72D8B93ADA65CB4733D94A5C865A864647C2C01272C89B143' : true,
+ 'F775AB29FB514EB7775EFF053C998EF5DE28F4A4FFE5B92FA3C503D1A349A7F9962A8212' : true,
+ 'F7B661AB03C25C463E2D2CF4A124D854FAA7D9FB31B746F200A85E65797613D816E063B5' : true,
+ 'F8387C7788DF2C16682EC2E2524BB8F95F3AFC0A8B64F686673474DF7EA9A2FEF9FA7A51' : true,
+ 'F8BEC46322C9A846748BB81D1E4A2BF661EF43D77FCAD46151BC98E0C35912AF9FEB6311' : true,
+ 'FB1B5D438A94CD44C676F2434B47E731F18B538D1BE903B6A6F056435B171589CAF36BF2' : true,
+ 'FC11B8D8089330006D23F97EEB521E0270179B868C00A4FA609152223F9F3E32BDE00562' : true,
+ 'FD49BE5B185A25ECF9C354851040E8D4086418E906CEE89C2353B6E27FBD9E7439F76316' : true
+};
View
29 src/chrome/content/meta-preferences.xul
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<?xml-stylesheet href="chrome://https-everywhere/content/preferences.css" type="text/css"?>
+
+<!DOCTYPE overlay SYSTEM "chrome://https-everywhere/locale/https-everywhere.dtd">
+
+<window id="https-everywhere-meta-prefs"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ title="&https-everywhere.prefs.title;"
+ persist="screenX screenY"
+ >
+ <separator class="thin" />
+ <tabbox>
+ <tabs>
+ <tab label="HTTPS Everywhere" />
+ <tab label="SSL Observatory" />
+ </tabs>
+ <tabpanels>
+ <tabpanel flex="1" orient="vertical">
+ <browser src="chrome://https-everywhere/content/preferences.xul" flex="1"/>
+ </tabpanel>
+ <tabpanel flex="1" orient="vertical" height="756" width="800">
+ <browser src="chrome://https-everywhere/content/observatory-preferences.xul" flex="1"/>
+ </tabpanel>
+ </tabpanels>
+ </tabbox>
+
+</window>
View
62 src/chrome/content/observatory-popup.xul
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<!DOCTYPE window SYSTEM "chrome://https-everywhere/locale/ssl-observatory.dtd">
+<window id="ssl-observatory-dialog"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ title="&ssl-observatory.popup.title;"
+ width="500"
+ height="400"
+ align="center"
+ onload="document.getElementById('ask-me-later').focus()"
+ >
+ <script type="application/x-javascript" src="observatory-preferences.js" />
+ <image src="chrome://https-everywhere/skin/ssl-observatory-messy.jpg" />
+ <label style="padding:25px;">&ssl-observatory.popup.text;</label>
+
+ <commandgroup>
+ <command id="enable" oncommand="enable_observatory() ; popup_done()" />
+ <command id="nope" oncommand="popup_done()" />
+ <command id="later" oncommand="window.close()" />
+ <command id="more-info"
+ oncommand='popup_done() ;
+ window.open("chrome://https-everywhere/content/observatory-preferences.xul","obsprefs",
+ "chrome, centerscreen")'
+ />
+ </commandgroup>
+
+ <vbox flex="1">
+ <spacer flex="5" />
+ <separator class="thin"/>
+ <hbox>
+ <spacer flex="2" />
+ <button label="&ssl-observatory.popup.yes;" tabindex="2" accesskey="y"
+ command='enable'/>
+ <spacer flex="1" />
+ <button label="&ssl-observatory.popup.no;" tabindex="3" accesskey="n"
+ command='nope'/>
+ <spacer flex="2" />
+ </hbox>
+ <separator class="thin"/>
+ <spacer flex="10" />
+ <hbox>
+ <spacer flex="2" />
+ <button label="&ssl-observatory.popup.details;" tabindex="4" accesskey="D"
+ command='more-info'/>
+ <spacer flex="1" />
+ <button id="ask-me-later" label="&ssl-observatory.popup.later;"
+ tabindex="1" accesskey="A" command='later'/>
+ <spacer flex="2" />
+ </hbox>
+ <separator class="thin"/>
+ <spacer flex="1" />
+ </vbox>
+
+ <!--
+ <hbox style="padding-top:10px;">
+ <label class="text-link" href="https://www.eff.org/" tabindex="3" value="&ssl-observatory.popup.details;" />
+ <spacer flex="1" />
+ <button label="&ssl-observatory.popup.later;" id="ask-me-later" tabindex="0" style="font-size:0.8em;" accesskey="l"
+ oncommand="doCancel()"/>-
+ </hbox>-->
+</window>
View
153 src/chrome/content/observatory-preferences.js
@@ -0,0 +1,153 @@
+const CC = Components.classes;
+VERB=1;
+DBUG=2;
+INFO=3;
+NOTE=4;
+WARN=5;
+
+ssl_observatory = CC["@eff.org/ssl-observatory;1"]
+ .getService(Components.interfaces.nsISupports)
+ .wrappedJSObject;
+obsprefs = ssl_observatory.prefs;
+
+const pref_prefix = "extensions.ssl_observatory.";
+
+function observatory_prefs_init(doc) {
+ // Is the Observatory on?
+ var enabled = obsprefs.getBoolPref("extensions.https_everywhere._observatory.enabled");
+ document.getElementById("use-observatory").checked = enabled;
+ set_observatory_configurability(enabled);
+ // Other settings
+ document.getElementById("alt-roots").checked =
+ obsprefs.getBoolPref("extensions.https_everywhere._observatory.alt_roots");
+ document.getElementById("priv-dns").checked =
+ obsprefs.getBoolPref("extensions.https_everywhere._observatory.priv_dns");
+ document.getElementById("send-asn").checked =
+ obsprefs.getBoolPref("extensions.https_everywhere._observatory.send_asn");
+
+ // More complicated: is it anonymised by Tor?
+ var obs_how = doc.getElementById("ssl-obs-how");
+ var anon_radio = document.getElementById("ssl-obs-anon");
+ var nonanon_radio = document.getElementById("ssl-obs-nonanon");
+ var anon = !obsprefs.getBoolPref(
+ "extensions.https_everywhere._observatory.use_custom_proxy");
+
+ // first set the radios to match the current settings variables
+ obs_how.selectedItem = (anon) ? anon_radio : nonanon_radio;
+
+ // But if the user hasn't turned the observatory on,
+ // the default should be the maximally sensible one
+ var torbutton_avail = ssl_observatory.torbutton_installed;
+ if (!enabled) {
+ set_obs_anon(torbutton_avail);
+ obs_how.selectedItem = (torbutton_avail) ? anon_radio : nonanon_radio;
+ }
+ //scale_title_logo();
+}
+
+// The user has responded to the popup in a final way; don't show it to them
+// again
+function popup_done() {
+ ssl_observatory.popup_responded = true;
+ window.close();
+}
+
+
+function scale_title_logo() {
+ // The image is naturally 500x207, but if it's shrunk we don't want it
+ // distorted
+ var img = document.getElementById("obs-title-logo");
+ alert("ch is " + img.height);
+ if (img.height != "207")
+ img.width = (500.0/207.0) * img.height;
+}
+
+// grey/ungrey UI elements that control observatory operation
+function set_observatory_configurability(enabled) {
+ // the relevant widgets are tagged with class="ssl-obs-conf"
+ var ui_elements = document.querySelectorAll(".ssl-obs-conf");
+ for (var i =0; i < ui_elements.length; i++)
+ ui_elements[i].disabled = !enabled;
+ // the "use tor" option can't be ungreyed unless torbutton is installed
+ if (ssl_observatory.torbutton_installed == false) {
+ var tor_opt = document.getElementById("ssl-obs-anon")
+ tor_opt.disabled = true;
+ tor_opt.label = tor_opt.getAttribute("alt_label");
+ }
+ if (!enabled)
+ hide_advanced();
+}
+
+// show/hide advanced options in the preferences dialog
+function show_advanced() {
+ var enabled = obsprefs.getBoolPref("extensions.https_everywhere._observatory.enabled");
+ if (enabled) {
+ var adv_opts_box = document.getElementById("observatory-advanced-opts");
+ recursive_set(adv_opts_box, "hidden", "false");
+ document.getElementById("show-advanced-button").hidden = true;
+ document.getElementById("hide-advanced-button").hidden = false;
+ }
+ //scale_title_logo();
+}
+function hide_advanced() {
+ var adv_opts_box = document.getElementById("observatory-advanced-opts");
+ recursive_set(adv_opts_box, "hidden", "true");
+ document.getElementById("show-advanced-button").hidden = false;
+ document.getElementById("hide-advanced-button").hidden = true;
+}
+
+function recursive_set(node, attrib, value) {
+ node.setAttribute(attrib, value);
+ for (var i=0; i < node.childNodes.length; i++)
+ recursive_set(node.childNodes[i], attrib, value)
+}
+
+// called from the popup
+
+function set_obs_anon(val) {
+ obsprefs.setBoolPref( "extensions.https_everywhere._observatory.use_custom_proxy", !val);
+}
+function enable_observatory() {
+ obsprefs.setBoolPref("extensions.https_everywhere._observatory.enabled", true);
+}
+
+// called from within the prefs window, we have more work to do:
+function toggle_enabled() {
+ var use_obs = document.getElementById("use-observatory").checked;
+ obsprefs.setBoolPref("extensions.https_everywhere._observatory.enabled", use_obs);
+ set_observatory_configurability(use_obs);
+}
+
+function toggle_send_asn() {
+ var send_asn = document.getElementById("send-asn").checked;
+ obsprefs.setBoolPref("extensions.https_everywhere._observatory.send_asn", send_asn);
+ if (send_asn) ssl_observatory.setupASNWatcher()
+ else ssl_observatory.stopASNWatcher();
+}
+
+function toggle_alt_roots() {
+ var alt_roots = document.getElementById("alt-roots").checked;
+ obsprefs.setBoolPref("extensions.https_everywhere._observatory.alt_roots", alt_roots);
+}
+
+function toggle_priv_dns() {
+ var priv_dns = document.getElementById("priv-dns").checked;
+ obsprefs.setBoolPref("extensions.https_everywhere._observatory.priv_dns", priv_dns);
+}
+
+function observatory_prefs_accept() {
+ // This is *horrid*, but
+ // https://developer.mozilla.org/en/working_with_windows_in_chrome_code#Accessing_the_elements_of_the_top-level_document_from_a_child_window
+ var outer = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
+ .getInterface(Components.interfaces.nsIWebNavigation)
+ .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
+ .rootTreeItem
+ .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
+ .getInterface(Components.interfaces.nsIDOMWindow);
+
+ if (outer) outer.close()
+ else alert("no outer space");
+
+ return true; // https://developer.mozilla.org/en/XUL/dialog#a-ondialogaccept
+ // also close things if there is no out meta prefs window
+}
View
96 src/chrome/content/observatory-preferences.xul
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+
+<!DOCTYPE overlay SYSTEM "chrome://https-everywhere/locale/ssl-observatory.dtd">
+
+<dialog id="https-everywhere-prefs"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ buttons="accept"
+ buttonlabelaccept="&ssl-observatory.prefs.done;"
+ title="&ssl-observatory.prefs.title;"
+ width="800"
+ height="768"
+ persist="screenX screenY"
+ onload="observatory_prefs_init(document)"
+ ondialogaccept="observatory_prefs_accept()">
+ <script type="application/x-javascript" src="observatory-preferences.js" />
+ <vbox flex="1">
+ <spacer flex="1" />
+ <hbox flex="1">
+ <spacer flex="1" />
+ <image id="obs-title-logo"
+ src="chrome://https-everywhere/skin/ssl-observatory-messy.jpg" />
+ <spacer flex="1" />
+ </hbox>
+ <spacer flex="2" />
+ <label>&ssl-observatory.prefs.explanation;</label>
+ <separator class="thin" />
+ <label>&ssl-observatory.prefs.explanation2;</label>
+ <separator class="thin" />
+ <commandset>
+ <command id="toggle-enabled" oncommand="toggle_enabled()" />
+ <command id="use-obs-anon" oncommand="set_obs_anon(true)" />
+ <command id="use-obs-nonanon" oncommand="set_obs_anon(false)" />
+ <command id="toggle-alt-roots" oncommand="toggle_alt_roots()" />
+ <command id="toggle-send-asn" oncommand="toggle_send_asn()" />
+ <command id="toggle-priv-dns" oncommand="toggle_priv_dns()" />
+ </commandset>
+ <checkbox label="&ssl-observatory.prefs.use;" id="use-observatory"
+ command="toggle-enabled" style="font-size:1.5em;"/>
+ <separator class="thin"/>
+ <radiogroup style="margin-left:3em;" id="ssl-obs-how">
+ <radio label="&ssl-observatory.prefs.anonymous;"
+ tooltiptext="&ssl-observatory.prefs.anonymous_tooltip;"
+ alt_label="&ssl-observatory.prefs.anonymous_unavailable;"
+ command="use-obs-anon"
+ class="ssl-obs-conf" id="ssl-obs-anon"/>
+ <radio label="&ssl-observatory.prefs.nonanon;"
+ tooltiptext="&ssl-observatory.prefs.nonanon_tooltip;"
+ command="use-obs-nonanon"
+ class="ssl-obs-conf" id="ssl-obs-nonanon"/>
+ </radiogroup>
+ <separator class="thin"/>
+ <tooltip id="asn-tip" noautohide="true">
+ <label>&ssl-observatory.prefs.asn_tooltip;</label>
+ </tooltip>
+ <checkbox label="&ssl-observatory.prefs.asn;" id="send-asn"
+ tooltip="asn-tip" class="ssl-obs-conf"
+ command="toggle-send-asn)"/>
+ <spacer flex="2" />
+ <hbox>
+ <spacer flex="1" />
+ <button label="&ssl-observatory.prefs.show;" onclick="show_advanced()"
+ id="show-advanced-button" class="ssl-obs-conf"/>
+ <button label="&ssl-observatory.prefs.hide;" onclick="hide_advanced()"
+ id="hide-advanced-button" hidden="true" />
+ <spacer flex="1" />
+ </hbox>
+ <spacer flex="1" />
+ <vbox height="150">
+ <tooltip id="alt-roots-tip" noautohide="true">
+ <label>&ssl-observatory.prefs.alt_roots_tooltip;</label>
+ </tooltip>
+ <tooltip id="priv-dns-tip" noautohide="true">
+ <label>&ssl-observatory.prefs.priv_dns_tooltip;</label>
+ </tooltip>
+ <vbox id="observatory-advanced-opts" hidden="true">
+
+ <groupbox hidden="true" tooltip="alt-roots-tip" >
+ <caption hidden="true" label="&ssl-observatory.prefs.adv_priv_opts1;"/>
+ <checkbox label="&ssl-observatory.prefs.alt_roots;"
+ command="toggle-alt-roots" class="ssl-obs-conf"
+ id="alt-roots" />
+ </groupbox>
+ <groupbox hidden="true" tooltip="priv-dns-tip">
+ <caption hidden="true" label="&ssl-observatory.prefs.adv_priv_opts2;"/>
+ <checkbox label="&ssl-observatory.prefs.priv_dns;"
+ class="ssl-obs-conf" id="priv-dns"
+ command="toggle-priv-dns"/>
+ </groupbox>
+ </vbox>
+ </vbox>
+ <spacer flex="5" />
+ </vbox>
+</dialog>
+
View
18 src/chrome/content/preferences.js
@@ -35,6 +35,7 @@ function reset_defaults() {
treeView.treebox.invalidate();
}
+
function https_prefs_init(doc) {
var st = document.getElementById('sites_tree');
@@ -119,3 +120,20 @@ function window_opener(uri) {
.getMostRecentWindow('navigator:browser')
.open(uri, '','centerscreen' );
}
+
+function https_prefs_accept() {
+ // This is *horrid*, but
+ // https://developer.mozilla.org/en/working_with_windows_in_chrome_code#Accessing_the_elements_of_the_top-level_document_from_a_child_window
+ var outer = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
+ .getInterface(Components.interfaces.nsIWebNavigation)
+ .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
+ .rootTreeItem
+ .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
+ .getInterface(Components.interfaces.nsIDOMWindow);
+
+ if (outer) outer.close()
+ else alert("no outer space");
+
+ return true; // https://developer.mozilla.org/en/XUL/dialog#a-ondialogaccept
+ // also close things if there is no out meta prefs window
+}
View
21 src/chrome/content/preferences.xul
@@ -14,29 +14,32 @@
ondialogextra2="reset_defaults();"
title="&https-everywhere.prefs.title;"
persist="screenX screenY"
- onload="https_prefs_init(document)">
+ onload="https_prefs_init(document)"
+ ondialogaccept="https_prefs_accept()">
<script type="application/x-javascript" src="preferences.js"/>
<groupbox flex="1">
- <caption label="Which HTTPS redirection rules should apply?"
+ <caption label="&https-everywhere.prefs.list_caption;"
align="center"/>
<vbox>
- Search: <textbox id="tree_search" oninput="treeView.search(this);" />
+ &https-everywhere.prefs.search;: <textbox id="tree_search" oninput="treeView.search(this);" />
</vbox>
- <tree id="sites_tree" style="1" rows="20" editable="true">
+ <tree id="sites_tree" style="1" rows="20" editable="true" flex="1">
<treecols>
- <treecol id="enabled_col" type="checkbox" label="Enabled"
+ <treecol id="enabled_col" type="checkbox" label="&https-everywhere.prefs.enabled;"
editable="true" />
- <treecol id="site_col" label="Site" flex="1" editable="false" />
- <treecol id="note_col" label="Notes" flex="1" editable="false" />
+ <treecol id="site_col" label="&https-everywhere.prefs.site;" flex="1" editable="false" />
+ <treecol id="note_col" label="&https-everywhere.prefs.notes;" flex="1" editable="false" />
</treecols>
<treechildren/>
</tree>
</groupbox>
+ <separator class="thin"/>
<vbox>
- You can learn how to write your own rulesets (to add support for other web sites)
+ &https-everywhere.prefs.ruleset_howto;
+ <separator class="thin"/>
<label id="ruleset link"
- value="here"
+ value="&https-everywhere.prefs.here_link;"
style="color: blue; cursor:hand; text-decoration:underline;"
onmouseover="event.target.style.cursor='pointer'"
onmouseout="event.target.style.cursor='default'"
View
7 src/chrome/content/rules/1time.co.za.xml
@@ -0,0 +1,7 @@
+<ruleset name="1time.co.za">
+ <target host="1time.aero" />
+ <target host="www.1time.aero" />
+
+ <rule from="^http://(www\.)?1time\.aero/"
+ to="https://www.1time.aero/" />
+</ruleset>
View
6 src/chrome/content/rules/AdblockPlus.xml
@@ -4,8 +4,6 @@
<securecookie host="^(.*\.)?adblockplus\.org$" name=".*" />
- <rule from="^http://(www\.)?adblockplus\.org/"
- to="https://adblockplus.org/"/>
- <rule from="^http://(easylist|easylist-downloads|hg)\.adblockplus\.org/"
- to="https://$1.adblockplus.org/"/>
+ <rule from="^http://(www\.)?adblockplus\.org/" to="https://adblockplus.org/"/>
+ <rule from="^http://(easylist|easylist-downloads|hg|reports)\.adblockplus\.org/" to="https://$1.adblockplus.org/"/>
</ruleset>
View
8 src/chrome/content/rules/Adobe.xml
@@ -1,6 +1,10 @@
<ruleset name="Adobe">
- <target host="www.adobe.com" />
+ <target host="*.adobe.com" />
+ <target host="cem.events.adobe.com" />
<target host="adobe.com" />
- <rule from="^http://(www\.)?adobe\.com/" to="https://www.adobe.com/"/>
+ <rule from="^http://(www\.)?adobe\.com/"
+ to="https://www.adobe.com/"/>
+ <rule from="^http://(blogs|cookbooks|edexchange|kuler|cem\.events)\.adobe\.com/"
+ to="https://$1.adobe.com/"/>
</ruleset>
View
9 src/chrome/content/rules/AerLingus.xml
@@ -0,0 +1,9 @@
+<ruleset name="Aer Lingus (testing)" default_off="broken?">
+ <target host="aerlingus.com" />
+ <target host="*.aerlingus.com" />
+
+ <rule from="^http://aerlingus\.com/"
+ to="https://aerlingus.com/" />
+ <rule from="^http://(portal|training|www)\.aerlingus\.com/"
+ to="https://$1.aerlingus.com/" />
+</ruleset>
View
13 src/chrome/content/rules/AirAsia.xml
@@ -0,0 +1,13 @@
+<ruleset name="Air Asia">
+ <target host="airasia.com" />
+ <target host="*.airasia.com" />
+ <target host="airasiamegastore.com" />
+ <target host="www.airasiamegastore.com" />
+
+ <rule from="^http://(www\.)?airasia\.com/"
+ to="https://www.airasia.com/" />
+ <rule from="^http://(booking|booking2|goholiday|mobile|origin-www|redtix-tickets)\.airasia\.com/"
+ to="https://$1.airasia.com/" />
+ <rule from="^http://(www\.)?airasiamegastore\.com/"
+ to="https://www.airasiamegastore.com/" />
+</ruleset>
View
9 src/chrome/content/rules/AlaskaAirlines.xml
@@ -0,0 +1,9 @@
+<ruleset name="Alaska Airlines">
+ <target host="alaskaair.com" />
+ <target host="*.alaskaair.com" />
+
+ <rule from="^http://alaskaair\.com/"
+ to="https://www.alaskaair.com/" />
+ <rule from="^http://(careers|easybiz|myeagle|webselfservice|www)\.alaskaair\.com/"
+ to="https://$1.alaskaair.com/" />
+</ruleset>
View
2  src/chrome/content/rules/Apple.xml
@@ -6,6 +6,7 @@
<target host="images.apple.com" />
<target host="jobs.apple.com" />
<target host="support.apple.com" />
+ <target host="discussions.apple.com" />
<rule from="^http://(www\.)?apple\.com/" to="https://www.apple.com/"/>
<rule from="^http://developer\.apple\.com/" to="https://developer.apple.com/"/>
@@ -13,4 +14,5 @@
<rule from="^http://images\.apple\.com/" to="https://ssl.apple.com/"/>
<rule from="^http://jobs\.apple\.com/" to="https://jobs.apple.com/"/>
<rule from="^http://support\.apple\.com/" to="https://support.apple.com/"/>
+ <rule from="^http://discussions\.apple\.com/" to="https://discussions.apple.com/" />
</ruleset>
View
7 src/chrome/content/rules/AustrianAirlines.xml
@@ -0,0 +1,7 @@
+<ruleset name="Austrian Airlines">
+ <target host="austrian.com" />
+ <target host="www.austrian.com" />
+
+ <rule from="^http://(www\.)?austrian\.com/"
+ to="https://www.austrian.com/" />
+</ruleset>
View
44 src/chrome/content/rules/BYU.xml
@@ -0,0 +1,44 @@
+<ruleset name="Brigham Young University (partial)">
+ <target host="byu.edu" />
+ <target host="*.byu.edu" />
+ <target host="www.*.byu.edu" />
+ <target host="*.cs.byu.edu" />
+ <target host="www.*.cs.byu.edu" />
+ <target host="*.et.byu.edu" />
+ <target host="www.*.et.byu.edu" />
+ <target host="*.lib.byu.edu" />
+ <target host="mail01.math.byu.edu" />
+ <target host="mail.physics.byu.edu" />
+ <target host="secure.chem.byu.edu" />
+ <target host="support.cheme.byu.edu" />
+
+ <target host="*.groups.et.byu.net" />
+
+ <exclusion pattern="^http://cpms\.byu\.edu/content/" />
+ <exclusion pattern="^http://cpms\.byu\.edu/newsletters/StudentNews/" />
+ <exclusion pattern="^http://cpms\.byu\.edu/ESM(/|$)" />
+ <exclusion pattern="^http://(www\.)?byu\.edu/(on|off)campushousing(/|$)" />
+ <exclusion pattern="^http://(www\.)?byu\.edu/familyhousing(/|$)" />
+ <exclusion pattern="^http://(www\.)?byu\.edu/housing(/|$)" />
+
+ <!-- For some reason, using the "PREV" or "NEXT" buttons in the "Featured Research"
+ box causes the category menu at the top of the page to incorrectly change from the
+ "Graduate" heading to a different heading when a URL in the two patterns below is
+ accessed via HTTPS, as of July 5, 2011. -->
+ <exclusion pattern="^http://www\.physics\.byu\.edu/Graduate/?$" />
+ <exclusion pattern="^http://www\.physics\.byu\.edu/Graduate/(D|d)efault\.aspx($|(\?))" />
+
+ <!-- Handle domains for which the subdomain should not be preceeded by www. -->
+ <rule from="^((http://(www\.)?)|(https://www\.))(alumni2|alumni3|animation|asme|assess|at|barbershop|blackboard|bookexchange|booklist|byuems|byusa|cac|calendar|ccr|cheme|chemicalengineering|cles|clsupport|comd|cougarprints|coursemanagement|cpms|creativeworks|(((accounts|docs|faculty|facwiki|help|labs|mail|students|tick)\.)?cs)|delegate|developer|education|edward|eroom|((org|pml)\.et)|events|examstat|facultyprofile|finserve|finserve-dev|gamescenter|gamma|gamma-stg|gardner|globalcareer|go|gradebook|home|honorcode|hrms|inshop|internationalservices|irbtutorial|it|itmedia|ittest|jobs|kennedy|kronprod|lambda|leadershiped|lockers|lodges|login|map|marylou|(mail01\.)?math|mathed|multicultural|news|newsnet|oit|online|online1|online2|orca|(mail\.physics)|pmpc|pmpcapps|police|printandmail|purchasing|redefineservice|remedy|risk|ry|sa|saas|sasapps|scheduling|software|spiral|stab|stleader|stokes|studentratings|testing|tutoring|uac|unicomm|volta|webmail|wilk|www|y|yfacts|yjobs|yscience)\.byu\.edu/" to="https://$5.byu.edu/" />
+
+ <!-- Handle domains for which the subdomain should be preceeded by www
+ (including the situation where there is the byu.edu domain with no
+ subdomain.) -->
+ <rule from="^((http://(www\.)?)|(https://))((acerc|et|chem|physics)\.)?byu\.edu/" to="https://www.$5byu.edu/" />
+
+ <!-- Handle certain special cases. -->
+ <rule from="^http://((secure\.chem)|(support\.cheme)|((contentdm|listserver)\.lib))\.byu\.edu/" to="https://$1.byu.edu/" />
+
+ <!-- Handle subdomains for the groups.et.byu.net domain. -->
+ <rule from="^http://([a-zA-Z0-9\-]+)\.groups\.et\.byu\.net/" to="https://$1.groups.et.byu.net/" />
+</ruleset>
View
9 src/chrome/content/rules/BendigoBank.xml
@@ -0,0 +1,9 @@
+<ruleset name="Bendigo Bank">
+ <target host="bendigobank.com.au" />
+ <target host="*.bendigobank.com.au" />
+
+ <rule from="^http://bendigobank\.com\.au/"
+ to="https://www.bendigobank.com.au/" />
+ <rule from="^http://(edroom|m|shop|www)\.bendigobank\.com\.au/"
+ to="https://$1.bendigobank.com.au/" />
+</ruleset>
View
7 src/chrome/content/rules/Bitly.xml
@@ -3,13 +3,18 @@
<target host="www.bit.ly" />
<target host="bit.ly.pro" />
<target host="www.bit.ly.pro" />
+ <target host="bitly.pro" />
+ <target host="www.bitly.pro" />
<target host="j.mp" />
<target host="www.j.mp" />
<target host="on.fb.me" />
+ <target host="bitly.com" />
+ <target host="www.bitly.com" />
<securecookie host="^(.*\.)?bit\.ly$" name=".*"/>
<rule from="^http://(?:www\.)?bit\.ly/" to="https://bit.ly/"/>
- <rule from="^http://(?:www\.)?bit\.ly\.pro/" to="https://bit.ly/pro/"/>
+ <rule from="^http://(?:www\.)?bitly\.com/" to="https://bitly.com/" />
+ <rule from="^http://(?:www\.)?bit\.?ly\.pro/" to="https://bitly.com/pro/"/>
<!--
j.mp doesn't have a correct certificate but the namespaces are the same!
-->
View
2  src/chrome/content/rules/BlockBuster.xml
@@ -1,4 +1,4 @@
-<ruleset name="BlockBuster">
+<ruleset name="BlockBuster UK">
<target host="www.blockbuster.co.uk" />
<target host="blockbuster.co.uk" />
View
6 src/chrome/content/rules/Bmibaby.com.xml
@@ -0,0 +1,6 @@
+<ruleset name="Bmibaby.com">
+ <target host="www.bmibaby.com" />
+
+ <rule from="^http://www\.bmibaby\.com/"
+ to="https://www.bmibaby.com/" />
+</ruleset>
View
12 src/chrome/content/rules/Booking.com.xml
@@ -0,0 +1,12 @@
+<ruleset name="Booking.com">
+ <target host="booking.com" />
+ <target host="*.booking.com" />
+ <target host="*.bstatic.com" />
+
+ <rule from="^http://(www\.)?booking\.com/"
+ to="https://www.booking.com/" />
+ <rule from="^http://(admin|bookingbutton|distribution-xml|mobile|xml)\.booking\.com/"
+ to="https://$1.booking.com/" />
+ <rule from="^http://(\w)\.bstatic\.com/"
+ to="https://$1.bstatic.com/" />
+</ruleset>
View
47 src/chrome/content/rules/Caltech.xml
@@ -0,0 +1,47 @@
+<ruleset name="Caltech">
+<!-- normally https only; protect against SSL stripping -->
+ <target host="access.caltech.edu" />
+ <target host="courses.caltech.edu" />
+ <target host="irsecure.caltech.edu" /><!-- mixed content from www.alumni.caltech.edu -->
+ <target host="mail.alumni.caltech.edu" />
+ <target host="utils.its.caltech.edu" />
+ <target host="webmail.caltech.edu" />
+ <target host="webvpn.caltech.edu" />
+ <!-- XXX: These sites are only for faculty and/or staff. See System Status on www.imss.caltech.edu.
+ Some may require Internet Explorer, so this list may not be useful.
+ The following need to be investigated: outlookweb, kronos, kronoslimited, fiji, jobs -->
+ <target host="techne1.caltech.edu" />
+ <target host="business-query.caltech.edu" />
+ <!-- <target host="solutions.sciquest.com" /> safe? -->
+ <target host="nassau.caltech.edu" />
+ <target host="pcard.caltech.edu" />
+ <target host="scriptor.caltech.edu" />
+ <!-- These two enforce HTTPS by redirecting HTTP requests to HTTPS, but they are self-signed. What is the policy on this? -->
+ <target host="courses.hss.caltech.edu" />
+ <target host="dabney.caltech.edu" />
+<!-- supports https but doesn't use it by default -->
+ <target host="www.its.caltech.edu" /><!-- some pages weren't designed w/ https in mind and have insecure third-party content -->
+<!-- redirectors -->
+ <target host="www.access.caltech.edu" />
+ <target host="its.caltech.edu" />
+ <target host="moodle.caltech.edu" />
+
+ <rule from="^http://(www\.)?access\.caltech\.edu/" to="https://access.caltech.edu/" />
+ <rule from="^http://(courses|moodle)\.caltech\.edu/" to="https://courses.caltech.edu/" />
+ <rule from="^http://irsecure\.caltech\.edu/" to="https://irsecure.caltech.edu/" />
+ <rule from="^http://mail\.alumni\.caltech\.edu/" to="https://mail.alumni.caltech.edu/" />
+ <rule from="^http://utils\.its\.caltech\.edu/" to="https://utils.its.caltech.edu/" />
+ <rule from="^http://webmail\.caltech\.edu/" to="https://webmail.caltech.edu/" />
+ <rule from="^http://webvpn\.caltech\.edu/" to="https://webvpn.caltech.edu/" />
+
+ <rule from="^http://techne1\.caltech\.edu/" to="https://techne1.caltech.edu/" />
+ <rule from="^http://business-query\.caltech\.edu:8181/" to="https://business-query.caltech.edu:8181/" />
+ <rule from="^http://nassau\.caltech\.edu:4444/" to="https://nassau.caltech.edu:4444/" />
+ <rule from="^http://pcard\.caltech\.edu/" to="https://pcard.caltech.edu/" />
+ <rule from="^http://scriptor\.caltech\.edu/" to="https://scriptor.caltech.edu/" />
+
+ <rule from="^http://courses\.hss\.caltech\.edu/" to="https://courses.hss.caltech.edu/" />
+ <rule from="^http://dabney\.caltech\.edu/" to="https://dabney.caltech.edu/" />
+
+ <rule from="^http://(www\.)?its\.caltech\.edu/" to="https://www.its.caltech.edu/" />
+</ruleset>
View
24 src/chrome/content/rules/CanalDigital.xml
@@ -0,0 +1,24 @@
+<ruleset name="CanalDigital">
+ <target host="www.canaldigital.no" />
+ <target host="canaldigital.no" />
+ <target host="kabel.canaldigital.no" />
+ <target host="parabol.canaldigital.no" />
+ <target host="www.dealerno.canaldigital.no" />
+ <target host="selger.canaldigital.no" />
+ <target host="www.canaldigital.se" />
+ <target host="www.canaldigital.dk" />
+ <target host="www.canaldigital.fi" />
+ <target host="campaign.canaldigital.fi" />
+
+
+ <rule from="^http://(www\.)?canaldigital\.no/" to="https://www.canaldigital.no/"/>
+ <rule from="^http://(www\.)?kabel\.canaldigital\.no/" to="https://kabel.canaldigital.no/"/>
+ <rule from="^http://(www\.)?parabol\.canaldigital\.no/" to="https://parabol.canaldigital.no/"/>
+ <rule from="^http://(www\.)?dealerno\.canaldigital\.no/" to="https://www.dealerno.canaldigital.com/"/>
+ <rule from="^http://(www\.)?selger\.canaldigital\.no/" to="https://selger.canaldigital.no/"/>
+ <rule from="^http://(www\.)?canaldigital\.se/" to="https://www.canaldigital.se/"/>
+ <rule from="^http://(www\.)?canaldigital\.dk/" to="https://www.canaldigital.dk/"/>
+ <rule from="^http://(www\.)?canaldigital\.fi/" to="https://www.canaldigital.fi/"/>
+ <rule from="^http://(www\.)?campaign\.canaldigital\.fi/" to="https://campaign.canaldigital.fi/"/>
+
+</ruleset>
View
9 src/chrome/content/rules/Chase.xml
@@ -0,0 +1,9 @@
+<ruleset name="Chase">
+ <target host="chase.com" />
+ <target host="*.chase.com" />
+
+ <rule from="^http://chase\.com/"
+ to="https://www.chase.com/" />
+ <rule from="^http://(locator|www)\.chase\.com/"
+ to="https://$1.chase.com/" />
+</ruleset>
View
9 src/chrome/content/rules/Citibank.xml
@@ -0,0 +1,9 @@
+<ruleset name="Citibank (testing)" default_off="broken?">
+ <target host="citibank.com" />
+ <target host="*.citibank.com" />
+
+ <rule from="^http://citibank\.com/"
+ to="https://www.citibank.com/" />
+ <rule from="^http://(online|www|www\.asia|www\.latam|www\.privatebank)\.citibank\.com/"
+ to="https://$1.citibank.com/" />
+</ruleset>
View
8 src/chrome/content/rules/CompareTheMarket.xml
@@ -0,0 +1,8 @@
+<ruleset name="CompareTheMarket">
+ <target host="comparethemarket.com" />
+ <target host="www.comparethemarket.com" />
+
+ <securecookie host="^(.+\.)?comparethemarket\.com$" name=".*"/>
+
+ <rule from="^http://(www\.)?comparethemarket\.com/" to="https://www.comparethemarket.com/"/>
+</ruleset>
View
8 src/chrome/content/rules/DuckDuckGo.xml
@@ -1,9 +1,13 @@
<ruleset name="DuckDuckGo">
<target host="duckduckgo.com" />
<target host="*.duckduckgo.com" />
+ <target host="ddg.gg" />
<target host="duck.co" />
-
+
<rule from="^http://duckduckgo\.com/" to="https://duckduckgo.com/"/>
<rule from="^http://([^/:@]*)\.duckduckgo\.com/" to="https://$1.duckduckgo.com/"/>
- <rule from="^http://duck\.co/" to="https://duck.co/"/>
+ <!-- TODO: What does ddg.gg/foo do? Runs query foo, redirects to homepage, or error? -->
+ <rule from="^http://ddg\.gg/$" to="https://duckduckgo.com/" />
+
+ <rule from="^http://duck\.co/" to="https://duck.co/" />
</ruleset>
View
2  src/chrome/content/rules/EdUbuntu.xml
@@ -2,7 +2,5 @@
<target host="edubuntu.org" />
<target host="www.edubuntu.org" />
- <securecookie host="^([^@:/]+\.)?milkandmore\.co\.uk$" name=".*"/>
-
<rule from="^http://(www\.)?edubuntu\.org/" to="https://edubuntu.org/"/>
</ruleset>
View
6 src/chrome/content/rules/FSF.xml
@@ -4,9 +4,11 @@
<target host="static.fsf.org"/>
<target host="gnu.org"/>
<target host="*.gnu.org"/>
-
+ <target host="savannah.nongnu.org" />
+
<rule from="^http://(www\.)?fsf\.org/" to="https://www.fsf.org/"/>
<rule from="^http://static\.fsf\.org/" to="https://static.fsf.org/"/>
<rule from="^http://(www\.)?gnu\.org/" to="https://www.gnu.org/"/>
- <rule from="^http://(lists|savannah)\.gnu\.org/" to="https://$1.gnu.org/"/>
+ <rule from="^http://lists\.gnu\.org/" to="https://lists.gnu.org/"/>
+ <rule from="^http://savannah\.(non)?gnu\.org/" to="https://savannah.$1gnu.org/"/>
</ruleset>
View
9 src/chrome/content/rules/FifthThirdBank.xml
@@ -0,0 +1,9 @@
+<ruleset name="Fifth Third Bank">
+ <target host="53.com" />
+ <target host="*.53.com" />
+
+ <rule from="^http://53\.com/"
+ to="https://www.53.com/" />
+ <rule from="^http://(reo|sdg2|www)\.53\.com/"
+ to="https://$1.53.com/" />
+</ruleset>
View
8 src/chrome/content/rules/FitBit.xml
@@ -0,0 +1,8 @@
+<ruleset name="FitBit">
+ <target host="fitbit.com" />
+ <target host="www.fitbit.com" />
+
+ <securecookie host="^(.+\.)?fitbit\.com$" name=".*"/>
+
+ <rule from="^http://(www\.)?fitbit\.com/" to="https://www.fitbit.com/"/>
+</ruleset>
View
4 src/chrome/content/rules/Flickr.xml
@@ -1,6 +1,10 @@
<ruleset name="Flickr (partial)">
<target host="www.flickr.com" />
<target host="flickr.com" />
+ <target host="static.flickr.com" />
+ <target host="*.static.flickr.com" />
<rule from="^http://(www\.)?flickr\.com/" to="https://secure.flickr.com/"/>
+ <rule from="^http://static\.flickr\.com/" to="https://static.flickr.com/"/>
+ <rule from="^http://(farm\d+)\.static\.flickr\.com/" to="https://$1.static.flickr.com/"/>
</ruleset>
View
6 src/chrome/content/rules/Forbrukerraadet.xml
@@ -0,0 +1,6 @@
+<ruleset name="Forbrukerraadet">
+ <target host="www.forbrukerportalen.no" />
+ <target host="forbrukerportalen.no" />
+
+ <rule from="^http://(www\.)?forbrukerportalen\.no/" to="https://forbrukerportalen.no/"/>
+</ruleset>
View
9 src/chrome/content/rules/FusionNet.xml
@@ -0,0 +1,9 @@
+<ruleset name="FusionNet">
+ <target host="fusion-net.co.uk" />
+ <target host="www.fusion-net.co.uk" />
+
+ <securecookie host="^(.+\.)?fusion-net.co.uk$" name=".*"/>
+
+ <rule from="^http://fusion-net\.co\.uk/" to="https://fusion-net.co.uk/"/>
+ <rule from="^http://(www)\.fusion-net\.co\.uk/" to="https://$1.fusion-net.co.uk/"/>
+</ruleset>
View
5 src/chrome/content/rules/GNOME.xml
@@ -1,6 +1,7 @@
-<ruleset name="GNOME (partial)">
+<ruleset name="GNOME">
+ <target host="bugzilla.gnome.org" />
<target host="mail.gnome.org" />
<target host="live.gnome.org" />
- <rule from="^http://(mail|live)\.gnome\.org/" to="https://$1.gnome.org/" />
+ <rule from="^http://(bugzilla|mail|live)\.gnome\.org/" to="https://$1.gnome.org/" />
</ruleset>
View
3  src/chrome/content/rules/Google.xml
@@ -14,16 +14,19 @@
<target host="clients3.google.com.*" />
<target host="clients4.google.com.*" />
<target host="clients5.google.com.*" />
+ <target host="clients6.google.com.*" />
<target host="clients1.google.co.*" />
<target host="clients2.google.co.*" />
<target host="clients3.google.co.*" />
<target host="clients4.google.co.*" />
<target host="clients5.google.co.*" />
+ <target host="clients6.google.co.*" />
<target host="clients1.google.*" />
<target host="clients2.google.*" />
<target host="clients3.google.*" />
<target host="clients4.google.*" />
<target host="clients5.google.*" />
+ <target host="clients6.google.*" />
<!-- Some Google pages can generate naive links back to the
unencrypted version of encrypted.google.com, which is a
View
4 src/chrome/content/rules/GoogleAPIs.xml
@@ -21,8 +21,8 @@
to="https://commondatastorage.googleapis.com/"/>
<rule from="^http://([^@:\./]+)\.commondatastorage\.googleapis\.com/"
to="https://$1.commondatastorage.googleapis.com/"/>
- <rule from="^http://translate\.google\.com/translate_a/"
- to="https://translate.google.com/translate_a/"/>
+ <rule from="^http://translate\.google\.com/translate_a/element\.js"
+ to="https://translate.google.com/translate_a/element.js"/>
<!-- There is an interesting question about whether we should
append &strip=1 to all cache URLs. This causes them to load without
View
25 src/chrome/content/rules/GoogleServices.xml
@@ -26,30 +26,16 @@
<exclusion pattern="^http://(news\.)?google\.com/newspapers" />
<exclusion pattern="^http://(news\.)?google\.com/archivesearch" />
- <rule from="^http://spreadsheets\.google\.com/"
- to="https://spreadsheets.google.com/"/>
- <rule from="^http://docs\.google\.com/"
- to="https://docs.google.com/"/>
- <rule from="^http://groups\.google\.com/"
- to="https://groups.google.com/"/>
+ <rule from="^http://(adwords|appengine|calendar|code|docs|feedburner|groups|mail|pack|plus|sites|spreadsheets|spreadsheets2|tools)\.google\.com/"
+ to="https://$1.google.com/"/>
<rule from="^http://groups\.google\.de/"
to="https://groups.google.de/"/>
- <rule from="^http://mail\.google\.com/"
- to="https://mail.google.com/"/>
<rule from="^http://(www\.)?gmail\.com/"
to="https://mail.google.com/"/>
<rule from="^http://(www\.)?google\.com/reader/"
to="https://www.google.com/reader/"/>
<rule from="^http://(www\.)?google\.com/webfonts"
to="https://www.google.com/webfonts"/>
- <rule from="^http://code\.google\.com/"
- to="https://code.google.com/"/>
- <rule from="^http://sites\.google\.com/"
- to="https://sites.google.com/"/>
- <rule from="^http://plus\.google\.com/"
- to="https://plus.google.com/"/>
- <rule from="^http://adwords\.google\.com/"
- to="https://adwords.google.com/"/>
<!-- This worked for a while but seems to be unstable
<rule from="^http://(www\.)?google((\.com?)?(\.[^/@:][^/@:])?)/products"
@@ -85,14 +71,8 @@
to="https://www.google.co.uk/finance/"/>
<rule from="^http://(www\.)?google\.com/phone/"
to="https://www.google.com/phone/"/>
- <rule from="^http://feedburner\.google\.com/"
- to="https://feedburner.google.com/"/>
<rule from="^http://trends\.google\.com/"
to="https://www.google.com/trends"/>
- <rule from="^http://pack\.google\.com/"
- to="https://pack.google.com/"/>
- <rule from="^http://appengine\.google\.com/"
- to="https://appengine.google.com/"/>
<rule from="^http://([^@:\./]+\.)?appspot\.com/"
to="https://$1appspot.com/"/>
<rule from="^http://pagead2\.googlesyndication\.com/"
@@ -105,7 +85,6 @@
to="https://$1.googleusercontent.com/"/>
<rule from="^http://(www\.)?google\.com/buzz"
to="https://www.google.com/buzz"/>
-
<rule from="^http://(www\.)?google\.com/contacts"
to="https://www.google.com/contacts"/>
<rule from="^http://(www\.)?google\.co\.uk/contacts"
View
2  src/chrome/content/rules/Groupon.xml
@@ -1,4 +1,4 @@
-<ruleset name="Groupon">
+<ruleset name="Groupon DE/UK">
<target host="groupon.de" />
<target host="*.groupon.de" />
<target host="groupon.co.uk" />
View
7 src/chrome/content/rules/Halifax.xml
@@ -0,0 +1,7 @@
+<ruleset name="Halifax">
+ <target host="halifax.co.uk" />
+ <target host="www.halifax.co.uk" />
+
+ <rule from="^http://(www\.)?halifax\.co\.uk/"
+ to="https://www.halifax.co.uk/" />
+</ruleset>
View
9 src/chrome/content/rules/HawaiianAirlines.xml
@@ -0,0 +1,9 @@
+<ruleset name="Hawaiian Airlines">
+ <target host="hawaiianair.com" />
+ <target host="*.hawaiianair.com" />
+
+ <rule from="^http://hawaiianair\.com/"
+ to="https://www.hawaiianair.com/" />
+ <rule from="^http://(emarket|ifs|www)\.hawaiianair\.com/"
+ to="https://$1.hawaiianair.com/" />
+</ruleset>
View
9 src/chrome/content/rules/Hotwire.xml
@@ -0,0 +1,9 @@
+<ruleset name="Hotwire">
+ <target host="hotwire.com" />
+ <target host="*.hotwire.com" />
+
+ <rule from="^http://hotwire\.com/"
+ to="https://www.hotwire.com/" />
+ <rule from="^http://(cruise|extranet|www)\.hotwire\.com/"
+ to="https://$1.hotwire.com/" />
+</ruleset>
View
9 src/chrome/content/rules/IANA.xml
@@ -0,0 +1,9 @@
+<ruleset name="IANA">
+ <target host="iana.org" />
+ <target host="*.iana.org" />
+
+ <rule from="^http://iana\.org/"
+ to="https://www.iana.org/" />
+ <rule from="^http://(data|itar|www)\.iana\.org/"
+ to="https://$1.iana.org/" />
+</ruleset>
View
7 src/chrome/content/rules/JapanAirlines.xml
@@ -0,0 +1,7 @@
+<ruleset name="Japan Airlines">
+ <target host="jal.co.jp" />
+ <target host="www.jal.co.jp" />
+
+ <rule from="^http://(www\.)?jal\.co\.jp/"
+ to="https://www.jal.co.jp/" />
+</ruleset>
View
9 src/chrome/content/rules/Jet2.com.xml
@@ -0,0 +1,9 @@
+<ruleset name="Jet2.com">
+ <target host="jet2.com" />
+ <target host="*.jet2.com" />
+
+ <rule from="^http://jet2\.com/"
+ to="https://www.jet2.com/" />
+ <rule from="^http://(intranet|reservations|www)\.jet2\.com/"
+ to="https://$1.jet2.com/" />
+</ruleset>
View
9 src/chrome/content/rules/KLM.xml
@@ -1,8 +1,9 @@
<ruleset name="KLM">
- <!-- Rule created by Jeroen van der Gun -->
-
- <target host="www.klm.com" />
<target host="klm.com" />
+ <target host="*.klm.com" />
- <rule from="^http://(www\.)?klm\.com/" to="https://www.klm.com/"/>
+ <rule from="^http://klm\.com/"
+ to="https://www.klm.com/" />
+ <rule from="^http://(mobile|www)\.klm\.com/"
+ to="https://$1.klm.com/" />
</ruleset>
View
7 src/chrome/content/rules/Khronos.xml
@@ -0,0 +1,7 @@
+<!-- pages outside the specs folder still need testing and are known to have plaintext from gallery.mailchimp.com -->
+<ruleset name="Khronos Group (partial)">
+ <target host="khronos.org" />
+ <target host="www.khronos.org" />
+
+ <rule from="^http://(www\.)?khronos\.org/registry/(.+)/specs/" to="https://www.khronos.org/registry/$2/specs/" />
+</ruleset>
View
6 src/chrome/content/rules/MCLU.xml
@@ -0,0 +1,6 @@
+<ruleset name="Maine Civil Liberties Union">
+ <target host="mclu.org" />
+ <target host="www.mclu.org" />
+
+ <rule from="^http://(www\.)?mclu\.org/" to="https://www.mclu.org/" />
+</ruleset>
View
9 src/chrome/content/rules/MakeMyTrip.xml
@@ -0,0 +1,9 @@
+<ruleset name="Make My Trip">
+ <target host="makemytrip.com" />
+ <target host="*.makemytrip.com" />
+
+ <rule from="^http://makemytrip\.com/"
+ to="https://www.makemytrip.com/" />
+ <rule from="^http://(cheapfaresindia|image4|image5|m|railtourism|support|us|www)\.makemytrip\.com/"
+ to="https://$1.makemytrip.com/" />
+</ruleset>
View
2  src/chrome/content/rules/McAfee.xml
@@ -10,7 +10,7 @@
<target host="www.mcafeesecure.com" />
<target host="secureimages.mcafee.com" />
<target host="shop.mcafee.com" />
- <rule from="^http://www\.mcafee\.com/" to="https://www.mcafee.com/"/>
+ <rule from="^http://(www\.)?mcafee\.com/" to="https://www.mcafee.com/"/>
<rule from="^http://blogs\.mcafee\.com/" to="https://blogs.mcafee.com/"/>
<rule from="^http://home\.mcafee\.com/" to="https://home.mcafee.com/"/>
<rule from="^http://shop\.mcafee\.com/" to="https://shop.mcafee.com/"/>
View
9 src/chrome/content/rules/MomentusMedia.xml
@@ -0,0 +1,9 @@
+<ruleset name="MomentusMedia">
+ <target host="momentusmedia.com" />
+ <target host="www.momentusmedia.com" />
+
+ <securecookie host="^(.+\.)?momentusmedia\.com$" name=".*"/>
+
+ <rule from="^http://momentusmedia\.com/" to="https://momentusmedia.com/"/>
+ <rule from="^http://(www)\.momentusmedia\.com/" to="https://www.momentusmedia.com/"/>
+</ruleset>
View
7 src/chrome/content/rules/Monarch.co.uk.xml
@@ -0,0 +1,7 @@
+<ruleset name="Monarch.co.uk">
+ <target host="monarch.co.uk" />
+ <target host="www.monarch.co.uk" />
+
+ <rule from="^http://(www\.)?monarch\.co\.uk/"
+ to="https://www.monarch.co.uk/" />
+</ruleset>
View
4 src/chrome/content/rules/Mozdev.xml
@@ -2,7 +2,9 @@
<target host="mozdev.org"/>
<target host="hg.mozdev.org"/>
<target host="www.mozdev.org"/>
+ <target host="bugzilla.mozdev.org"/>
<rule from="^http://mozdev\.org/" to="https://mozdev.org/"/>
<rule from="^http://(hg|www)\.mozdev\.org/" to="https://$1.mozdev.org/"/>
-</ruleset>
+ <rule from="^http://bugzilla\.mozdev\.org/" to="https://www.mozdev.org/bugs/" />
+</ruleset>
View
6 src/chrome/content/rules/Mozilla.xml
@@ -11,16 +11,20 @@
<target host="mozillamessaging.com" />
<target host="www.mozillamessaging.com" />
<target host="planet.mozillamessaging.com" />
+ <target host="drumbeat.org" />
+ <target host="www.drumbeat.org" />
<rule from="^http://mozilla\.org/" to="https://www.mozilla.org/"/>
<rule from="^http://(addons|bzr|communitystore|creative|developer|directory|donate|education|firefoxlive|ftp|intlstore|krakenbenchmark|lists|l10n|localize|hacks|hg|labs|mail|mpl|mxr|nightly|planet|studentreps|quality|wiki|www|www-archive)\.mozilla\.org/" to="https://$1.mozilla.org/"/>
<rule from="^http://mozilla\.com/" to="https://www.mozilla.com/"/>
- <rule from="^http://(blog|input|people|support|www)\.mozilla\.com/" to="https://$1.mozilla.com/"/>
+ <rule from="^http://(blog|crash-stats|input|people|support|www)\.mozilla\.com/" to="https://$1.mozilla.com/"/>
<rule from="^http://(www\.)?mozillalabs\.com/" to="https://mozillalabs.com/"/>
<rule from="^http://(apps|bespin|bespinplugins|gaming|heatmap|jetpack|testpilot)\.mozillalabs\.com/" to="https://$1.mozillalabs.com/"/>
<rule from="^http://mozillamessaging\.com/" to="https://mozillamessaging.com/"/>
<rule from="^http://(planet|www)\.mozillamessaging\.com/" to="https://$1.mozillamessaging.com/"/>
+
+ <rule from="^http://(www\.)?drumbeat\.org/" to="https://www.drumbeat.org/" />
</ruleset>
View
9 src/chrome/content/rules/NAB.xml
@@ -0,0 +1,9 @@
+<ruleset name="NAB">
+ <target host="nab.com.au" />
+ <target host="*.nab.com.au" />
+
+ <rule from="^http://nab\.com\.au/"
+ to="https://www.nab.com.au/" />
+ <rule from="^http://(equitylending|mobile|transact|www)\.nab\.com\.au/"
+ to="https://$1.nab.com.au/" />
+</ruleset>
View
6 src/chrome/content/rules/NanoHUB.xml
@@ -0,0 +1,6 @@
+<ruleset name="NanoHUB">
+ <target host="nanohub.org" />
+ <target host="www.nanohub.org" />
+
+ <rule from="^http://(www\.)?nanohub\.org/" to="https://nanohub.org/" />
+</ruleset>
View
1  src/chrome/content/rules/Netflix.xml
@@ -3,6 +3,7 @@
<target host="*.netflix.com" />
<exclusion pattern="^http://blog.netflix.com/" />
<exclusion pattern="^http://developer.netflix.com/" />
+ <exclusion pattern="^http://ir.netflix.com/" />
<rule from="^http://([^/:@]*)\.netflix\.com/" to="https://$1.netflix.com/"/>
</ruleset>
View
9 src/chrome/content/rules/PNC.xml
@@ -0,0 +1,9 @@
+<ruleset name="PNC">
+ <target host="pnc.com" />
+ <target host="*.pnc.com" />
+
+ <rule from="^http://pnc\.com/"
+ to="https://www.pnc.com/" />
+ <rule from="^http://(ra|www|www\.ilink|www\.recognition)\.pnc\.com/"
+ to="https://$1.pnc.com/" />
+</rulese