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.