| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * This file is part of the URL Fixer, | 2  * This file is part of the URL Fixer, | 
| 3  * Copyright (C) 2006-2016 Eyeo GmbH | 3  * Copyright (C) 2006-2016 Eyeo GmbH | 
| 4  * | 4  * | 
| 5  * URL Fixer is free software: you can redistribute it and/or modify | 5  * URL Fixer is free software: you can redistribute it and/or modify | 
| 6  * it under the terms of the GNU General Public License version 3 as | 6  * it under the terms of the GNU General Public License version 3 as | 
| 7  * published by the Free Software Foundation. | 7  * published by the Free Software Foundation. | 
| 8  * | 8  * | 
| 9  * URL Fixer is distributed in the hope that it will be useful, | 9  * URL Fixer is distributed in the hope that it will be useful, | 
| 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| 12  * GNU General Public License for more details. | 12  * GNU General Public License for more details. | 
| 13  * | 13  * | 
| 14  * You should have received a copy of the GNU General Public License | 14  * You should have received a copy of the GNU General Public License | 
| 15  * along with URL Fixer.  If not, see <http://www.gnu.org/licenses/>. | 15  * along with URL Fixer.  If not, see <http://www.gnu.org/licenses/>. | 
| 16  */ | 16  */ | 
| 17 | 17 | 
| 18 Cu.import("resource://gre/modules/Services.jsm"); | 18 Cu.import("resource://gre/modules/Services.jsm"); | 
| 19 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); | 19 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); | 
| 20 | 20 | 
| 21 let {Prefs} = require("prefs"); | 21 let {Prefs} = require("prefs"); | 
| 22 let {WindowObserver} = require("windowObserver"); | 22 let {WindowObserver} = require("windowObserver"); | 
| 23 let {getSchemeCorrection, isKnownScheme, getDomainCorrection, getDomainReferral,
      onWhitelistEntryAdded} = require("typoRules"); | 23 let {getSchemeCorrection, isKnownScheme, getDomainCorrection, getDomainReferral,
      onWhitelistEntryAdded} = require("typoRules"); | 
| 24 let {processTypedDomain, processDomainCorrection, processFalsePositive} = requir
     e("typoCollector"); |  | 
