Index: chrome/content/ui/sendReport.js |
=================================================================== |
--- a/chrome/content/ui/sendReport.js |
+++ b/chrome/content/ui/sendReport.js |
@@ -22,17 +22,17 @@ |
let {Services} = Cu.import("resource://gre/modules/Services.jsm", {}); |
let {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm", {}); |
const MILLISECONDS_IN_SECOND = 1000; |
const SECONDS_IN_MINUTE = 60; |
const SECONDS_IN_HOUR = 60 * SECONDS_IN_MINUTE; |
const SECONDS_IN_DAY = 24 * SECONDS_IN_HOUR; |
-let contentWindow = window.arguments[0]; |
+let outerWindowID = window.arguments[0]; |
let windowURI = window.arguments[1]; |
if (typeof windowURI == "string") |
windowURI = Services.newURI(windowURI, null, null); |
let browser = window.arguments[2]; |
let isPrivate = false; |
let reportData = new DOMParser().parseFromString("<report></report>", "text/xml"); |
@@ -106,17 +106,17 @@ function serializeReportData() |
// |
// Data collectors |
// |
var reportsListDataSource = |
{ |
list: [], |
- collectData: function(wnd, windowURI, browser, callback) |
+ collectData: function(outerWindowID, windowURI, browser, callback) |
{ |
let data = Prefs.recentReports; |
if (data && "length" in data) |
{ |
for (let i = 0; i < data.length; i++) |
{ |
let entry = data[i]; |
if (typeof entry.reportURL == "string" && entry.reportURL && |
@@ -189,21 +189,18 @@ var reportsListDataSource = |
var requestsDataSource = |
{ |
requests: reportElement("requests"), |
origRequests: [], |
requestNotifier: null, |
callback: null, |
nodeByKey: Object.create(null), |
- collectData: function(wnd, windowURI, browser, callback) |
+ collectData: function(outerWindowID, windowURI, browser, callback) |
{ |
- let outerWindowID = wnd.QueryInterface(Ci.nsIInterfaceRequestor) |
- .getInterface(Ci.nsIDOMWindowUtils) |
- .outerWindowID; |
this.callback = callback; |
this.requestNotifier = new RequestNotifier(outerWindowID, this.onRequestFound, this); |
}, |
onRequestFound: function(entry, scanComplete) |
{ |
if (entry) |
{ |
@@ -243,21 +240,18 @@ var requestsDataSource = |
} |
} |
}; |
var filtersDataSource = |
{ |
origFilters: [], |
- collectData: function(wnd, windowURI, browser, callback) |
+ collectData: function(outerWindowID, windowURI, browser, callback) |
{ |
- let outerWindowID = wnd.QueryInterface(Ci.nsIInterfaceRequestor) |
- .getInterface(Ci.nsIDOMWindowUtils) |
- .outerWindowID; |
RequestNotifier.getWindowStatistics(outerWindowID, (wndStats) => |
{ |
if (wndStats) |
{ |
let filters = reportElement("filters"); |
for (let f in wndStats.filters) |
{ |
let filter = Filter.fromText(f) |
@@ -281,17 +275,17 @@ var subscriptionsDataSource = |
{ |
if (s.disabled || !(s instanceof RegularSubscription)) |
return false; |
if (s instanceof DownloadableSubscription && !/^(http|https|ftp):/i.test(s.url)) |
return false; |
return true; |
}, |
- collectData: function(wnd, windowURI, browser, callback) |
+ collectData: function(outerWindowID, windowURI, browser, callback) |
{ |
let subscriptions = reportElement("subscriptions"); |
let now = Math.round(Date.now() / 1000); |
for (let i = 0; i < FilterStorage.subscriptions.length; i++) |
{ |
let subscription = FilterStorage.subscriptions[i]; |
if (!this.subscriptionFilter(subscription)) |
continue; |
@@ -316,21 +310,18 @@ var subscriptionsDataSource = |
} |
} |
callback(); |
} |
}; |
var remoteDataSource = |
{ |
- collectData: function(wnd, windowURI, browser, callback) |
+ collectData: function(outerWindowID, windowURI, browser, callback) |
{ |
- let outerWindowID = wnd.QueryInterface(Ci.nsIInterfaceRequestor) |
- .getInterface(Ci.nsIDOMWindowUtils) |
- .outerWindowID; |
let dataCollector = require("dataCollector"); |
let screenshotWidth = screenshotDataSource.getWidth(); |
dataCollector.collectData(outerWindowID, screenshotWidth, data => { |
screenshotDataSource.setData(data && data.screenshot); |
framesDataSource.setData(windowURI, data && data.opener, data && data.referrer, data && data.frames); |
if (data && data.isPrivate) |
isPrivate = true; |
@@ -583,17 +574,17 @@ var framesDataSource = |
}); |
this.addFrames(frame.frames, frameXML); |
} |
} |
}; |
var errorsDataSource = |
{ |
- collectData: function(wnd, windowURI, browser, callback) |
+ collectData: function(outerWindowID, windowURI, browser, callback) |
{ |
let {addonID} = require("info"); |
addonID = addonID.replace(/[\{\}]/g, ""); |
// See https://bugzilla.mozilla.org/show_bug.cgi?id=664695 - starting with |
// Gecko 19 this function returns the result, before that it wrote to a |
// parameter. |
let outparam = {}; |
@@ -658,17 +649,17 @@ var errorsDataSource = |
callback(); |
} |
}; |
var extensionsDataSource = |
{ |
data: reportData.createElement("extensions"), |
- collectData: function(wnd, windowURI, browser, callback) |
+ collectData: function(outerWindowID, windowURI, browser, callback) |
{ |
try |
{ |
let AddonManager = Cu.import("resource://gre/modules/AddonManager.jsm", null).AddonManager; |
AddonManager.getAddonsByTypes(["extension", "plugin"], function(items) |
{ |
for (let i = 0; i < items.length; i++) |
{ |
@@ -711,17 +702,17 @@ var subscriptionUpdateDataSource = |
subscriptionFilter: function(s) |
{ |
if (s instanceof DownloadableSubscription) |
return subscriptionsDataSource.subscriptionFilter(s); |
else |
return false; |
}, |
- collectData: function(wnd, windowURI, browser, callback) |
+ collectData: function(outerWindowID, windowURI, browser, callback) |
{ |
this.browser = browser; |
let now = Date.now() / MILLISECONDS_IN_SECOND; |
let outdatedThreshold = now - 14 * SECONDS_IN_DAY; |
let needUpdateThreshold = now - 1 * SECONDS_IN_HOUR; |
this.outdated = []; |
this.needUpdate = []; |
@@ -877,17 +868,17 @@ var issuesDataSource = |
s.url != Prefs.subscriptions_antiadblockurl) |
{ |
return subscriptionsDataSource.subscriptionFilter(s); |
} |
else |
return false; |
}, |
- collectData: function(wnd, windowURI, browser, callback) |
+ collectData: function(outerWindowID, windowURI, browser, callback) |
{ |
this.browser = browser; |
this.whitelistFilter = Policy.isWhitelisted(windowURI.spec); |
if (!this.whitelistFilter && this.isEnabled) |
{ |
// Find disabled filters in active subscriptions matching any of the requests |
let disabledMatcher = new CombinedMatcher(); |
@@ -1235,17 +1226,17 @@ function initDataCollectorPage() |
progressMeter.mode = "determined"; |
progressMeter.value = progress; |
} |
// Continue with the next data source, asynchronously to allow progress meter to update |
let dataSource = dataCollectors.shift(); |
Utils.runAsync(function() |
{ |
- dataSource.collectData(contentWindow, windowURI, browser, initNextDataSource); |
+ dataSource.collectData(outerWindowID, windowURI, browser, initNextDataSource); |
}); |
}; |
initNextDataSource(); |
} |
function initTypeSelectorPage() |
{ |