Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: lib/typoFixer.js

Issue 8788183: Detect and handle the case of our own typo correction extension being installed in parallel (Closed)
Patch Set: Created Nov. 15, 2012, 1:18 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« lib/main.js ('K') | « lib/main.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
16 new WindowObserver( 16 let typoWindowObserver = null;
17
18 exports.attachWindowObserver = attachWindowObserver;
19 function attachWindowObserver()
17 { 20 {
Wladimir Palant 2012/11/19 07:30:02 Please check whether the observer is already attac
18 applyToWindow: function(window) 21 // Attach our handlers to all browser windows
22 typoWindowObserver = new WindowObserver(
19 { 23 {
20 if (!appIntegration.isKnownWindow(window)) 24 applyToWindow: function(window)
21 return; 25 {
22 26 if (!appIntegration.isKnownWindow(window))
23 netError.applyToWindow(window); 27 return;
24 appIntegration.applyToWindow(window, correctURL); 28
25 }, 29 netError.applyToWindow(window);
30 appIntegration.applyToWindow(window, correctURL);
31 },
26 32
27 removeFromWindow: function(window) 33 removeFromWindow: function(window)
28 { 34 {
29 if (!appIntegration.isKnownWindow(window)) 35 if (!appIntegration.isKnownWindow(window))
30 return; 36 return;
31 37
32 netError.removeFromWindow(window); 38 netError.removeFromWindow(window);
33 appIntegration.removeFromWindow(window); 39 appIntegration.removeFromWindow(window);
34 } 40 }
35 }); 41 });
42 }
43 attachWindowObserver();
44
45 exports.detachWindowObserver = detachWindowObserver;
46 function detachWindowObserver()
47 {
Wladimir Palant 2012/11/19 07:30:02 Please check whether the observer is already detac
48 // Detach our handlers from all browser windows
49 typoWindowObserver.shutdown();
50 typoWindowObserver = null;
51 }
36 52
37 function parseURL(url) 53 function parseURL(url)
38 { 54 {
39 if (/^\s*((?:\w+:)?\/*(?:[^\/#]*@)?)([^\/:#]*)/.test(url)) 55 if (/^\s*((?:\w+:)?\/*(?:[^\/#]*@)?)([^\/:#]*)/.test(url))
40 return [RegExp.$1, RegExp.$2.toLowerCase(), RegExp.rightContext]; 56 return [RegExp.$1, RegExp.$2.toLowerCase(), RegExp.rightContext];
41 else 57 else
42 return [url, null, null]; 58 return [url, null, null];
43 } 59 }
44 60
45 function isIPAddress(domain) 61 function isIPAddress(domain)
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 stringBundle = Services.strings.createBundle("chrome://" + require("info").a ddonName + "/locale/typo.properties?" + Math.random()); 205 stringBundle = Services.strings.createBundle("chrome://" + require("info").a ddonName + "/locale/typo.properties?" + Math.random());
190 let result = [ 206 let result = [
191 stringBundle.GetStringFromName("urlfixer.isItCorrect"), 207 stringBundle.GetStringFromName("urlfixer.isItCorrect"),
192 stringBundle.GetStringFromName("urlfixer.yes"), 208 stringBundle.GetStringFromName("urlfixer.yes"),
193 stringBundle.GetStringFromName("urlfixer.no") 209 stringBundle.GetStringFromName("urlfixer.no")
194 ]; 210 ];
195 211
196 getInfobarTexts = function() result; 212 getInfobarTexts = function() result;
197 return getInfobarTexts(); 213 return getInfobarTexts();
198 } 214 }
OLDNEW
« lib/main.js ('K') | « lib/main.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld