Auto merge of #10837 - asajeffrey:add-mozbrowsererror-details, r=Manishearth

Add detail to mozbrowsererror events.

Part of #10334. Once #10824 lands, we can include the panic reason and backtrace in the error report.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10837)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-04-29 09:18:39 -07:00
commit 990dd72da7
4 changed files with 42 additions and 5 deletions

View file

@ -5,6 +5,7 @@
use document_loader::{LoadType, LoadBlocker};
use dom::attr::{Attr, AttrValue};
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::BrowserElementBinding::BrowserElementErrorEventDetail;
use dom::bindings::codegen::Bindings::BrowserElementBinding::BrowserElementIconChangeEventDetail;
use dom::bindings::codegen::Bindings::BrowserElementBinding::BrowserElementLocationChangeEventDetail;
use dom::bindings::codegen::Bindings::BrowserElementBinding::BrowserElementSecurityChangeDetail;
@ -313,11 +314,18 @@ impl MozBrowserEventDetailBuilder for HTMLIFrameElement {
rval: MutableHandleValue) {
match event {
MozBrowserEvent::AsyncScroll | MozBrowserEvent::Close | MozBrowserEvent::ContextMenu |
MozBrowserEvent::Error | MozBrowserEvent::LoadEnd | MozBrowserEvent::LoadStart |
MozBrowserEvent::LoadEnd | MozBrowserEvent::LoadStart |
MozBrowserEvent::Connected | MozBrowserEvent::OpenWindow | MozBrowserEvent::OpenSearch |
MozBrowserEvent::UsernameAndPasswordRequired => {
rval.set(NullValue());
}
MozBrowserEvent::Error(error_type, description, report) => {
BrowserElementErrorEventDetail {
type_: Some(DOMString::from(error_type.name())),
description: description.map(DOMString::from),
report: report.map(DOMString::from),
}.to_jsval(cx, rval);
},
MozBrowserEvent::SecurityChange(https_state) => {
BrowserElementSecurityChangeDetail {
// https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowsersecuritychange

View file

@ -53,6 +53,16 @@ dictionary BrowserElementSecurityChangeDetail {
boolean mixedContent;
};
dictionary BrowserElementErrorEventDetail {
// https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowsererror
// just requires a "type" field, but we also provide
// an optional human-readable description, and
// an optional machine-readable report (e.g. a backtrace for panics)
DOMString type;
DOMString description;
DOMString report;
};
dictionary BrowserElementLocationChangeEventDetail {
DOMString uri;
boolean canGoBack;