fune/browser/base/content/aboutTabCrashed.js
Mike Conley 924f4b21d3 Bug 963358 - [e10s] Crashed tab page's Try Again button doesn't always work. r=billm.
Instead of attaching / listening for click events in BrowserOnClick for the
Try Again button, we instead bubble up an event when the Try Again button
is clicked. That event has a listener set up for it that is established during
delayedStartup, so it has a very high probability of being set. This bypasses
some error cases where we hadn't successfully attached BrowserOnClick in the past.

--HG--
extra : rebase_source : 19c7d7157a8bd24a1a39bda4072d7c01cd398756
2014-11-23 01:12:19 -05:00

33 lines
1.1 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
function parseQueryString() {
let url = document.documentURI;
let queryString = url.replace(/^about:tabcrashed?e=tabcrashed/, "");
let titleMatch = queryString.match(/d=([^&]*)/);
return titleMatch && titleMatch[1] ? decodeURIComponent(titleMatch[1]) : "";
}
document.title = parseQueryString();
addEventListener("DOMContentLoaded", () => {
let tryAgain = document.getElementById("tryAgain");
let sendCrashReport = document.getElementById("checkSendReport");
tryAgain.addEventListener("click", () => {
let event = new CustomEvent("AboutTabCrashedTryAgain", {
bubbles: true,
detail: {
sendCrashReport: sendCrashReport.checked,
},
});
document.dispatchEvent(event);
});
});
// Error pages are loaded as LOAD_BACKGROUND, so they don't get load events.
var event = new CustomEvent("AboutTabCrashedLoad", {bubbles:true});
document.dispatchEvent(event);