OLD | NEW |
1 /* | 1 /* |
2 * This file is part of the Adblock Plus, | 2 * This file is part of the Adblock Plus, |
3 * Copyright (C) 2006-2012 Eyeo GmbH | 3 * Copyright (C) 2006-2012 Eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 * GNU General Public License for more details. | 12 * GNU General Public License for more details. |
13 * | 13 * |
14 * You should have received a copy of the GNU General Public License | 14 * You should have received a copy of the GNU General Public License |
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
16 */ | 16 */ |
17 | 17 |
18 // | 18 // |
19 // Report data template, more data will be added during data collection | 19 // Report data template, more data will be added during data collection |
20 // | 20 // |
21 | 21 |
22 Cu.import("resource://gre/modules/Services.jsm"); | 22 Cu.import("resource://gre/modules/Services.jsm"); |
23 Cu.import("resource://gre/modules/FileUtils.jsm"); | 23 Cu.import("resource://gre/modules/FileUtils.jsm"); |
24 | 24 |
25 const MILLISECONDS_IN_SECOND = 1000; | 25 const MILLISECONDS_IN_SECOND = 1000; |
26 const SECONDS_IN_MINUTE = 60; | 26 const SECONDS_IN_MINUTE = 60; |
27 const SECONDS_IN_HOUR = 60 * SECONDS_IN_MINUTE; | 27 const SECONDS_IN_HOUR = 60 * SECONDS_IN_MINUTE; |
28 const SECONDS_IN_DAY = 24 * SECONDS_IN_HOUR; | 28 const SECONDS_IN_DAY = 24 * SECONDS_IN_HOUR; |
29 | 29 |
| 30 let contentWindow = window.arguments[0]; |
| 31 let windowURI = (window.arguments[1] instanceof Ci.nsIURI ? window.arguments[1]
: null); |
| 32 |
30 let reportData = new DOMParser().parseFromString("<report></report>", "text/xml"
); | 33 let reportData = new DOMParser().parseFromString("<report></report>", "text/xml"
); |
31 | 34 |
32 // Some helper functions to work with the report data | 35 // Some helper functions to work with the report data |
33 function reportElement(tag) | 36 function reportElement(tag) |
34 { | 37 { |
35 for (let child = reportData.documentElement.firstChild; child; child = child.n
extSibling) | 38 for (let child = reportData.documentElement.firstChild; child; child = child.n
extSibling) |
36 if (child.nodeType == Node.ELEMENT_NODE && child.tagName == tag) | 39 if (child.nodeType == Node.ELEMENT_NODE && child.tagName == tag) |
37 return child; | 40 return child; |
38 let element = reportData.createElement(tag); | 41 let element = reportData.createElement(tag); |
39 reportData.documentElement.appendChild(element); | 42 reportData.documentElement.appendChild(element); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 { | 87 { |
85 element.setAttribute("name", "Gecko"); | 88 element.setAttribute("name", "Gecko"); |
86 element.setAttribute("version", Services.appinfo.platformVersion); | 89 element.setAttribute("version", Services.appinfo.platformVersion); |
87 element.setAttribute("build", Services.appinfo.platformBuildID); | 90 element.setAttribute("build", Services.appinfo.platformBuildID); |
88 }; | 91 }; |
89 let (element = reportElement("options")) | 92 let (element = reportElement("options")) |
90 { | 93 { |
91 appendElement(element, "option", {id: "enabled"}, Prefs.enabled); | 94 appendElement(element, "option", {id: "enabled"}, Prefs.enabled); |
92 appendElement(element, "option", {id: "objecttabs"}, Prefs.frameobjects); | 95 appendElement(element, "option", {id: "objecttabs"}, Prefs.frameobjects); |
93 appendElement(element, "option", {id: "collapse"}, !Prefs.fastcollapse); | 96 appendElement(element, "option", {id: "collapse"}, !Prefs.fastcollapse); |
94 appendElement(element, "option", {id: "privateBrowsing"}, PrivateBrowsing.enab
led); | 97 appendElement(element, "option", {id: "privateBrowsing"}, PrivateBrowsing.enab
ledForWindow(contentWindow) || PrivateBrowsing.enabled); |
95 appendElement(element, "option", {id: "subscriptionsAutoUpdate"}, Prefs.subscr
iptions_autoupdate); | 98 appendElement(element, "option", {id: "subscriptionsAutoUpdate"}, Prefs.subscr
iptions_autoupdate); |
96 appendElement(element, "option", {id: "javascript"}, Services.prefs.getBoolPre
f("javascript.enabled")); | 99 appendElement(element, "option", {id: "javascript"}, Services.prefs.getBoolPre
f("javascript.enabled")); |
97 appendElement(element, "option", {id: "cookieBehavior"}, Services.prefs.getInt
Pref("network.cookie.cookieBehavior")); | 100 appendElement(element, "option", {id: "cookieBehavior"}, Services.prefs.getInt
Pref("network.cookie.cookieBehavior")); |
98 }; | 101 }; |
99 | 102 |
100 // | 103 // |
101 // Data collectors | 104 // Data collectors |
102 // | 105 // |
103 | 106 |
104 let reportsListDataSource = | 107 let reportsListDataSource = |
(...skipping 1109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1214 nextButton.setAttribute("accesskey", nextButton.getAttribute("_origAccessK
ey")); | 1217 nextButton.setAttribute("accesskey", nextButton.getAttribute("_origAccessK
ey")); |
1215 nextButton.removeAttribute("_origAccessKey"); | 1218 nextButton.removeAttribute("_origAccessKey"); |
1216 } | 1219 } |
1217 } | 1220 } |
1218 } | 1221 } |
1219 | 1222 |
1220 function initDataCollectorPage() | 1223 function initDataCollectorPage() |
1221 { | 1224 { |
1222 document.documentElement.canAdvance = false; | 1225 document.documentElement.canAdvance = false; |
1223 | 1226 |
1224 let contentWindow = window.arguments[0]; | |
1225 let windowURI = (window.arguments[1] instanceof Ci.nsIURI ? window.arguments[1
] : null); | |
1226 let totalSteps = dataCollectors.length; | 1227 let totalSteps = dataCollectors.length; |
1227 let initNextDataSource = function() | 1228 let initNextDataSource = function() |
1228 { | 1229 { |
1229 if (!dataCollectors.length) | 1230 if (!dataCollectors.length) |
1230 { | 1231 { |
1231 // We are done, continue to next page | 1232 // We are done, continue to next page |
1232 document.documentElement.canAdvance = true; | 1233 document.documentElement.canAdvance = true; |
1233 document.documentElement.advance(); | 1234 document.documentElement.advance(); |
1234 return; | 1235 return; |
1235 } | 1236 } |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1326 document.documentElement.canAdvance = true; | 1327 document.documentElement.canAdvance = true; |
1327 | 1328 |
1328 E("progressBar").activeItem = E("screenshotHeader"); | 1329 E("progressBar").activeItem = E("screenshotHeader"); |
1329 } | 1330 } |
1330 | 1331 |
1331 function initCommentPage() | 1332 function initCommentPage() |
1332 { | 1333 { |
1333 E("progressBar").activeItem = E("commentPageHeader"); | 1334 E("progressBar").activeItem = E("commentPageHeader"); |
1334 | 1335 |
1335 updateEmail(); | 1336 updateEmail(); |
1336 | 1337 |
1337 screenshotDataSource.exportData(); | 1338 screenshotDataSource.exportData(); |
1338 updateDataField(); | 1339 updateDataField(); |
1339 } | 1340 } |
1340 | 1341 |
1341 function showDataField() | 1342 function showDataField() |
1342 { | 1343 { |
1343 E('dataDeck').selectedIndex = 1; | 1344 E('dataDeck').selectedIndex = 1; |
1344 updateDataField(); | 1345 updateDataField(); |
1345 E('data').focus(); | 1346 E('data').focus(); |
1346 } | 1347 } |
(...skipping 29 matching lines...) Expand all Loading... |
1376 | 1377 |
1377 let value = E("comment").value; | 1378 let value = E("comment").value; |
1378 appendElement(reportData.documentElement, "comment", null, value.substr(0, 100
0)); | 1379 appendElement(reportData.documentElement, "comment", null, value.substr(0, 100
0)); |
1379 E("commentLengthWarning").setAttribute("visible", value.length > 1000); | 1380 E("commentLengthWarning").setAttribute("visible", value.length > 1000); |
1380 updateDataField(); | 1381 updateDataField(); |
1381 } | 1382 } |
1382 | 1383 |
1383 function updateEmail() | 1384 function updateEmail() |
1384 { | 1385 { |
1385 removeReportElement("email"); | 1386 removeReportElement("email"); |
1386 | 1387 |
1387 let anonymous = E("anonymousCheckbox").checked; | 1388 let anonymous = E("anonymousCheckbox").checked; |
1388 | 1389 |
1389 let value = E("email").value; | 1390 let value = E("email").value; |
1390 | 1391 |
1391 // required for persist to work on textbox, see: https://bugzilla.mozilla.org/
show_bug.cgi?id=111486 | 1392 // required for persist to work on textbox, see: https://bugzilla.mozilla.org/
show_bug.cgi?id=111486 |
1392 E("email").setAttribute("value", value); | 1393 E("email").setAttribute("value", value); |
1393 | 1394 |
1394 E("email").disabled = anonymous; | 1395 E("email").disabled = anonymous; |
1395 E("emailLabel").disabled = anonymous; | 1396 E("emailLabel").disabled = anonymous; |
1396 E("anonymityWarning").setAttribute("visible", anonymous); | 1397 E("anonymityWarning").setAttribute("visible", anonymous); |
1397 | 1398 |
1398 if (!anonymous) | 1399 if (!anonymous) |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1522 | 1523 |
1523 if (success) | 1524 if (success) |
1524 { | 1525 { |
1525 try | 1526 try |
1526 { | 1527 { |
1527 let link = request.responseXML.getElementById("link").getAttribute("href")
; | 1528 let link = request.responseXML.getElementById("link").getAttribute("href")
; |
1528 let button = E("copyLink"); | 1529 let button = E("copyLink"); |
1529 button.setAttribute("url", link); | 1530 button.setAttribute("url", link); |
1530 button.removeAttribute("disabled"); | 1531 button.removeAttribute("disabled"); |
1531 | 1532 |
1532 if (!PrivateBrowsing.enabled) | 1533 if (!PrivateBrowsing.enabledForWindow(contentWindow) && !PrivateBrowsing.e
nabled) |
1533 reportsListDataSource.addReport(framesDataSource.site, link); | 1534 reportsListDataSource.addReport(framesDataSource.site, link); |
1534 } catch (e) {} | 1535 } catch (e) {} |
1535 E("copyLinkBox").hidden = false; | 1536 E("copyLinkBox").hidden = false; |
1536 | 1537 |
1537 document.documentElement.getButton("finish").disabled = false; | 1538 document.documentElement.getButton("finish").disabled = false; |
1538 document.documentElement.getButton("cancel").disabled = true; | 1539 document.documentElement.getButton("cancel").disabled = true; |
1539 E("progressBar").activeItemComplete = true; | 1540 E("progressBar").activeItemComplete = true; |
1540 } | 1541 } |
1541 } | 1542 } |
1542 | 1543 |
(...skipping 16 matching lines...) Expand all Loading... |
1559 | 1560 |
1560 function censorURL(url) | 1561 function censorURL(url) |
1561 { | 1562 { |
1562 return url.replace(/([?;&\/#][^?;&\/#]+?=)[^?;&\/#]+/g, "$1*"); | 1563 return url.replace(/([?;&\/#][^?;&\/#]+?=)[^?;&\/#]+/g, "$1*"); |
1563 } | 1564 } |
1564 | 1565 |
1565 function encodeHTML(str) | 1566 function encodeHTML(str) |
1566 { | 1567 { |
1567 return str.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").
replace(/"/g, """); | 1568 return str.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").
replace(/"/g, """); |
1568 } | 1569 } |
OLD | NEW |