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/FileUtils.jsm"); | 6 Cu.import("resource://gre/modules/FileUtils.jsm"); |
7 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); | 7 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); |
8 | 8 |
9 // Import prefs from old branch if there are any | 9 // Import prefs from old branch if there are any |
10 let {Prefs} = require("prefs"); | 10 let {Prefs} = require("prefs"); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 { | 69 { |
70 // window.Browser.addTab(url, true); | 70 // window.Browser.addTab(url, true); |
71 // No firstrun on Fennec. | 71 // No firstrun on Fennec. |
72 } | 72 } |
73 else if ("gBrowser" in window) | 73 else if ("gBrowser" in window) |
74 window.gBrowser.loadOneTab(url, {inBackground: false}); | 74 window.gBrowser.loadOneTab(url, {inBackground: false}); |
75 } | 75 } |
76 | 76 |
77 require("typedItCollector").onBrowserInitialized(window); | 77 require("typedItCollector").onBrowserInitialized(window); |
78 } | 78 } |
79 | |
80 var URLFIXER = { | |
81 load : function () { | |
82 document.addEventListener("URLFixerNetErrorCorrection", URLFIXER.netErrorCor
rection, false, true); | |
83 }, | |
84 | |
85 netErrorCorrection : function (evt) { | |
86 var button = evt.target; | |
87 var oldUrl = button.getAttribute("old"); | |
88 var newUrl = button.getAttribute("new"); | |
89 | |
90 if (newUrl.indexOf("http://") == -1 && newUrl.indexOf("https://") == -1) { | |
91 newUrl = oldUrl.split("//")[0] + "//" + newUrl; | |
92 } | |
93 | |
94 var rv = newUrl; | |
95 | |
96 var oldParts = oldUrl.split("://"); | |
97 var newParts = newUrl.split("://"); | |
98 | |
99 // Discard the protocol if they're the same. | |
100 if (oldParts[0] == newParts[0]) { | |
101 oldParts.shift(); | |
102 newParts.shift(); | |
103 oldUrl = "//" + oldParts.join("//"); | |
104 newUrl = "//" + newParts.join("//"); | |
105 } | |
106 | |
107 // Ignore www subdomain if both of them have it. | |
108 if (oldUrl.indexOf("//www.") != -1 && (oldUrl.indexOf("//www.") === newUrl.i
ndexOf("//www."))) { | |
109 oldUrl = oldUrl.split("//www.")[1]; | |
110 newUrl = newUrl.split("//www.")[1]; | |
111 } | |
112 | |
113 // Ignore trailing slashes | |
114 if (oldUrl.charAt(oldUrl.length - 1) == "/" && newUrl.charAt(newUrl.length -
1) == "/") { | |
115 oldUrl = oldUrl.substr(0, oldUrl.length - 1); | |
116 newUrl = newUrl.substr(0, newUrl.length - 1); | |
117 } | |
118 | |
119 var corrections = URLFIXER.getJSONPref("custom_replace", {}); | |
120 corrections[oldUrl] = newUrl; | |
121 URLFIXER.setJSONPref("custom_replace", corrections); | |
122 | |
123 content.location.href = rv; | |
124 } | |
125 }; | |
126 | |
OLD | NEW |