Closed
Bug 1451108
Opened 8 years ago
Closed 7 years ago
Make it fatal anytime we dispatch events when it's not a good time to run script
Categories
(Core :: DOM: Events, defect, P2)
Core
DOM: Events
Tracking
()
RESOLVED
FIXED
mozilla64
People
(Reporter: mconley, Assigned: mconley)
References
Details
(Keywords: sec-audit, Whiteboard: [post-critsmash-triage][adv-main64-])
Attachments
(1 file)
[1] uses NS_ERROR. It should probably use MOZ_ASSERT instead.
[1]: https://searchfox.org/mozilla-central/rev/f5fb323246bf22a3a3b4185882a1c5d8a2c02996/dom/events/EventDispatcher.cpp#757
| Assignee | ||
Comment 1•8 years ago
|
||
Actually, I think we just need to swap NS_ERROR with MOZ_CRASH.
Assignee: nobody → mconley
| Assignee | ||
Comment 2•8 years ago
|
||
My try push is here:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=976d689a6507bbae379a39c5a9b1499ead73b3b2
Looks like we've got one crash in automation, and that's in:
dom/html/test/browser_submission_flush.js
Which I think is bug 1450989. Getting that fixed should allow us to land this, I think.
Depends on: 1450989
Comment 3•8 years ago
|
||
The crash there is basically a regression from bug 1402025
Comment 4•8 years ago
|
||
er, bug 1365092
| Assignee | ||
Comment 5•8 years ago
|
||
(In reply to Olli Pettay [:smaug] (only webcomponents and event handling reviews, please) from comment #3)
> The crash there is basically a regression from bug 1402025
Is it unrelated to bug 1450989 then?
Flags: needinfo?(bugs)
Comment 6•8 years ago
|
||
It is related definitely, but as such, regression from bug 1365092, since the relevant code used to run outside scriptblocker before that.
Flags: needinfo?(bugs)
Comment 7•8 years ago
|
||
I wonder whether we can/should run Before/AfterSetAttr outside the scriptblocker....
Updated•8 years ago
|
Priority: -- → P2
| Assignee | ||
Comment 8•7 years ago
|
||
ni?ing myself to try the MOZ_CRASH patch again on try now that bug 1450989 is fixed.
Flags: needinfo?(mconley)
| Assignee | ||
Comment 9•7 years ago
|
||
This is still exploding on try, but for different reasons:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=78d39108dabd7fbdcfece821f4d91487b10a5734&selectedJob=192624704
From this test:
[task 2018-08-07T20:14:11.602Z] 20:14:11 INFO - TEST-START | browser/components/extensions/test/browser/browser_ext_devtools_inspectedWindow.js
...
task 2018-08-07T20:14:37.355Z] 20:14:37 INFO - GECKO(1022) | [Parent 1022, Main Thread] ###!!! ASSERTION: Want to fire DOMNodeRemoved event, but it's not safe: 'Error', file /builds/worker/workspace/build/src/dom/base/nsContentUtils.cpp, line 4723
[task 2018-08-07T20:15:11.220Z] 20:15:11 INFO - GECKO(1022) | #01: nsINode::RemoveChild(nsINode&, mozilla::ErrorResult&) [dom/base/nsINode.cpp:570]
[task 2018-08-07T20:15:11.221Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.223Z] 20:15:11 INFO - GECKO(1022) | #02: mozilla::dom::Node_Binding::removeChild [s3:gecko-generated-sources-l1:72bd3965e964a71c440849dcd3303c9f825eb385983f34de7a1dc67cd0e8ce22e9afdd2187d706a2c12b2044e8ea8d3dc1e443f0910643596376dae47ffccda7/dom/bindings/NodeBinding.cpp::1076]
[task 2018-08-07T20:15:11.226Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.228Z] 20:15:11 INFO - GECKO(1022) | #03: bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) [dom/bindings/BindingUtils.cpp:3313]
[task 2018-08-07T20:15:11.231Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.233Z] 20:15:11 INFO - GECKO(1022) | #04: CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [js/src/vm/Interpreter.cpp:446]
[task 2018-08-07T20:15:11.236Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.238Z] 20:15:11 INFO - GECKO(1022) | #05: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Interpreter.cpp:519]
[task 2018-08-07T20:15:11.241Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.243Z] 20:15:11 INFO - GECKO(1022) | #06: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.247Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.250Z] 20:15:11 INFO - GECKO(1022) | #07: js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:603]
[task 2018-08-07T20:15:11.252Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.254Z] 20:15:11 INFO - GECKO(1022) | #08: js::ForwardingProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/Wrapper.cpp:176]
[task 2018-08-07T20:15:11.256Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.258Z] 20:15:11 INFO - GECKO(1022) | #09: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/CrossCompartmentWrapper.cpp:359]
[task 2018-08-07T20:15:11.262Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.263Z] 20:15:11 INFO - GECKO(1022) | #10: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) [js/src/proxy/Proxy.cpp:504]
[task 2018-08-07T20:15:11.264Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.265Z] 20:15:11 INFO - GECKO(1022) | #11: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Interpreter.cpp:508]
[task 2018-08-07T20:15:11.266Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.273Z] 20:15:11 INFO - GECKO(1022) | #12: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.274Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.275Z] 20:15:11 INFO - GECKO(1022) | #13: Interpret [js/src/vm/Interpreter.cpp:3239]
[task 2018-08-07T20:15:11.276Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.278Z] 20:15:11 INFO - GECKO(1022) | #14: js::RunScript(JSContext*, js::RunState&) [js/src/vm/Interpreter.cpp:425]
[task 2018-08-07T20:15:11.279Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.280Z] 20:15:11 INFO - GECKO(1022) | #15: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Realm-inl.h:74]
[task 2018-08-07T20:15:11.281Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.282Z] 20:15:11 INFO - GECKO(1022) | #16: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.284Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.285Z] 20:15:11 INFO - GECKO(1022) | #17: js::jit::DoCallFallback [js/src/jit/BaselineIC.cpp:2582]
[task 2018-08-07T20:15:11.286Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.286Z] 20:15:11 INFO - GECKO(1022) | #18: ??? (???:???)
[task 2018-08-07T20:15:11.287Z] 20:15:11 INFO - GECKO(1022) | [Parent 1022, Main Thread] ###!!! ASSERTION: Want to fire DOMNodeRemoved event, but it's not safe: 'Error', file /builds/worker/workspace/build/src/dom/base/nsContentUtils.cpp, line 4723
[task 2018-08-07T20:15:11.289Z] 20:15:11 INFO - GECKO(1022) | #01: nsINode::RemoveChild(nsINode&, mozilla::ErrorResult&) [dom/base/nsINode.cpp:570]
[task 2018-08-07T20:15:11.290Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.291Z] 20:15:11 INFO - GECKO(1022) | #02: nsINode::Remove() [dom/bindings/ErrorResult.h:809]
[task 2018-08-07T20:15:11.291Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.292Z] 20:15:11 INFO - GECKO(1022) | #03: mozilla::dom::Element_Binding::remove [s3:gecko-generated-sources-l1:b5957f896aad21aaf147e89357937fb266cb1bbd3a717dd651810c410a01a29ae0272c59cdf693f3653adca18623d3be2a38acdd4c43b4008df9a25dee120e84/dom/bindings/ElementBinding.cpp::4621]
[task 2018-08-07T20:15:11.293Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.295Z] 20:15:11 INFO - GECKO(1022) | #04: bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) [dom/bindings/BindingUtils.cpp:3313]
[task 2018-08-07T20:15:11.295Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.296Z] 20:15:11 INFO - GECKO(1022) | #05: CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [js/src/vm/Interpreter.cpp:446]
[task 2018-08-07T20:15:11.297Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.298Z] 20:15:11 INFO - GECKO(1022) | #06: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Interpreter.cpp:519]
[task 2018-08-07T20:15:11.299Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.300Z] 20:15:11 INFO - GECKO(1022) | #07: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.301Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.301Z] 20:15:11 INFO - GECKO(1022) | #08: js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:603]
[task 2018-08-07T20:15:11.302Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.303Z] 20:15:11 INFO - GECKO(1022) | #09: js::ForwardingProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/Wrapper.cpp:176]
[task 2018-08-07T20:15:11.304Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.305Z] 20:15:11 INFO - GECKO(1022) | #10: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/CrossCompartmentWrapper.cpp:359]
[task 2018-08-07T20:15:11.306Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.307Z] 20:15:11 INFO - GECKO(1022) | #11: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) [js/src/proxy/Proxy.cpp:504]
[task 2018-08-07T20:15:11.308Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.309Z] 20:15:11 INFO - GECKO(1022) | #12: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Interpreter.cpp:508]
[task 2018-08-07T20:15:11.311Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.312Z] 20:15:11 INFO - GECKO(1022) | #13: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.313Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.314Z] 20:15:11 INFO - GECKO(1022) | #14: Interpret [js/src/vm/Interpreter.cpp:3239]
[task 2018-08-07T20:15:11.316Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.317Z] 20:15:11 INFO - GECKO(1022) | #15: js::RunScript(JSContext*, js::RunState&) [js/src/vm/Interpreter.cpp:425]
[task 2018-08-07T20:15:11.319Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.321Z] 20:15:11 INFO - GECKO(1022) | #16: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Realm-inl.h:74]
[task 2018-08-07T20:15:11.322Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.324Z] 20:15:11 INFO - GECKO(1022) | #17: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.326Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.327Z] 20:15:11 INFO - GECKO(1022) | #18: js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:603]
[task 2018-08-07T20:15:11.329Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.331Z] 20:15:11 INFO - GECKO(1022) | #19: js::ForwardingProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/Wrapper.cpp:176]
[task 2018-08-07T20:15:11.332Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.334Z] 20:15:11 INFO - GECKO(1022) | #20: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/CrossCompartmentWrapper.cpp:359]
[task 2018-08-07T20:15:11.336Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.337Z] 20:15:11 INFO - GECKO(1022) | #21: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) [js/src/proxy/Proxy.cpp:504]
[task 2018-08-07T20:15:11.339Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.341Z] 20:15:11 INFO - GECKO(1022) | #22: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Interpreter.cpp:508]
[task 2018-08-07T20:15:11.342Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.344Z] 20:15:11 INFO - GECKO(1022) | #23: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.346Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.347Z] 20:15:11 INFO - GECKO(1022) | #24: Interpret [js/src/vm/Interpreter.cpp:3239]
[task 2018-08-07T20:15:11.349Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.351Z] 20:15:11 INFO - GECKO(1022) | #25: js::RunScript(JSContext*, js::RunState&) [js/src/vm/Interpreter.cpp:425]
[task 2018-08-07T20:15:11.352Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.353Z] 20:15:11 INFO - GECKO(1022) | #26: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Realm-inl.h:74]
[task 2018-08-07T20:15:11.354Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.356Z] 20:15:11 INFO - GECKO(1022) | #27: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.357Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.358Z] 20:15:11 INFO - GECKO(1022) | #28: js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:603]
[task 2018-08-07T20:15:11.359Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.360Z] 20:15:11 INFO - GECKO(1022) | #29: js::ForwardingProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/Wrapper.cpp:176]
[task 2018-08-07T20:15:11.361Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.362Z] 20:15:11 INFO - GECKO(1022) | #30: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/CrossCompartmentWrapper.cpp:359]
[task 2018-08-07T20:15:11.363Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.364Z] 20:15:11 INFO - GECKO(1022) | #31: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) [js/src/proxy/Proxy.cpp:504]
[task 2018-08-07T20:15:11.365Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.366Z] 20:15:11 INFO - GECKO(1022) | #32: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Interpreter.cpp:508]
[task 2018-08-07T20:15:11.367Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.368Z] 20:15:11 INFO - GECKO(1022) | #33: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.369Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.370Z] 20:15:11 INFO - GECKO(1022) | #34: Interpret [js/src/vm/Interpreter.cpp:3239]
[task 2018-08-07T20:15:11.371Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.373Z] 20:15:11 INFO - GECKO(1022) | #35: js::RunScript(JSContext*, js::RunState&) [js/src/vm/Interpreter.cpp:425]
[task 2018-08-07T20:15:11.374Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.375Z] 20:15:11 INFO - GECKO(1022) | #36: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Realm-inl.h:74]
[task 2018-08-07T20:15:11.376Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.378Z] 20:15:11 INFO - GECKO(1022) | #37: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.379Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.380Z] 20:15:11 INFO - GECKO(1022) | #38: js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:603]
[task 2018-08-07T20:15:11.381Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.382Z] 20:15:11 INFO - GECKO(1022) | #39: js::ForwardingProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/Wrapper.cpp:176]
[task 2018-08-07T20:15:11.383Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.384Z] 20:15:11 INFO - GECKO(1022) | #40: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/CrossCompartmentWrapper.cpp:359]
[task 2018-08-07T20:15:11.385Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.386Z] 20:15:11 INFO - GECKO(1022) | #41: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) [js/src/proxy/Proxy.cpp:504]
[task 2018-08-07T20:15:11.387Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.388Z] 20:15:11 INFO - GECKO(1022) | #42: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Interpreter.cpp:508]
[task 2018-08-07T20:15:11.389Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.390Z] 20:15:11 INFO - GECKO(1022) | #43: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.391Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.393Z] 20:15:11 INFO - GECKO(1022) | #44: Interpret [js/src/vm/Interpreter.cpp:3239]
[task 2018-08-07T20:15:11.394Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.395Z] 20:15:11 INFO - GECKO(1022) | #45: js::RunScript(JSContext*, js::RunState&) [js/src/vm/Interpreter.cpp:425]
[task 2018-08-07T20:15:11.396Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.397Z] 20:15:11 INFO - GECKO(1022) | #46: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Realm-inl.h:74]
[task 2018-08-07T20:15:11.398Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.399Z] 20:15:11 INFO - GECKO(1022) | #47: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.400Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.401Z] 20:15:11 INFO - GECKO(1022) | #48: js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:603]
[task 2018-08-07T20:15:11.402Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.404Z] 20:15:11 INFO - GECKO(1022) | #49: js::CallSelfHostedFunction(JSContext*, JS::Handle<js::PropertyName*>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [js/src/vm/SelfHosting.cpp:1848]
[task 2018-08-07T20:15:11.405Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.406Z] 20:15:11 INFO - GECKO(1022) | #50: js::jit::InterpretResume(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) [js/src/jsapi.h:74]
[task 2018-08-07T20:15:11.407Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.407Z] 20:15:11 INFO - GECKO(1022) | #51: ??? (???:???)
[task 2018-08-07T20:15:11.409Z] 20:15:11 INFO - GECKO(1022) | Hit MOZ_CRASH(This is unsafe! Fix the caller!) at /builds/worker/workspace/build/src/dom/events/EventDispatcher.cpp:905
[task 2018-08-07T20:15:11.410Z] 20:15:11 INFO - GECKO(1022) | #01: mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsPresContext*, nsEventStatus*) [dom/events/EventDispatcher.cpp:1194]
[task 2018-08-07T20:15:11.410Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.411Z] 20:15:11 INFO - GECKO(1022) | #02: nsGlobalWindowInner::DispatchEvent(mozilla::dom::Event&, mozilla::dom::CallerType, mozilla::ErrorResult&) [dom/base/nsGlobalWindowInner.cpp:4327]
[task 2018-08-07T20:15:11.411Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.412Z] 20:15:11 INFO - GECKO(1022) | #03: mozilla::dom::EventTarget_Binding::dispatchEvent [s3:gecko-generated-sources-l1:8333fb48b73b6c79bb5764789f95b7413a025071c55373534272d97eb2b31ac191cce4c3dbc60ec407405d56879b461dadf98603ed8cd166c255bba15c9c1411/dom/bindings/EventTargetBinding.cpp::987]
[task 2018-08-07T20:15:11.413Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.413Z] 20:15:11 INFO - GECKO(1022) | #04: bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::MaybeGlobalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) [dom/bindings/BindingUtils.cpp:3313]
[task 2018-08-07T20:15:11.413Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.413Z] 20:15:11 INFO - GECKO(1022) | #05: CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [js/src/vm/Interpreter.cpp:446]
[task 2018-08-07T20:15:11.415Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.416Z] 20:15:11 INFO - GECKO(1022) | #06: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Interpreter.cpp:519]
[task 2018-08-07T20:15:11.417Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.417Z] 20:15:11 INFO - GECKO(1022) | #07: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.418Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.418Z] 20:15:11 INFO - GECKO(1022) | #08: js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:603]
[task 2018-08-07T20:15:11.418Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.419Z] 20:15:11 INFO - GECKO(1022) | #09: js::ForwardingProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/Wrapper.cpp:176]
[task 2018-08-07T20:15:11.419Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.421Z] 20:15:11 INFO - GECKO(1022) | #10: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [js/src/proxy/CrossCompartmentWrapper.cpp:359]
[task 2018-08-07T20:15:11.421Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.422Z] 20:15:11 INFO - GECKO(1022) | #11: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) [js/src/proxy/Proxy.cpp:504]
[task 2018-08-07T20:15:11.423Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.423Z] 20:15:11 INFO - GECKO(1022) | #12: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Interpreter.cpp:508]
[task 2018-08-07T20:15:11.423Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.423Z] 20:15:11 INFO - GECKO(1022) | #13: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.424Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.425Z] 20:15:11 INFO - GECKO(1022) | #14: Interpret [js/src/vm/Interpreter.cpp:3239]
[task 2018-08-07T20:15:11.425Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.427Z] 20:15:11 INFO - GECKO(1022) | #15: js::RunScript(JSContext*, js::RunState&) [js/src/vm/Interpreter.cpp:425]
[task 2018-08-07T20:15:11.427Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.428Z] 20:15:11 INFO - GECKO(1022) | #16: js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [js/src/vm/Realm-inl.h:74]
[task 2018-08-07T20:15:11.429Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.430Z] 20:15:11 INFO - GECKO(1022) | #17: InternalCall [js/src/vm/Interpreter.cpp:585]
[task 2018-08-07T20:15:11.430Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.432Z] 20:15:11 INFO - GECKO(1022) | #18: js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:603]
[task 2018-08-07T20:15:11.432Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.433Z] 20:15:11 INFO - GECKO(1022) | #19: js::jit::InvokeFunction(JSContext*, JS::Handle<JSObject*>, bool, bool, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) [js/src/jit/VMFunctions.cpp:107]
[task 2018-08-07T20:15:11.434Z] 20:15:11 INFO -
[task 2018-08-07T20:15:11.435Z] 20:15:11 INFO - GECKO(1022) | #20: js::jit::InvokeFromInterpreterStub(JSContext*, js::jit::InterpreterStubExitFrameLayout*) [js/src/jit/VMFunctions.cpp:136]
[task 2018-08-07T20:15:11.436Z] 20:15:11 INFO -
Flags: needinfo?(mconley)
Comment 10•7 years ago
|
||
Who is calling dispatchEvent? The stack is missing the information.
tryserver seems to have that, so it is
[task 2018-08-07T20:15:20.891Z] 20:15:20 INFO - rbx = 0x00007fff7a77dcc0 rbp = 0x00007fff7a77dd90
[task 2018-08-07T20:15:20.893Z] 20:15:20 INFO - rsp = 0x00007fff7a77dc20 r12 = 0x0000000000000001
[task 2018-08-07T20:15:20.894Z] 20:15:20 INFO - r13 = 0x00007fff7a77dc50 r14 = 0x00007fff7a77dc40
[task 2018-08-07T20:15:20.895Z] 20:15:20 INFO - r15 = 0x00007fff7a77deb0 rip = 0x00007f04205b4f6c
[task 2018-08-07T20:15:20.897Z] 20:15:20 INFO - Found by: call frame info
[task 2018-08-07T20:15:20.898Z] 20:15:20 INFO - 80 libxul.so!nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, nsXPTMethodInfo const*, nsXPTCMiniVariant*) [XPCWrappedJSClass.cpp:78d39108dabd7fbdcfece821f4d91487b10a5734 : 1134 + 0x5]
[task 2018-08-07T20:15:20.899Z] 20:15:20 INFO - rbx = 0x00007fff7a77deb8 rbp = 0x00007fff7a77e190
[task 2018-08-07T20:15:20.901Z] 20:15:20 INFO - rsp = 0x00007fff7a77dda0 r12 = 0x00007fff7a77de01
[task 2018-08-07T20:15:20.902Z] 20:15:20 INFO - r13 = 0x0000000080004005 r14 = 0x00007f0415114c40
[task 2018-08-07T20:15:20.903Z] 20:15:20 INFO - r15 = 0x00007fff7a77df00 rip = 0x00007f041dc30b70
[task 2018-08-07T20:15:20.904Z] 20:15:20 INFO - Found by: call frame info
[task 2018-08-07T20:15:20.906Z] 20:15:20 INFO - 81 libxul.so!PrepareAndDispatch [xptcstubs_x86_64_linux.cpp:78d39108dabd7fbdcfece821f4d91487b10a5734 : 128 + 0xf]
[task 2018-08-07T20:15:20.907Z] 20:15:20 INFO - rbx = 0x00007fff7a77e1e8 rbp = 0x00007fff7a77e280
[task 2018-08-07T20:15:20.908Z] 20:15:20 INFO - rsp = 0x00007fff7a77e1a0 r12 = 0x00007fff7a77e310
[task 2018-08-07T20:15:20.910Z] 20:15:20 INFO - r13 = 0x00007f0414132f80 r14 = 0x00007fff7a77e2c0
[task 2018-08-07T20:15:20.911Z] 20:15:20 INFO - r15 = 0x00007fff7a77e1d0 rip = 0x00007f041d566905
[task 2018-08-07T20:15:20.913Z] 20:15:20 INFO - Found by: call frame info
[task 2018-08-07T20:15:20.914Z] 20:15:20 INFO - 82 libxul.so!SharedStub + 0x5b
[task 2018-08-07T20:15:20.915Z] 20:15:20 INFO - rbx = 0x00007fff7a77e318 rbp = 0x00007fff7a77e300
[task 2018-08-07T20:15:20.920Z] 20:15:20 INFO - rsp = 0x00007fff7a77e290 r12 = 0x0000000000000008
[task 2018-08-07T20:15:20.921Z] 20:15:20 INFO - r13 = 0x00007f03ec4cace0 r14 = 0x00007f0422192bec
[task 2018-08-07T20:15:20.923Z] 20:15:20 INFO - r15 = 0x0000000000000000 rip = 0x00007f041d565d79
[task 2018-08-07T20:15:20.924Z] 20:15:20 INFO - Found by: call frame info
[task 2018-08-07T20:15:20.925Z] 20:15:20 INFO - 83 libxul.so!nsObserverList::NotifyObservers(nsISupports*, char const*, char16_t const*) [nsObserverList.cpp:78d39108dabd7fbdcfece821f4d91487b10a5734 : 112 + 0x13]
[task 2018-08-07T20:15:20.927Z] 20:15:20 INFO - rdx = 0x6563616672755349 rcx = 0xff00000000000000
[task 2018-08-07T20:15:20.928Z] 20:15:20 INFO - rbx = 0x00007fff7a77e318 rsi = 0xe4e40065736f6c63
[task 2018-08-07T20:15:20.929Z] 20:15:20 INFO - rdi = 0x0000000000000000 rbp = 0x00007fff7a77e350
[task 2018-08-07T20:15:20.931Z] 20:15:20 INFO - rsp = 0x00007fff7a77e310 r8 = 0x0000000000000000
[task 2018-08-07T20:15:20.932Z] 20:15:20 INFO - r9 = 0x0000000000000000 r12 = 0x0000000000000008
[task 2018-08-07T20:15:20.933Z] 20:15:20 INFO - r13 = 0x00007f03ec4cace0 r14 = 0x00007f0422192bec
[task 2018-08-07T20:15:20.935Z] 20:15:20 INFO - r15 = 0x0000000000000000 rip = 0x00007f041d502f09
[task 2018-08-07T20:15:20.936Z] 20:15:20 INFO - Found by: call frame info
[task 2018-08-07T20:15:20.937Z] 20:15:20 INFO - 84 libxul.so!nsObserverService::NotifyObservers(nsISupports*, char const*, char16_t const*) [nsObserverService.cpp:78d39108dabd7fbdcfece821f4d91487b10a5734 : 295 + 0x13]
[task 2018-08-07T20:15:20.938Z] 20:15:20 INFO - rbx = 0x00007f0422192bec rbp = 0x00007fff7a77e3c0
[task 2018-08-07T20:15:20.940Z] 20:15:20 INFO - rsp = 0x00007fff7a77e360 r12 = 0x00007fff7a77e380
[task 2018-08-07T20:15:20.941Z] 20:15:20 INFO - r13 = 0x00007f041ae08290 r14 = 0x0000062e2bac4d5b
[task 2018-08-07T20:15:20.942Z] 20:15:20 INFO - r15 = 0x00007fff7a77e370 rip = 0x00007f041d50306d
[task 2018-08-07T20:15:20.944Z] 20:15:20 INFO - Found by: call frame info
[task 2018-08-07T20:15:20.945Z] 20:15:20 INFO - 85 libxul.so!nsFrameMessageManager::Close() [nsFrameMessageManager.cpp:78d39108dabd7fbdcfece821f4d91487b10a5734 : 952 + 0x1e]
[task 2018-08-07T20:15:20.946Z] 20:15:20 INFO - rbx = 0x00007f03ec4cace0 rbp = 0x00007fff7a77e400
[task 2018-08-07T20:15:20.948Z] 20:15:20 INFO - rsp = 0x00007fff7a77e3d0 r12 = 0x00007fff7a77e3d0
[task 2018-08-07T20:15:20.949Z] 20:15:20 INFO - r13 = 0x00007fff7a77e3d8 r14 = 0x00007f03e8ed8710
[task 2018-08-07T20:15:20.950Z] 20:15:20 INFO - r15 = 0x00007f03e8ed87a8 rip = 0x00007f041e0c5339
[task 2018-08-07T20:15:20.952Z] 20:15:20 INFO - Found by: call frame info
[task 2018-08-07T20:15:20.953Z] 20:15:20 INFO - 86 libxul.so!nsFrameLoader::StartDestroy() [nsFrameLoader.cpp:78d39108dabd7fbdcfece821f4d91487b10a5734 : 1703 + 0x11]
[task 2018-08-07T20:15:20.954Z] 20:15:20 INFO - rbx = 0x00007f03ec3fb4c0 rbp = 0x00007fff7a77e490
[task 2018-08-07T20:15:20.956Z] 20:15:20 INFO - rsp = 0x00007fff7a77e410 r12 = 0x0000000000000000
[task 2018-08-07T20:15:20.957Z] 20:15:20 INFO - r13 = 0x00007fff7a77e4a0 r14 = 0x00007f03e8ed8710
[task 2018-08-07T20:15:20.958Z] 20:15:20 INFO - r15 = 0x00007f03e8ed87a8 rip = 0x00007f041e1c6f5e
[task 2018-08-07T20:15:20.960Z] 20:15:20 INFO - Found by: call frame info
[task 2018-08-07T20:15:20.961Z] 20:15:20 INFO - 87 libxul.so!mozilla::dom::XULFrameElement::UnbindFromTree(bool, bool) [XULFrameElement.cpp:78d39108dabd7fbdcfece821f4d91487b10a5734 : 172 + 0x10]
[task 2018-08-07T20:15:20.962Z] 20:15:20 INFO - rbx = 0x0000000000000001 rbp = 0x00007fff7a77e4e0
[task 2018-08-07T20:15:20.964Z] 20:15:20 INFO - rsp = 0x00007fff7a77e4a0 r12 = 0x0000000000000001
[task 2018-08-07T20:15:20.965Z] 20:15:20 INFO - r13 = 0x00007fff7a77e4a0 r14 = 0x00007f03e8ed8710
[task 2018-08-07T20:15:20.966Z] 20:15:20 INFO - r15 = 0x00007f03e8ed87a8 rip = 0x00007f041f1652f0
So, we have code observing message-manager-close and doing stuff there that shouldn't be done there. Need to audit all the usage.
| Assignee | ||
Comment 11•7 years ago
|
||
Depends on D5456
| Assignee | ||
Comment 12•7 years ago
|
||
A recent try push with this and the patch in bug 1482402 look good: https://treeherder.mozilla.org/#/jobs?repo=try&revision=8468a8d0c15388bf4aa4f1122a119c00b1421ddd
Comment 13•7 years ago
|
||
Comment on attachment 9007868 [details]
Bug 1451108 - Make it fatal anytime we dispatch events when it's not a good time to run script. r?smaug
Olli Pettay [:smaug] has approved the revision.
Attachment #9007868 -
Flags: review+
Comment 14•7 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/7a1e3ad7a911dadcab91b767f1a2f3535b48980e
https://hg.mozilla.org/mozilla-central/rev/7a1e3ad7a911
Group: dom-core-security → core-security-release
Status: NEW → RESOLVED
Closed: 7 years ago
status-firefox64:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Updated•7 years ago
|
Updated•7 years ago
|
Flags: qe-verify-
Whiteboard: [post-critsmash-triage]
Updated•7 years ago
|
Whiteboard: [post-critsmash-triage] → [post-critsmash-triage][adv-main64-]
Updated•6 years ago
|
Group: core-security-release
You need to log in
before you can comment on or make changes to this bug.
Description
•