| 25 let appIntegration = require("typoAppIntegration"); | 24 let appIntegration = require("typoAppIntegration"); | 
| 26 let netError = require("typoNetError"); | 25 let netError = require("typoNetError"); | 
| 27 | 26 | 
| 28 let typoWindowObserver = null; | 27 let typoWindowObserver = null; | 
| 29 | 28 | 
| 30 exports.attachWindowObserver = attachWindowObserver; | 29 exports.attachWindowObserver = attachWindowObserver; | 
| 31 function attachWindowObserver() | 30 function attachWindowObserver() | 
| 32 { | 31 { | 
| 33   if (typoWindowObserver) | 32   if (typoWindowObserver) | 
| 34     return; | 33     return; | 
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 125   let [prefix, domain, suffix] = parseURL(value); | 124   let [prefix, domain, suffix] = parseURL(value); | 
| 126   if (!domain) | 125   if (!domain) | 
| 127     return null; | 126     return null; | 
| 128 | 127 | 
| 129   let oldDomain = domain; | 128   let oldDomain = domain; | 
| 130   if (!isIPAddress(domain)) | 129   if (!isIPAddress(domain)) | 
| 131   { | 130   { | 
| 132     // Remove . at end of domain for fully qualified domain names | 131     // Remove . at end of domain for fully qualified domain names | 
| 133     domain = domain.replace(/\.$/, ""); | 132     domain = domain.replace(/\.$/, ""); | 
| 134 | 133 | 
| 135     processTypedDomain(domain); |  | 
| 136 |  | 
| 137     let newDomain = getDomainCorrection(domain); | 134     let newDomain = getDomainCorrection(domain); | 
| 138     if (newDomain != domain) | 135     if (newDomain != domain) | 
| 139     { | 136     { | 
| 140       processDomainCorrection(domain, newDomain); |  | 
| 141       domain = newDomain; | 137       domain = newDomain; | 
| 142       hasCorrection = true; | 138       hasCorrection = true; | 
| 143 | 139 | 
| 144       let referral = getDomainReferral(domain.replace(/^www\./, "")); | 140       let referral = getDomainReferral(domain.replace(/^www\./, "")); | 
| 145       if (referral) | 141       if (referral) | 
| 146       { | 142       { | 
| 147         // We need to add a query string parameter when sending users to this do
     main | 143         // We need to add a query string parameter when sending users to this do
     main | 
| 148         let anchorIndex = suffix.indexOf("#"); | 144         let anchorIndex = suffix.indexOf("#"); | 
| 149         let anchor = ""; | 145         let anchor = ""; | 
| 150         if (anchorIndex >= 0) | 146         if (anchorIndex >= 0) | 
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 195       accessKey:  "", | 191       accessKey:  "", | 
| 196       callback:   function() | 192       callback:   function() | 
| 197       { | 193       { | 
| 198         // No: Add to list of corrections (ignore) | 194         // No: Add to list of corrections (ignore) | 
| 199         let entry = oldDomain.replace(/^www\./, ""); | 195         let entry = oldDomain.replace(/^www\./, ""); | 
| 200         Prefs.whitelist[entry] = true; | 196         Prefs.whitelist[entry] = true; | 
| 201         onWhitelistEntryAdded(entry); | 197         onWhitelistEntryAdded(entry); | 
| 202         Prefs.whitelist = JSON.parse(JSON.stringify(Prefs.whitelist)); | 198         Prefs.whitelist = JSON.parse(JSON.stringify(Prefs.whitelist)); | 
| 203 | 199 | 
| 204         appIntegration.loadURI(window, value); | 200         appIntegration.loadURI(window, value); | 
| 205         processFalsePositive(domain, oldDomain); |  | 
| 206       } | 201       } | 
| 207     } | 202     } | 
| 208   ]; | 203   ]; | 
| 209   // We need to have persistence being set to 1 due to redirect which happens af
     terwards | 204   // We need to have persistence being set to 1 due to redirect which happens af
     terwards | 
| 210   appIntegration.openInfobar(window, require("info").addonName + "-infobar-askaf
     ter", message, buttons, 1); | 205   appIntegration.openInfobar(window, require("info").addonName + "-infobar-askaf
     ter", message, buttons, 1); | 
| 211 | 206 | 
| 212   require("typoSurvey").incrementCorrectionsCounter(); | 207   require("typoSurvey").incrementCorrectionsCounter(); | 
| 213 | 208 | 
| 214   return prefix + domain + suffix; | 209   return prefix + domain + suffix; | 
| 215 } | 210 } | 
| 216 | 211 | 
| 217 let stringBundle = null; | 212 let stringBundle = null; | 
| 218 | 213 | 
| 219 function getInfobarTexts() | 214 function getInfobarTexts() | 
| 220 { | 215 { | 
| 221   // Randomize URI to work around bug 719376 | 216   // Randomize URI to work around bug 719376 | 
| 222   if (!stringBundle) | 217   if (!stringBundle) | 
| 223     stringBundle = Services.strings.createBundle("chrome://" + require("info").a
     ddonName + "/locale/typo.properties?" + Math.random()); | 218     stringBundle = Services.strings.createBundle("chrome://" + require("info").a
     ddonName + "/locale/typo.properties?" + Math.random()); | 
| 224   let result = [ | 219   let result = [ | 
| 225     stringBundle.GetStringFromName("urlfixer.isItCorrect"), | 220     stringBundle.GetStringFromName("urlfixer.isItCorrect"), | 
| 226     stringBundle.GetStringFromName("urlfixer.yes"), | 221     stringBundle.GetStringFromName("urlfixer.yes"), | 
| 227     stringBundle.GetStringFromName("urlfixer.no") | 222     stringBundle.GetStringFromName("urlfixer.no") | 
| 228   ]; | 223   ]; | 
| 229 | 224 | 
| 230   getInfobarTexts = () => result; | 225   getInfobarTexts = () => result; | 
| 231   return getInfobarTexts(); | 226   return getInfobarTexts(); | 
| 232 } | 227 } | 
| OLD | NEW | 
|---|