| 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 |