зеркало из https://github.com/mozilla/gecko-dev.git
Bug 581335 - Hook up crash reporting for content processes [r=vingtetun]
This commit is contained in:
Родитель
c2b446e153
Коммит
b3cb7e27c1
|
@ -2080,8 +2080,19 @@ var SessionHistoryObserver = {
|
||||||
};
|
};
|
||||||
|
|
||||||
var ContentCrashObserver = {
|
var ContentCrashObserver = {
|
||||||
|
get CrashSubmit() {
|
||||||
|
delete this.CrashSubmit;
|
||||||
|
Cu.import("resource://gre/modules/CrashSubmit.jsm", this);
|
||||||
|
return this.CrashSubmit;
|
||||||
|
},
|
||||||
|
|
||||||
observe: function cco_observe(aSubject, aTopic, aData) {
|
observe: function cco_observe(aSubject, aTopic, aData) {
|
||||||
if (aTopic != "ipc:content-shutdown" && aData != "abnormal")
|
if (aTopic != "ipc:content-shutdown") {
|
||||||
|
Cu.reportError("ContentCrashObserver unexpected topic: " + aTopic);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!aSubject.QueryInterface(Ci.nsIPropertyBag2).hasKey("abnormal"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Spin through the open tabs and resurrect the out-of-process tabs. Resurrection
|
// Spin through the open tabs and resurrect the out-of-process tabs. Resurrection
|
||||||
|
@ -2102,8 +2113,12 @@ var ContentCrashObserver = {
|
||||||
(Ci.nsIPrompt.BUTTON_TITLE_IS_STRING * Ci.nsIPrompt.BUTTON_POS_0) +
|
(Ci.nsIPrompt.BUTTON_TITLE_IS_STRING * Ci.nsIPrompt.BUTTON_POS_0) +
|
||||||
(Ci.nsIPrompt.BUTTON_TITLE_IS_STRING * Ci.nsIPrompt.BUTTON_POS_1);
|
(Ci.nsIPrompt.BUTTON_TITLE_IS_STRING * Ci.nsIPrompt.BUTTON_POS_1);
|
||||||
|
|
||||||
this._waitingToClose = true;
|
// Only show the submit checkbox if we have a crash report we can submit
|
||||||
let reload = Services.prompt.confirmEx(window, title, message, buttons, closeText, reloadText, null, submitText, { value: true });
|
if (!aSubject.hasKey("dumpID"))
|
||||||
|
submitText = null;
|
||||||
|
|
||||||
|
let submit = { value: true };
|
||||||
|
let reload = Services.prompt.confirmEx(window, title, message, buttons, closeText, reloadText, null, submitText, submit);
|
||||||
if (reload) {
|
if (reload) {
|
||||||
// Fire a TabSelect event to kick start the restore process
|
// Fire a TabSelect event to kick start the restore process
|
||||||
let event = document.createEvent("Events");
|
let event = document.createEvent("Events");
|
||||||
|
@ -2120,6 +2135,12 @@ var ContentCrashObserver = {
|
||||||
// system will pick it up.
|
// system will pick it up.
|
||||||
Browser.closeTab(Browser.selectedTab);
|
Browser.closeTab(Browser.selectedTab);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Submit the report, if we have one and the user wants to submit it
|
||||||
|
if (submit.value && aSubject.hasKey("dumpID")) {
|
||||||
|
let dumpID = aSubject.getProperty("dumpID");
|
||||||
|
this.CrashSubmit.submit(dumpID, Elements.stack, null, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче