Closed Bug 1053063 Opened 10 years ago Closed 10 years ago

[e10s] "YouTube High Definition" add-on crashes in mozilla::EventDispatcher::Dispatch() from nsDocumentViewer::PermitUnload()

Categories

(Core :: DOM: Navigation, defect, P1)

x86
macOS
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
e10s + ---
firefox34 --- affected

People

(Reporter: cpeterson, Assigned: billm)

References

Details

(Keywords: crash, reproducible)

STR: 1. Install "YouTube High Definition" add-on: https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/ 2. Open about:addons in an e10s window 3. Open "YouTube High Definition" add-on's Preferences 4. In the add-on's preferences popup window, change the Video Quality or Video Size. 5. The window will ask you if you'd like to preview your changes on YouTube. Select "OK". RESULT: The add-on will open a new tab with a YouTube video, the page will reflow a couple times, then the content process will crash trying to nsDocumentViewer::PermitUnload(). bp-3d2f47d4-008a-47ff-b516-a2e732140813 0 XUL mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, nsIDOMEvent*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsCOMArray<mozilla::dom::EventTarget>*) obj-firefox/x86_64/dist/include/nsTArray.h 1 XUL mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, nsIDOMEvent*, nsPresContext*, nsEventStatus*) dom/events/EventDispatcher.cpp 2 XUL nsDocumentViewer::PermitUnloadInternal(bool, bool*, bool*) layout/base/nsDocumentViewer.cpp 3 XUL nsDocumentViewer::PermitUnload(bool, bool*) layout/base/nsDocumentViewer.cpp 4 XUL nsDocShell::InternalLoad(nsIURI*, nsIURI*, nsISupports*, unsigned int, char16_t const*, char const*, nsAString_internal const&, nsIInputStream*, nsIInputStream*, unsigned int, nsISHEntry*, bool, nsAString_internal const&, nsIDocShell*, nsIURI*, nsIDocShell**, nsIRequest**) docshell/base/nsDocShell.cpp 5 XUL nsDocShell::LoadURI(nsIURI*, nsIDocShellLoadInfo*, unsigned int, bool) docshell/base/nsDocShell.cpp 6 XUL nsLocation::SetURI(nsIURI*, bool) dom/base/nsLocation.cpp 7 XUL nsLocation::SetHrefWithBase(nsAString_internal const&, nsIURI*, bool) dom/base/nsLocation.cpp 8 XUL nsLocation::Replace(nsAString_internal const&) dom/base/nsLocation.cpp 9 XUL mozilla::dom::LocationBinding::replace dom/base/nsLocation.h 10 XUL mozilla::dom::LocationBinding::genericCrossOriginMethod obj-firefox/x86_64/dom/bindings/LocationBinding.cpp 11 XUL js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) js/src/jscntxtinlines.h 12 XUL js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) js/src/vm/Interpreter.cpp 13 XUL js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const js/src/jsproxy.cpp 14 XUL js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const js/src/jswrapper.cpp 15 XUL js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) js/src/jsproxy.cpp 16 XUL js::proxy_Call(JSContext*, unsigned int, JS::Value*) js/src/jsproxy.cpp 17 XUL js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) js/src/jscntxtinlines.h 18 XUL js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) js/src/vm/Interpreter.cpp 19 XUL JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) js/src/jsapi.cpp 20 XUL mozilla::jsipc::WrapperAnswer::AnswerCallOrConstruct(unsigned long long const&, nsTArray<mozilla::jsipc::JSParam> const&, bool const&, mozilla::jsipc::ReturnStatus*, mozilla::jsipc::JSVariant*, nsTArray<mozilla::jsipc::JSParam>*) js/ipc/WrapperAnswer.cpp 21 XUL _ZThn24_N7mozilla5jsipc14JavaScriptBaseINS0_16PJavaScriptChildEE21AnswerCallOrConstructERKyRK8nsTArrayINS0_7JSParamEERKbPNS0_12ReturnStatusEPNS0_9JSVariantEPS8_ js/ipc/JavaScriptBase.h 22 XUL mozilla::jsipc::PJavaScriptChild::OnCallReceived(IPC::Message const&, IPC::Message*&) obj-firefox/x86_64/ipc/ipdl/PJavaScriptChild.cpp 23 XUL mozilla::ipc::MessageChannel::DispatchUrgentMessage(IPC::Message const&) ipc/glue/MessageChannel.cpp 24 XUL mozilla::ipc::MessageChannel::ProcessPendingUrgentRequest() ipc/glue/MessageChannel.cpp 25 XUL mozilla::ipc::MessageChannel::SendAndWait(IPC::Message*, IPC::Message*) ipc/glue/MessageChannel.cpp 26 XUL mozilla::ipc::MessageChannel::RPCCall(IPC::Message*, IPC::Message*) ipc/glue/MessageChannel.cpp 27 XUL mozilla::ipc::MessageChannel::Call(IPC::Message*, IPC::Message*) ipc/glue/MessageChannel.cpp 28 XUL mozilla::dom::PBrowserChild::CallRpcMessage(nsString const&, mozilla::dom::ClonedMessageData const&, nsTArray<mozilla::jsipc::CpowEntry> const&, IPC::Principal const&, nsTArray<nsString>*) obj-firefox/x86_64/ipc/ipdl/PBrowserChild.cpp 29 XUL mozilla::dom::TabChild::DoSendBlockingMessage(JSContext*, nsAString_internal const&, mozilla::dom::StructuredCloneData const&, JS::Handle<JSObject*>, nsIPrincipal*, nsTArray<nsString>*, bool) dom/ipc/TabChild.cpp 30 XUL _ZThn56_N7mozilla3dom8TabChild21DoSendBlockingMessageEP9JSContextRK18nsAString_internalRKNS0_19StructuredCloneDataEN2JS6HandleIP8JSObjectEEP12nsIPrincipalP8nsTArrayI8nsStringEb obj-firefox/x86_64/dom/ipc/Unified_cpp_dom_ipc0.cpp 31 XUL nsFrameMessageManager::SendMessage(nsAString_internal const&, JS::Handle<JS::Value>, JS::Handle<JS::Value>, nsIPrincipal*, JSContext*, unsigned char, JS::MutableHandle<JS::Value>, bool) content/base/src/nsFrameMessageManager.cpp 32 XUL nsFrameMessageManager::SendRpcMessage(nsAString_internal const&, JS::Handle<JS::Value>, JS::Handle<JS::Value>, nsIPrincipal*, JSContext*, unsigned char, JS::MutableHandle<JS::Value>) content/base/src/nsFrameMessageManager.cpp 33 XUL NS_InvokeByIndex xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_unix.cpp 34 XUL XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) js/xpconnect/src/XPCWrappedNative.cpp 35 XUL XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) js/xpconnect/src/XPCWrappedNativeJSOps.cpp 36 XUL js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) js/src/jscntxtinlines.h 37 XUL js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) js/src/vm/Interpreter.cpp 38 XUL js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const js/src/jsproxy.cpp 39 XUL js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const js/src/jswrapper.cpp 40 XUL js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) js/src/jsproxy.cpp 41 XUL js::proxy_Call(JSContext*, unsigned int, JS::Value*) js/src/jsproxy.cpp 42 XUL js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) js/src/jscntxtinlines.h 43 XUL Interpret js/src/vm/Interpreter.cpp 44 XUL js::RunScript(JSContext*, js::RunState&) js/src/vm/Interpreter.cpp 45 XUL js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) js/src/vm/Interpreter.cpp 46 XUL js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) js/src/vm/Interpreter.cpp 47 XUL js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const js/src/jsproxy.cpp 48 XUL js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const js/src/jswrapper.cpp 49 XUL js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) js/src/jsproxy.cpp 50 XUL js::proxy_Call(JSContext*, unsigned int, JS::Value*) js/src/jsproxy.cpp 51 XUL js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) js/src/jscntxtinlines.h 52 XUL js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) js/src/vm/Interpreter.cpp 53 XUL JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) js/src/jsapi.cpp 54 XUL nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) js/xpconnect/src/XPCWrappedJSClass.cpp 55 XUL PrepareAndDispatch xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_darwin.cpp 56 XUL SharedStub 57 XUL mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, nsIDOMEvent*, mozilla::dom::EventTarget*) dom/events/EventListenerManager.cpp 58 XUL mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, nsIDOMEvent**, mozilla::dom::EventTarget*, nsEventStatus*) dom/events/EventListenerManager.cpp 59 XUL mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) dom/events/EventDispatcher.cpp 60 XUL mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, nsIDOMEvent*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsCOMArray<mozilla::dom::EventTarget>*) dom/events/EventDispatcher.cpp 61 XUL mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, nsIDOMEvent*, nsPresContext*, nsEventStatus*) dom/events/EventDispatcher.cpp 62 XUL nsINode::DispatchEvent(nsIDOMEvent*, bool*) content/base/src/nsINode.cpp 63 XUL nsContentUtils::DispatchEvent(nsIDocument*, nsISupports*, nsAString_internal const&, bool, bool, bool, bool*) content/base/src/nsContentUtils.cpp 64 XUL nsContentUtils::DispatchTrustedEvent(nsIDocument*, nsISupports*, nsAString_internal const&, bool, bool, bool*) content/base/src/nsContentUtils.cpp 65 XUL nsDocument::DispatchContentLoadedEvents() content/base/src/nsDocument.cpp 66 XUL nsRunnableMethodImpl<void (nsDocument::*)(), void, true>::Run() obj-firefox/x86_64/dist/include/nsThreadUtils.h 67 XUL nsThread::ProcessNextEvent(bool, bool*) xpcom/threads/nsThread.cpp 68 XUL NS_ProcessPendingEvents(nsIThread*, unsigned int) xpcom/glue/nsThreadUtils.cpp 69 XUL nsBaseAppShell::NativeEventCallback() widget/xpwidgets/nsBaseAppShell.cpp 70 XUL nsAppShell::ProcessGeckoEvents(void*) widget/cocoa/nsAppShell.mm Ø 71 CoreFoundation CoreFoundation@0x7f5b0 Ø 72 CoreFoundation CoreFoundation@0x70c61 Ø 73 CoreFoundation CoreFoundation@0x703ee Ø 74 CoreFoundation CoreFoundation@0x6fe74 Ø 75 HIToolbox HIToolbox@0x2ea0c Ø 76 HIToolbox HIToolbox@0x2e7b6 Ø 77 HIToolbox HIToolbox@0x2e5bb Ø 78 AppKit AppKit@0x2424d Ø 79 AppKit AppKit@0x2389a 80 XUL -[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] widget/cocoa/nsAppShell.mm Ø 81 AppKit AppKit@0x1799b 82 XUL nsAppShell::Run() widget/cocoa/nsAppShell.mm 83 XUL XRE_RunAppShell toolkit/xre/nsEmbedFunctions.cpp 84 XUL MessageLoop::Run() ipc/chromium/src/base/message_loop.cc 85 XUL XRE_InitChildProcess toolkit/xre/nsEmbedFunctions.cpp 86 plugin-container main ipc/contentproc/plugin-container.cpp 87 plugin-container start
Assignee: nobody → wmccloskey
Blocks: old-e10s-m2
Component: IPC → Document Navigation
Priority: -- → P1
This shouldn't be happening anymore. Are you still seeing it Chris?
WFM in Nightly 34 build 2014-08-26.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.