Bug 759502. Include URL of active window in URL field of webapp runtime crash reporter. r=gavin

This commit is contained in:
Felipe Gomes 2012-07-19 18:02:48 -07:00
parent a3673c358e
commit ffeebb6bf4

View File

@ -13,6 +13,12 @@ Cu.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyGetter(this, "gAppBrowser",
function() document.getElementById("content"));
#ifdef MOZ_CRASHREPORTER
XPCOMUtils.defineLazyServiceGetter(this, "gCrashReporter",
"@mozilla.org/toolkit/crash-reporter;1",
"nsICrashReporter");
#endif
let progressListener = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener,
Ci.nsISupportsWeakReference]),
@ -28,6 +34,14 @@ let progressListener = {
title = origin + " - " + title;
}
document.documentElement.setAttribute("title", title);
},
onStateChange: function onStateChange(aProgress, aRequest, aFlags, aStatus) {
if (aRequest instanceof Ci.nsIChannel &&
aFlags & Ci.nsIWebProgressListener.STATE_START &&
aFlags & Ci.nsIWebProgressListener.STATE_IS_DOCUMENT) {
updateCrashReportURL(aRequest.URI);
}
}
};
@ -65,7 +79,8 @@ function onLoad() {
}
gAppBrowser.webProgress.
addProgressListener(progressListener, Ci.nsIWebProgress.NOTIFY_LOCATION);
addProgressListener(progressListener, Ci.nsIWebProgress.NOTIFY_LOCATION |
Ci.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
initWindow(!!cmdLineArgs);
}
@ -177,3 +192,19 @@ function updateEditUIVisibility() {
}
#endif
}
function updateCrashReportURL(aURI) {
#ifdef MOZ_CRASHREPORTER
if (!gCrashReporter.enabled)
return;
let uri = aURI.clone();
if (uri.userPass != "") {
try {
uri.userPass = "";
} catch (e) {}
}
gCrashReporter.annotateCrashReport("URL", uri.spec);
#endif
}