| Index: lib/typoFixer.js | 
| =================================================================== | 
| --- a/lib/typoFixer.js | 
| +++ b/lib/typoFixer.js | 
| @@ -8,9 +8,8 @@ | 
| let {Prefs} = require("prefs"); | 
| let {WindowObserver} = require("windowObserver"); | 
| let {getSchemeCorrection, isKnownScheme, getDomainCorrection, getDomainReferral} = require("rules"); | 
| -let {processTypedDomain} = require("typedItCollector"); | 
| -let {processUserCorrection} = require("typedItCollector"); | 
| -let {processFalsePositive} = require("typedItCollector"); | 
| +let {processTypedDomain, processDomainCorrection, | 
| + processUserCorrection, processFalsePositive} = require("typedItCollector"); | 
| let appIntegration = require("appIntegration"); | 
| // Attach our handlers to all browser windows | 
| @@ -94,7 +93,6 @@ | 
| let [prefix, newHost, suffix] = parseURL(newURL); | 
| let oldHost = document.defaultView.location.hostname.toLowerCase(); | 
| - processTypedDomain(newHost); | 
| processUserCorrection(oldHost, newHost); | 
| if (newHost.indexOf("www.") == 0 && oldHost.indexOf("www.") == 0) | 
| @@ -143,7 +141,7 @@ | 
| function correctURL(window, value) | 
| { | 
| let hasCorrection = false; | 
| - | 
| + | 
| value = value.trim(); | 
| if (value.length == 0) | 
| return null; | 
| @@ -179,7 +177,7 @@ | 
| // Check manually entered corrections | 
| if (Prefs.custom_replace.hasOwnProperty(value) && Prefs.custom_replace[value]) | 
| return Prefs.custom_replace[value]; | 
| - | 
| + | 
| let [prefix, domain, suffix] = parseURL(value); | 
| if (!domain) | 
| return null; | 
| @@ -192,6 +190,7 @@ | 
| let newDomain = getDomainCorrection(domain); | 
| if (newDomain != domain) | 
| { | 
| + processDomainCorrection(domain, newDomain); | 
| domain = newDomain; | 
| hasCorrection = true; | 
| @@ -247,15 +246,14 @@ | 
| callback: function() | 
| { | 
| // No: Add to list of corrections (ignore) | 
| - if (/^www\./.test(value)) | 
| - { | 
| - value = value.substr(4); | 
| - } | 
| - Prefs.whitelist[value] = value; | 
| + let {onWhitelistEntryAdded} = require("rules"); | 
| + let entry = oldDomain.replace(/^www\./, ""); | 
| + Prefs.whitelist[entry] = true; | 
| + onWhitelistEntryAdded(entry); | 
| Prefs.whitelist = JSON.parse(JSON.stringify(Prefs.whitelist)); | 
| - require("appIntegration").loadURI(value); | 
| - processFalsePositive(oldDomain, domain); | 
| + require("appIntegration").loadURI(window, value); | 
| + processFalsePositive(domain, oldDomain); | 
| } | 
| } | 
| ]; | 
| @@ -263,10 +261,6 @@ | 
| require("survey").incrementCorrectionsCounter(); | 
| - // Consider the correction a second typed domain | 
| - if (!isIPAddress(domain)) | 
| - processTypedDomain(domain); | 
| - | 
| return prefix + domain + suffix; | 
| } |