| OLD | NEW | 
|    1 /* This Source Code Form is subject to the terms of the Mozilla Public |    1 /* This Source Code Form is subject to the terms of the Mozilla Public | 
|    2  * License, v. 2.0. If a copy of the MPL was not distributed with this file, |    2  * License, v. 2.0. If a copy of the MPL was not distributed with this file, | 
|    3  * You can obtain one at http://mozilla.org/MPL/2.0/. */ |    3  * You can obtain one at http://mozilla.org/MPL/2.0/. */ | 
|    4  |    4  | 
|    5 Cu.import("resource://gre/modules/Services.jsm"); |    5 Cu.import("resource://gre/modules/Services.jsm"); | 
|    6 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); |    6 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); | 
|    7  |    7  | 
|    8 let {Prefs} = require("prefs"); |    8 let {Prefs} = require("prefs"); | 
|    9 let {WindowObserver} = require("windowObserver"); |    9 let {WindowObserver} = require("windowObserver"); | 
|   10 let {getSchemeCorrection, isKnownScheme, getDomainCorrection, getDomainReferral,
      onWhitelistEntryAdded} = require("typoRules"); |   10 let {getSchemeCorrection, isKnownScheme, getDomainCorrection, getDomainReferral,
      onWhitelistEntryAdded} = require("typoRules"); | 
|   11 let {processTypedDomain, processDomainCorrection, processFalsePositive} = requir
     e("typoCollector"); |   11 let {processTypedDomain, processDomainCorrection, processFalsePositive} = requir
     e("typoCollector"); | 
|   12 let appIntegration = require("typoAppIntegration"); |   12 let appIntegration = require("typoAppIntegration"); | 
|   13 let netError = require("typoNetError"); |   13 let netError = require("typoNetError"); | 
|   14  |   14  | 
|   15 // Attach our handlers to all browser windows |   15 let typoWindowObserver = null; | 
|   16 new WindowObserver( |   16  | 
 |   17 exports.attachWindowObserver = attachWindowObserver; | 
 |   18 function attachWindowObserver() | 
|   17 { |   19 { | 
|   18   applyToWindow: function(window) |   20   if (typoWindowObserver) | 
 |   21     return; | 
 |   22    | 
 |   23   // Attach our handlers to all browser windows | 
 |   24   typoWindowObserver = new WindowObserver( | 
|   19   { |   25   { | 
|   20     if (!appIntegration.isKnownWindow(window)) |   26     applyToWindow: function(window) | 
|   21       return; |   27     { | 
|   22      |   28       if (!appIntegration.isKnownWindow(window)) | 
|   23     netError.applyToWindow(window); |   29         return; | 
|   24     appIntegration.applyToWindow(window, correctURL); |   30        | 
|   25   }, |   31       netError.applyToWindow(window); | 
 |   32       appIntegration.applyToWindow(window, correctURL); | 
 |   33     }, | 
|   26  |   34  | 
|   27   removeFromWindow: function(window) |   35     removeFromWindow: function(window) | 
|   28   { |   36     { | 
|   29     if (!appIntegration.isKnownWindow(window)) |   37       if (!appIntegration.isKnownWindow(window)) | 
|   30       return; |   38         return; | 
|   31      |   39        | 
|   32     netError.removeFromWindow(window); |   40       netError.removeFromWindow(window); | 
|   33     appIntegration.removeFromWindow(window); |   41       appIntegration.removeFromWindow(window); | 
|   34   } |   42     } | 
|   35 }); |   43   }); | 
 |   44 } | 
 |   45 attachWindowObserver(); | 
 |   46  | 
 |   47 exports.detachWindowObserver = detachWindowObserver; | 
 |   48 function detachWindowObserver() | 
 |   49 { | 
 |   50   if (!typoWindowObserver) | 
 |   51     return; | 
 |   52    | 
 |   53   // Detach our handlers from all browser windows | 
 |   54   typoWindowObserver.shutdown(); | 
 |   55   typoWindowObserver = null; | 
 |   56 } | 
|   36  |   57  | 
|   37 function parseURL(url) |   58 function parseURL(url) | 
|   38 { |   59 { | 
|   39   if (/^\s*((?:\w+:)?\/*(?:[^\/#]*@)?)([^\/:#]*)/.test(url)) |   60   if (/^\s*((?:\w+:)?\/*(?:[^\/#]*@)?)([^\/:#]*)/.test(url)) | 
|   40     return [RegExp.$1, RegExp.$2.toLowerCase(), RegExp.rightContext]; |   61     return [RegExp.$1, RegExp.$2.toLowerCase(), RegExp.rightContext]; | 
|   41   else |   62   else | 
|   42     return [url, null, null]; |   63     return [url, null, null]; | 
|   43 } |   64 } | 
|   44  |   65  | 
|   45 function isIPAddress(domain) |   66 function isIPAddress(domain) | 
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  189     stringBundle = Services.strings.createBundle("chrome://" + require("info").a
     ddonName + "/locale/typo.properties?" + Math.random()); |  210     stringBundle = Services.strings.createBundle("chrome://" + require("info").a
     ddonName + "/locale/typo.properties?" + Math.random()); | 
|  190   let result = [ |  211   let result = [ | 
|  191     stringBundle.GetStringFromName("urlfixer.isItCorrect"), |  212     stringBundle.GetStringFromName("urlfixer.isItCorrect"), | 
|  192     stringBundle.GetStringFromName("urlfixer.yes"), |  213     stringBundle.GetStringFromName("urlfixer.yes"), | 
|  193     stringBundle.GetStringFromName("urlfixer.no") |  214     stringBundle.GetStringFromName("urlfixer.no") | 
|  194   ]; |  215   ]; | 
|  195  |  216  | 
|  196   getInfobarTexts = function() result; |  217   getInfobarTexts = function() result; | 
|  197   return getInfobarTexts(); |  218   return getInfobarTexts(); | 
|  198 } |  219 } | 
| OLD | NEW |