Closed
Bug 658194
Opened 14 years ago
Closed 12 years ago
Firefox Hangs when loading the SpacEyes3D Plugin
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(Not tracked)
RESOLVED
INCOMPLETE
People
(Reporter: dev, Unassigned)
References
()
Details
Attachments
(2 files, 2 obsolete files)
1.07 KB,
patch
|
jimm
:
review-
|
Details | Diff | Splinter Review |
29.11 KB,
patch
|
jimm
:
review+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 GTB7.1 ( .NET CLR 3.5.30729; .NET4.0E)
Build Identifier: Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Our plugin doesn't work with Firefox 4 when executed in the plugin container.
It works fine when the plugin is executed inside the FF process.
This can be achieved using the following preference :
dom.ipc.plugins.enabled.npsp3dviewer.dll = false
We would like to integrate this preference in the default firefox prefs.
Reproducible: Always
Steps to Reproduce:
1.Install the plugin : http://www.spaceyes3d.com/plugin/download/SpacEyes3DViewerPlugin.exe
2.Go to the basic test page : http://www.spaceyes3d.com/plugin/demos/basic/basic.html
Actual Results:
The plugin starts to load then FF hangs.
Expected Results:
FF should not hang :)
Updated•14 years ago
|
Component: Extension Compatibility → Plug-ins
Product: Firefox → Core
QA Contact: extension.compatibility → plugins
Version: unspecified → 2.0 Branch
Updated•14 years ago
|
Version: 2.0 Branch → Trunk
The previous patch was buggy.
Attachment #533638 -
Attachment is obsolete: true
Comment on attachment 536299 [details] [diff] [review]
Fix of the previously submitted patch
Review of attachment 536299 [details] [diff] [review]:
-----------------------------------------------------------------
Attachment #536299 -
Flags: review?(benjamin)
Comment 4•14 years ago
|
||
This is a crappy workaround. Do you know why your plugin hangs? It would be better to just fix the plugin.
Comment 5•14 years ago
|
||
Firefox stack:
> ntdll.dll!_KiFastSystemCallRet@0()
user32.dll!_NtUserMessageCall@28() + 0xc bytes
user32.dll!_SendMessageWorker@20() - 0x12f8e bytes
user32.dll!_SendMessageW@16() + 0x49 bytes
xul.dll!nsWindow::HandleScrollingPlugins(unsigned int aMsg=522, unsigned int aWParam=7864320, long aLParam=26411500, int & aHandled=0, long * aRetValue=0x0031d0d8, int & aQuitProcessing=0) Line 7944 C++
xul.dll!nsWindow::OnMouseWheel(unsigned int msg=0, unsigned int wParam=1, long lParam=26411500, int & getWheelInfo=589988, int & result=0, long * aRetValue=0x0031d0d8) Line 6721 + 0x1a bytes C++
xul.dll!nsWindow::ProcessMessage(unsigned int msg=522, unsigned int & wParam=7864320, long & lParam=26411500, long * aRetValue=0x0031d0d8) + 0x34c3f7 bytes C++
xul.dll!nsWindow::WindowProcInternal(HWND__ * hWnd=0x02405ad0, unsigned int msg=1, unsigned int wParam=7864320, long lParam=26411500) Line 4629 + 0x2a bytes C++
xul.dll!CallWindowProcCrashProtected(long (HWND__ *, unsigned int, unsigned int, long)* wndProc=0x6ba0b760, HWND__ * hWnd=0x000900a4, unsigned int msg=522, unsigned int wParam=7864320, long lParam=26411500) Line 65 + 0x1e bytes C++
xul.dll!nsWindow::WindowProc(HWND__ * hWnd=0x000900a4, unsigned int msg=522, unsigned int wParam=7864320, long lParam=26411500) Line 4578 + 0x1a bytes C++
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb3 bytes
user32.dll!_DispatchMessageWorker@8() + 0xe6 bytes
user32.dll!_DispatchMessageW@4() + 0xf bytes
xul.dll!nsAppShell::ProcessNextNativeEvent(int mayWait=1805528086) Line 339 + 0xb bytes C++
Plugin stack:
ntdll.dll!_KiFastSystemCallRet@0()
ntdll.dll!_ZwWaitForMultipleObjects@20() + 0xc bytes
kernel32.dll!_WaitForMultipleObjectsEx@20() - 0x61 bytes
user32.dll!_RealMsgWaitForMultipleObjectsEx@20() + 0xd7 bytes
user32.dll!_MsgWaitForMultipleObjects@20() + 0x1f bytes
xul.dll!mozilla::ipc::RPCChannel::WaitForNotify() Line 904 C++
xul.dll!mozilla::ipc::RPCChannel::Call(IPC::Message * msg=0x00802830, IPC::Message * reply=0x0019e748) Line 201 + 0x6 bytes C++
xul.dll!mozilla::plugins::PPluginScriptableObjectChild::CallHasMethod(mozilla::plugins::PPluginIdentifierChild * aId=0x0019e5e4, bool * aHasMethod=0x0019e78b) Line 167 C++
xul.dll!mozilla::plugins::PluginScriptableObjectChild::ScriptableHasMethod(NPObject * aObject=0x008193e0, void * aName=0x00817730) Line 122 C++
xul.dll!mozilla::plugins::child::_hasmethod(_NPP * aNPP=0x00841074, NPObject * aNPObj=0x008193e0, void * aMethodName=0x00817730) Line 1401 + 0x7 bytes C++
npsp3dviewer.dll!01284fb6()
[Frames below may be incorrect and/or missing, no symbols loaded for npsp3dviewer.dll]
QtCore4.dll!670143d9()
QtCore4.dll!670e3df4()
npsp3dviewer.dll!012873d0()
npsp3dviewer.dll!01287851()
QtCore4.dll!670e3df4()
npsp3dviewer.dll!012b8d7e()
npsp3dviewer.dll!012bdab9()
npsp3dviewer.dll!012b8119()
kernel32.dll!_HeapFree@12() + 0x14 bytes
qt-mt338.dll!01c66437()
qt-mt338.dll!01b46585()
qt-mt338.dll!01ace555()
qt-mt338.dll!01a869b8()
qt-mt338.dll!01a87a46()
qt-mt338.dll!01a626db()
qt-mt338.dll!01a6579b()
qt-mt338.dll!01a65d70()
kernel32.dll!_HeapFree@12() + 0x14 bytes
> msvcr71.dll!free(void * pBlock=0x03e153f0) Line 103 C
00000206()
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb3 bytes
user32.dll!_CallWindowProcAorW@24() + 0x51 bytes
user32.dll!_CallWindowProcW@20() + 0x1b bytes
opengl32.dll!_wglWndProc@16() + 0x20e bytes
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb3 bytes
user32.dll!_DispatchClientMessage@20() + 0x4b bytes
user32.dll!___fnDWORD@4() + 0x24 bytes
ntdll.dll!_KiUserCallbackDispatcher@12() + 0x2e bytes
user32.dll!_NtUserPeekMessage@20() + 0xc bytes
user32.dll!__PeekMessage@24() + 0x2d bytes
user32.dll!_PeekMessageW@20() - 0x5fef bytes
xul.dll!base::MessagePumpForUI::ProcessNextWindowsMessage() Line 339 + 0x11 bytes C++
It appears that the plugin is making a NPRuntime call from within the scroll message being sent here: http://hg.mozilla.org/mozilla-central/annotate/7b62ac8e1715/widget/src/windows/nsWindow.cpp#l7648 Firefox is blocked in SendMessage and therefore not responding to RPC calls. I'm not sure whether that SendMessage is necessary, but if it is we probably need to be using SendMessageCallback and spinning an RPC loop here.
The workaround from the PoV of spaceyes3d is not to make npruntime calls from within scrollwheel message handlers, I think. If you have PDBs for spaceyes3d available, I could provide a more useful plugin-side stack.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Comment 6•14 years ago
|
||
> I'm not sure whether that SendMessage is necessary
Currently, we need to do it for supporting mouse wheel scroll in plugins.
However, I find a document in MSDN, according to that, we shouldn't send WM_MOUSE(H)WHEEL message to sub windows. And for DOM mouse wheel events, I think we should send the mouse wheel event via DOM event like key events in the future.
Comment 7•14 years ago
|
||
The question was not whether we should deliver the message, the question was whether we could PostMessage instead of SendMessage, because any SendMessage which may be processed by a plugin is a potential deadlock.
Comment 8•14 years ago
|
||
(In reply to comment #7)
> The question was not whether we should deliver the message, the question was
> whether we could PostMessage instead of SendMessage, because any SendMessage
> which may be processed by a plugin is a potential deadlock.
If we changed it as PostMessage, we cannot see whether the next WM_MOUSE(H)WHEEL message comes from mouse driver or the plugin window. So, don't do it.
Comment 9•14 years ago
|
||
Masayuki, please figure out a way to remove or fix this SendMessage, because SendMessage is a blocking call that we should not be making any more.
Assignee: nobody → masayuki
Comment 10•14 years ago
|
||
Wait, we unlock the SendMessage in PluginInstanceChild::PluginWindowProcInternal().
http://mxr.mozilla.org/mozilla-central/source/dom/plugins/ipc/PluginInstanceChild.cpp#1270
Why does this bug happen?
# Anyway, looks like our WM_MOUSEWHEEL handling has been completely broken by OOPP.
Comment 11•14 years ago
|
||
Hmmm, I installed the plugin but I cannot reproduce the hangup... I'm create a patch but I cannot test myself...
Comment 12•14 years ago
|
||
I succeeded to reproduce the bug. It seems that the plugin rewrites our profile for disabling OOPP forcibly :-(
Reporter | ||
Comment 13•14 years ago
|
||
(In reply to comment #12)
> I succeeded to reproduce the bug. It seems that the plugin rewrites our
> profile for disabling OOPP forcibly :-(
You are right. We have modified the setup of our plugin to add a settings to disable the execution of the plugin in OOP mode.
The previous setup is still available here :
http://www.spaceyes3d.com/plugin/download/SpacEyes3DViewerPlugin_4_1_0.exe
Sorry for the inconvenience.
Comment 14•14 years ago
|
||
This patch cannot fix this bug but it's helpful to remove SendMessage() from mouse wheel handling.
When nsWindow receives WM_MOUSEWHEEL or WM_MOUSEHWHEEL, this patch checks which window should handle it. It calls ProcessMessage() with internal message for preventing to make infinite message loop.
By this trick, the handlers can handle mouse wheel events simply even if cursor is on a plugin window because we can use PostMessage() for now.
Test builds will be here:
http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/masayuki@d-toybox.com-ea50275940dd
Attachment #537961 -
Flags: review?(jmathies)
Comment 15•14 years ago
|
||
Benjamin:
My patch make asynchronous mouse wheel handling completely. I.e., SendMessage() is now completely removed from mouse wheel message handling code. However, I still reproduce the hangup. So, There is another issue.
Comment 16•14 years ago
|
||
And I can reproduce this bug without mouse wheel operation...
Comment 17•14 years ago
|
||
removed unnecessary code from nsWindow::WindowProcInternal().
http://tbpl.mozilla.org/?tree=Try&rev=6ff9ec290198
http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/masayuki@d-toybox.com-6ff9ec290198
Attachment #537961 -
Attachment is obsolete: true
Attachment #537961 -
Flags: review?(jmathies)
Attachment #537964 -
Flags: review?(jmathies)
Comment 18•13 years ago
|
||
Masayuki, what are the stacks from the hang you are seeing? The stacks are the only thing that will guide us to a solution.
Comment 19•13 years ago
|
||
breaks firefox.exe after hanging-up.
> ntdll.dll!773e014d()
> [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
> ntdll.dll!773e014d()
> KernelBase.dll!76050962()
> kernel32.dll!75a71a2c()
> user32.dll!7666086a()
>> nspr4.dll!_PR_MD_UNLOCK(_MDLock * lock=0x177fe0d4) Line 347 C
> nspr4.dll!PR_Unlock(PRLock * lock=0x1786b888) Line 347 + 0xc bytes C
> 00000088()
> xul.dll!mozilla::ipc::RPCChannel::WaitForNotify() Line 919 + 0x1a bytes C++
> xul.dll!mozilla::ipc::RPCChannel::Call(IPC::Message * msg=0x16940e58, IPC::Message * reply=0x0039656c) Line 201 + 0xb bytes C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectParent::CallHasProperty(mozilla::plugins::PPluginIdentifierParent * aId=0x17920898, bool * aHasProperty=0x003965e7) Line 287 + 0x16 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectParent::ScriptableHasProperty(NPObject * aObject=0x0c7e6ed0, void * aName=0x0e62c4f0) Line 312 + 0x17 bytes C++
> xul.dll!NPObjWrapper_NewResolve(JSContext * cx=0x1784fa90, JSObject * obj=0x0ee7fe48, jsid id={...}, unsigned int flags=0x00000001, JSObject * * objp=0x0039667c) Line 1642 + 0x12 bytes C++
> mozjs.dll!CallResolveOp(JSContext * cx=0x1784fa90, JSObject * start=0x132f94a0, JSObject * obj=0x0ee7fe48, jsid id={...}, unsigned int flags=0x00000001, JSObject * * objp=0x00396724, JSProperty * * propp=0x00396718, bool * recursedp=0x003966cf) Line 4884 + 0x17 bytes C++
> mozjs.dll!LookupPropertyWithFlagsInline(JSContext * cx=0x1784fa90, JSObject * obj=0x0ee7fe48, jsid id={...}, unsigned int flags=0x00000001, JSObject * * objp=0x00396724, JSProperty * * propp=0x00396718) Line 4943 + 0x25 bytes C++
> mozjs.dll!js_GetPropertyHelperWithShapeInline(JSContext * cx=0x1784fa90, JSObject * obj=0x132f94a0, JSObject * receiver=0x132f94a0, jsid id={...}, unsigned int getHow=0x00000000, js::Value * vp=0x00396850, const js::Shape * * shapeOut=0x00396750, JSObject * * holderOut=0x00396754) Line 5317 + 0x23 bytes C++
> mozjs.dll!js_GetPropertyHelperInline(JSContext * cx=0x1784fa90, JSObject * obj=0x132f94a0, JSObject * receiver=0x132f94a0, jsid id={...}, unsigned int getHow=0x00000000, js::Value * vp=0x00396850) Line 5419 + 0x25 bytes C++
> mozjs.dll!js_GetProperty(JSContext * cx=0x1784fa90, JSObject * obj=0x132f94a0, JSObject * receiver=0x132f94a0, jsid id={...}, js::Value * vp=0x00396850) Line 5432 + 0x1b bytes C++
> mozjs.dll!JSObject::getProperty(JSContext * cx=0x1784fa90, JSObject * receiver=0x132f94a0, jsid id={...}, js::Value * vp=0x00396850) Line 1149 + 0x2c bytes C++
> mozjs.dll!JSObject::getProperty(JSContext * cx=0x1784fa90, jsid id={...}, js::Value * vp=0x00396850) Line 1154 C++
> mozjs.dll!JS_GetPropertyById(JSContext * cx=0x1784fa90, JSObject * obj=0x132f94a0, jsid id={...}, jsval_layout * vp=0x00396850) Line 3758 + 0x1d bytes C++
> xul.dll!GetProperty(JSContext * cx=0x1784fa90, JSObject * obj=0x132f94a0, void * id=0x0e62c4f0, jsval_layout * rval=0x00396850) Line 609 + 0x25 bytes C++
> xul.dll!nsJSObjWrapper::NP_HasMethod(NPObject * npobj=0x0c7e6c90, void * id=0x0e62c4f0) Line 642 + 0x18 bytes C++
> xul.dll!mozilla::plugins::parent::_hasmethod(_NPP * npp=0x0cab9234, NPObject * npobj=0x0c7e6c90, void * methodName=0x0e62c4f0) Line 1857 + 0x12 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectParent::AnswerHasMethod(mozilla::plugins::PPluginIdentifierParent * aId=0x17920898, bool * aHasMethod=0x00396d0f) Line 727 + 0x24 bytes C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectParent::OnCallReceived(const IPC::Message & __msg={...}, IPC::Message * & __reply=0x00000000) Line 726 + 0x1b bytes C++
> xul.dll!mozilla::plugins::PPluginModuleParent::OnCallReceived(const IPC::Message & __msg={...}, IPC::Message * & __reply=0x00000000) Line 936 + 0x15 bytes C++
> xul.dll!mozilla::ipc::RPCChannel::DispatchIncall(const IPC::Message & call={...}) Line 516 + 0x20 bytes C++
> xul.dll!mozilla::ipc::RPCChannel::Incall(const IPC::Message & call={...}, unsigned int stackDepth=0x00000001) Line 503 C++
> xul.dll!mozilla::ipc::RPCChannel::Call(IPC::Message * msg=0x16940e58, IPC::Message * reply=0x003970c4) Line 312 C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectParent::CallInvoke(mozilla::plugins::PPluginIdentifierParent * aId=0x179205c8, const InfallibleTArray<mozilla::plugins::Variant> & aArgs={...}, mozilla::plugins::Variant * aResult=0x00397148, bool * aSuccess=0x0039715f) Line 196 + 0x16 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectParent::ScriptableInvoke(NPObject * aObject=0x0c7e6ed0, void * aName=0x0eee1420, const _NPVariant * aArgs=0x003971bc, unsigned int aArgCount=0x00000002, _NPVariant * aResult=0x00397264) Line 218 + 0x24 bytes C++
> xul.dll!CallNPMethodInternal(JSContext * cx=0x1784fa90, JSObject * obj=0x0ee7fe48, unsigned int argc=0x00000002, jsval_layout * argv=0x08520308, jsval_layout * rval=0x085202f8, int ctorCall=0x00000000) Line 1483 + 0x24 bytes C++
> xul.dll!CallNPMethod(JSContext * cx=0x1784fa90, unsigned int argc=0x00000002, jsval_layout * vp=0x085202f8) Line 1536 + 0x1e bytes C++
> mozjs.dll!js::CallJSNative(JSContext * cx=0x1784fa90, int (JSContext *, unsigned int, js::Value *)* native=0x584c6ba0, const js::CallArgs & args={...}) Line 282 + 0x19 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 656 + 0x14 bytes C++
> mozjs.dll!js::Interpret(JSContext * cx=0x1784fa90, js::StackFrame * entryFrame=0x085201f8, js::InterpMode interpMode=JSINTERP_NORMAL) Line 4553 + 0x12 bytes C++
> mozjs.dll!js::RunScript(JSContext * cx=0x1784fa90, JSScript * script=0x174bed18, js::StackFrame * fp=0x085201f8) Line 613 + 0xf bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 686 + 0x11 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 169 + 0x1a bytes C++
> mozjs.dll!js_fun_call(JSContext * cx=0x1784fa90, unsigned int argc=0x00000001, js::Value * vp=0x085201b0) Line 2148 + 0xf bytes C++
> mozjs.dll!js::CallJSNative(JSContext * cx=0x1784fa90, int (JSContext *, unsigned int, js::Value *)* native=0x5c52d5c6, const js::CallArgs & args={...}) Line 282 + 0x19 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 656 + 0x14 bytes C++
> mozjs.dll!js::Interpret(JSContext * cx=0x1784fa90, js::StackFrame * entryFrame=0x08520180, js::InterpMode interpMode=JSINTERP_NORMAL) Line 4553 + 0x12 bytes C++
> mozjs.dll!js::RunScript(JSContext * cx=0x1784fa90, JSScript * script=0x0bc864a8, js::StackFrame * fp=0x08520180) Line 613 + 0xf bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 686 + 0x11 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 169 + 0x1a bytes C++
> mozjs.dll!js::ExternalInvoke(JSContext * cx=0x1784fa90, const js::Value & thisv={...}, const js::Value & fval={...}, unsigned int argc=0x00000001, js::Value * argv=0x00399da8, js::Value * rval=0x00399d68) Line 805 + 0xf bytes C++
> mozjs.dll!JS_CallFunctionValue(JSContext * cx=0x1784fa90, JSObject * obj=0x0ee832e0, jsval_layout fval={...}, unsigned int argc=0x00000001, jsval_layout * argv=0x00399da8, jsval_layout * rval=0x00399d68) Line 5088 + 0x45 bytes C++
> xul.dll!nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS * wrapper=0x17aa3e68, unsigned short methodIndex=0x0003, const XPTMethodDescriptor * info=0x073bcd40, nsXPTCMiniVariant * nativeParams=0x00399e8c) Line 1662 + 0x38 bytes C++
> xul.dll!nsXPCWrappedJS::CallMethod(unsigned short methodIndex=0x0003, const XPTMethodDescriptor * info=0x073bcd40, nsXPTCMiniVariant * params=0x00399e8c) Line 587 C++
> xul.dll!PrepareAndDispatch(nsXPTCStubBase * self=0x1748b7e0, unsigned int methodIndex=0x00000003, unsigned int * args=0x00399f4c, unsigned int * stackBytesToPop=0x00399f3c) Line 114 + 0x21 bytes C++
> xul.dll!SharedStub() Line 142 C++
> xul.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct=0x0c52a8d8, nsIDOMEventListener * aListener=0x1748b7e0, nsIDOMEvent * aDOMEvent=0x17a1d2d0, nsPIDOMEventTarget * aCurrentTarget=0x0c6879a8, unsigned int aPhaseFlags=0x00000006, nsCxPusher * aPusher=0x0039a2b0) Line 1136 + 0x12 bytes C++
> xul.dll!nsEventListenerManager::HandleEventInternal(nsPresContext * aPresContext=0x0bca77a8, nsEvent * aEvent=0x17a1d330, nsIDOMEvent * * aDOMEvent=0x0039a2a0, nsPIDOMEventTarget * aCurrentTarget=0x0c6879a8, unsigned int aFlags=0x00000006, nsEventStatus * aEventStatus=0x0039a2a4, nsCxPusher * aPusher=0x0039a2b0) Line 1233 + 0x27 bytes C++
> xul.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext=0x0bca77a8, nsEvent * aEvent=0x17a1d330, nsIDOMEvent * * aDOMEvent=0x0039a2a0, nsPIDOMEventTarget * aCurrentTarget=0x0c6879a8, unsigned int aFlags=0x00000006, nsEventStatus * aEventStatus=0x0039a2a4, nsCxPusher * aPusher=0x0039a2b0) Line 147 C++
> xul.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006, int aMayHaveNewListenerManagers=0x00000000, nsCxPusher * aPusher=0x0039a2b0) Line 216 C++
> xul.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006, nsDispatchingCallback * aCallback=0x00000000, int aMayHaveNewListenerManagers=0x00000000, nsCxPusher * aPusher=0x0039a2b0) Line 346 C++
> xul.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x0c6879a8, nsPresContext * aPresContext=0x0bca77a8, nsEvent * aEvent=0x17a1d330, nsIDOMEvent * aDOMEvent=0x17a1d2d0, nsEventStatus * aEventStatus=0x0039a3c0, nsDispatchingCallback * aCallback=0x00000000, nsCOMArray<nsPIDOMEventTarget> * aTargets=0x00000000) Line 648 + 0x1e bytes C++
> xul.dll!nsEventDispatcher::DispatchDOMEvent(nsISupports * aTarget=0x0c6879a8, nsEvent * aEvent=0x00000000, nsIDOMEvent * aDOMEvent=0x17a1d2d0, nsPresContext * aPresContext=0x0bca77a8, nsEventStatus * aEventStatus=0x0039a3c0) Line 711 + 0x1d bytes C++
> xul.dll!nsDocument::DispatchEvent(nsIDOMEvent * aEvent=0x17a1d2d0, int * _retval=0x0039a40c) Line 6305 + 0x22 bytes C++
> xul.dll!nsIDOMEventTarget_DispatchEvent(JSContext * cx=0x1784fa90, unsigned int argc=0x00000001, jsval_layout * vp=0x08520150) Line 14036 + 0x16 bytes C++
> mozjs.dll!js::CallJSNative(JSContext * cx=0x1784fa90, int (JSContext *, unsigned int, js::Value *)* native=0x582d3f00, const js::CallArgs & args={...}) Line 282 + 0x19 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 656 + 0x14 bytes C++
> mozjs.dll!js::Interpret(JSContext * cx=0x1784fa90, js::StackFrame * entryFrame=0x08520118, js::InterpMode interpMode=JSINTERP_NORMAL) Line 4553 + 0x12 bytes C++
> mozjs.dll!js::RunScript(JSContext * cx=0x1784fa90, JSScript * script=0x0c65ce20, js::StackFrame * fp=0x08520118) Line 613 + 0xf bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 686 + 0x11 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 169 + 0x1a bytes C++
> mozjs.dll!js_fun_apply(JSContext * cx=0x1784fa90, unsigned int argc=0x00000002, js::Value * vp=0x085200c8) Line 2203 + 0xf bytes C++
> mozjs.dll!js::CallJSNative(JSContext * cx=0x1784fa90, int (JSContext *, unsigned int, js::Value *)* native=0x5c529c9b, const js::CallArgs & args={...}) Line 282 + 0x19 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 656 + 0x14 bytes C++
> mozjs.dll!js::Interpret(JSContext * cx=0x1784fa90, js::StackFrame * entryFrame=0x08520038, js::InterpMode interpMode=JSINTERP_NORMAL) Line 4553 + 0x12 bytes C++
> mozjs.dll!js::RunScript(JSContext * cx=0x1784fa90, JSScript * script=0x08d94720, js::StackFrame * fp=0x08520038) Line 613 + 0xf bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 686 + 0x11 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x1784fa90, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 169 + 0x1a bytes C++
> mozjs.dll!js::ExternalInvoke(JSContext * cx=0x1784fa90, const js::Value & thisv={...}, const js::Value & fval={...}, unsigned int argc=0x00000001, js::Value * argv=0x0039cf2c, js::Value * rval=0x0039ceec) Line 805 + 0xf bytes C++
> mozjs.dll!JS_CallFunctionValue(JSContext * cx=0x1784fa90, JSObject * obj=0x0ee832e0, jsval_layout fval={...}, unsigned int argc=0x00000001, jsval_layout * argv=0x0039cf2c, jsval_layout * rval=0x0039ceec) Line 5088 + 0x45 bytes C++
> xul.dll!nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS * wrapper=0x17aa0d68, unsigned short methodIndex=0x0003, const XPTMethodDescriptor * info=0x073bcd40, nsXPTCMiniVariant * nativeParams=0x0039d010) Line 1662 + 0x38 bytes C++
> xul.dll!nsXPCWrappedJS::CallMethod(unsigned short methodIndex=0x0003, const XPTMethodDescriptor * info=0x073bcd40, nsXPTCMiniVariant * params=0x0039d010) Line 587 C++
> xul.dll!PrepareAndDispatch(nsXPTCStubBase * self=0x1748dd48, unsigned int methodIndex=0x00000003, unsigned int * args=0x0039d0d0, unsigned int * stackBytesToPop=0x0039d0c0) Line 114 + 0x21 bytes C++
> xul.dll!SharedStub() Line 142 C++
> xul.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct=0x0c52a8c0, nsIDOMEventListener * aListener=0x1748dd48, nsIDOMEvent * aDOMEvent=0x17a1d150, nsPIDOMEventTarget * aCurrentTarget=0x0c6879a8, unsigned int aPhaseFlags=0x00000006, nsCxPusher * aPusher=0x0039d434) Line 1136 + 0x12 bytes C++
> xul.dll!nsEventListenerManager::HandleEventInternal(nsPresContext * aPresContext=0x0bca77a8, nsEvent * aEvent=0x17a1d1b0, nsIDOMEvent * * aDOMEvent=0x0039d424, nsPIDOMEventTarget * aCurrentTarget=0x0c6879a8, unsigned int aFlags=0x00000006, nsEventStatus * aEventStatus=0x0039d428, nsCxPusher * aPusher=0x0039d434) Line 1233 + 0x27 bytes C++
> xul.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext=0x0bca77a8, nsEvent * aEvent=0x17a1d1b0, nsIDOMEvent * * aDOMEvent=0x0039d424, nsPIDOMEventTarget * aCurrentTarget=0x0c6879a8, unsigned int aFlags=0x00000006, nsEventStatus * aEventStatus=0x0039d428, nsCxPusher * aPusher=0x0039d434) Line 147 C++
> xul.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006, int aMayHaveNewListenerManagers=0x00000000, nsCxPusher * aPusher=0x0039d434) Line 216 C++
> xul.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006, nsDispatchingCallback * aCallback=0x00000000, int aMayHaveNewListenerManagers=0x00000000, nsCxPusher * aPusher=0x0039d434) Line 346 C++
> xul.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x0c6879a8, nsPresContext * aPresContext=0x0bca77a8, nsEvent * aEvent=0x17a1d1b0, nsIDOMEvent * aDOMEvent=0x17a1d150, nsEventStatus * aEventStatus=0x0039d544, nsDispatchingCallback * aCallback=0x00000000, nsCOMArray<nsPIDOMEventTarget> * aTargets=0x00000000) Line 648 + 0x1e bytes C++
> xul.dll!nsEventDispatcher::DispatchDOMEvent(nsISupports * aTarget=0x0c6879a8, nsEvent * aEvent=0x00000000, nsIDOMEvent * aDOMEvent=0x17a1d150, nsPresContext * aPresContext=0x0bca77a8, nsEventStatus * aEventStatus=0x0039d544) Line 711 + 0x1d bytes C++
> xul.dll!nsDocument::DispatchEvent(nsIDOMEvent * aEvent=0x17a1d150, int * _retval=0x0039d590) Line 6305 + 0x22 bytes C++
> xul.dll!nsContentUtils::DispatchTrustedEvent(nsIDocument * aDoc=0x0c6879a8, nsISupports * aTarget=0x0c6879a8, const nsAString_internal & aEventName={...}, int aCanBubble=0x00000001, int aCancelable=0x00000001, int * aDefaultAction=0x00000000) Line 3034 + 0x3a bytes C++
> xul.dll!nsDocument::DispatchContentLoadedEvents() Line 4118 + 0x23 bytes C++
> xul.dll!nsRunnableMethodImpl<void (__thiscall nsDocument::*)(void),1>::Run() Line 342 C++
> xul.dll!nsThread::ProcessNextEvent(int mayWait=0x00000000, int * result=0x0039d6bc) Line 618 + 0x19 bytes C++
> xul.dll!NS_ProcessNextEvent_P(nsIThread * thread=0x0054d220, int mayWait=0x00000000) Line 245 + 0x16 bytes C++
> xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate=0x0059c5f0) Line 110 + 0xe bytes C++
> xul.dll!MessageLoop::RunInternal() Line 219 C++
> xul.dll!MessageLoop::RunHandler() Line 203 C++
> xul.dll!MessageLoop::Run() Line 177 C++
> xul.dll!nsBaseAppShell::Run() Line 191 C++
> xul.dll!nsAppShell::Run() Line 249 + 0x9 bytes C++
> xul.dll!nsAppStartup::Run() Line 222 + 0x1c bytes C++
> xul.dll!XRE_main(int argc=0x00000004, char * * argv=0x0054d780, const nsXREAppData * aAppData=0x0058f478) Line 3700 + 0x25 bytes C++
> firefox.exe!NS_internal_main(int argc=0x00000004, char * * argv=0x0054d780) Line 158 + 0x12 bytes C++
> firefox.exe!wmain(int argc=0x00000004, wchar_t * * argv=0x0054eba8) Line 106 + 0xd bytes C++
> firefox.exe!__tmainCRTStartup() Line 583 + 0x19 bytes C
> firefox.exe!wmainCRTStartup() Line 403 C
> kernel32.dll!75a733ca()
> ntdll.dll!773f9ed2()
> ntdll.dll!773f9ea5()
plugin-container.exe
> ntdll.dll!773e014d()
> [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
> ntdll.dll!773e014d()
> KernelBase.dll!76050962()
> kernel32.dll!75a71a2c()
> user32.dll!7666086a()
>> nspr4.dll!_PR_MD_UNLOCK(_MDLock * lock=0x0062d134) Line 347 C
> nspr4.dll!PR_Unlock(PRLock * lock=0x00543290) Line 347 + 0xc bytes C
> 00000084()
> xul.dll!mozilla::ipc::RPCChannel::WaitForNotify() Line 919 + 0x1a bytes C++
> xul.dll!mozilla::ipc::RPCChannel::Call(IPC::Message * msg=0x00547518, IPC::Message * reply=0x002cbb6c) Line 201 + 0xb bytes C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectChild::CallHasMethod(mozilla::plugins::PPluginIdentifierChild * aId=0x005392c8, bool * aHasMethod=0x002cbbe7) Line 167 + 0x16 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectChild::ScriptableHasMethod(NPObject * aObject=0x0062dc98, void * aName=0x005392c8) Line 122 C++
> xul.dll!mozilla::plugins::child::_hasmethod(_NPP * aNPP=0x00545f3c, NPObject * aNPObj=0x0062dc98, void * aMethodName=0x005392c8) Line 1416 + 0x12 bytes C++
> npsp3dviewer.dll!02704fb6()
> QtGui4.dll!650564ac()
> QtCore4.dll!670143d9()
> QtCore4.dll!670e3df4()
> npsp3dviewer.dll!0270711c()
> npsp3dviewer.dll!0270775d()
> QtCore4.dll!670e3df4()
> npsp3dviewer.dll!02738d7e()
> QtCore4.dll!671214ab()
> QtGui4.dll!65040dcc()
> sp3d_viewer_ax.dll!39d152bd()
> qt-mt338.dll!03b20180()
> qt-mt338.dll!03b20424()
> sp3d_viewer_ax.dll!39ee87b2()
> sp3d_viewer_ax.dll!39eb4978()
> qt-mt338.dll!03b3e3f4()
> qt-mt338.dll!03af69b8()
> qt-mt338.dll!03af7888()
> qt-mt338.dll!03ad26b7()
> qt-mt338.dll!03aef8e3()
> qt-mt338.dll!03b40b43()
> qt-mt338.dll!03af30c3()
> qt-mt338.dll!03b1621c()
> user32.dll!766562fa()
> user32.dll!76657038()
> user32.dll!76656d3a()
> user32.dll!76656ce9()
> user32.dll!76656de8()
> user32.dll!76656e44()
> ntdll.dll!773d011a()
> user32.dll!766572b9()
> user32.dll!7667d4eb()
> user32.dll!7665692a()
> user32.dll!76657316()
> user32.dll!76656ce9()
> user32.dll!76656de8()
> user32.dll!76658fa7()
> ntdll.dll!773d011a()
> user32.dll!76658e63()
> sp3d_viewer_ax.dll!39d18b37()
> npsp3dviewer.dll!0273d3c7()
> npsp3dviewer.dll!0273d3d5()
> QtGui4.dll!65052fee()
> user32.dll!766562fa()
> QtGui4.dll!65265b0d()
> npsp3dviewer.dll!0273d5c3()
> QtGui4.dll!65013932()
> QtGui4.dll!65013946()
> QtGui4.dll!65017589()
> user32.dll!76658fa7()
> ntdll.dll!773df8da()
> user32.dll!76658fba()
> ntdll.dll!773d011a()
> user32.dll!766636ad()
> QtGui4.dll!6506eb8e()
> QtCore4.dll!670d3423()
> QtCore4.dll!670d3c71()
> QtGui4.dll!6506f6a4()
> QtGui4.dll!65051ab7()
> npsp3dviewer.dll!0273dc8c()
> QtGui4.dll!65052fee()
> user32.dll!766562fa()
> QtGui4.dll!65265b0d()
> QtCore4.dll!670d3d83()
> QtGui4.dll!65013946()
> QtGui4.dll!65017589()
> user32.dll!76658fa7()
> ntdll.dll!773df8da()
> user32.dll!76658fba()
> ntdll.dll!773d011a()
> user32.dll!766636ad()
> QtGui4.dll!6506eb8e()
> QtCore4.dll!670d3423()
> QtCore4.dll!670d3c71()
> QtGui4.dll!6506f6a4()
> atioglxx.dll!09291811()
> npsp3dviewer.dll!026d15ca()
> QtGui4.dll!65052fee()
> QtGui4.dll!65265b0d()
> QtCore4.dll!670d3d83()
> QtGui4.dll!65013946()
> QtGui4.dll!65017589()
> msvcr71.dll!7c35423c()
> msvcr71.dll!7c353ef4()
> msvcr71.dll!7c34218f()
> ntdll.dll!773f3cce()
> ntdll.dll!773f0159()
> ntdll.dll!773ff993()
> ntdll.dll!773fb375()
> ntdll.dll!773f9ea5()
Comment 20•13 years ago
|
||
Sorry, here is stack with debug symbols of Win7.
firefox.exe
> ntdll.dll!_NtWaitForMultipleObjects@20() + 0x15 bytes
> ntdll.dll!_NtWaitForMultipleObjects@20() + 0x15 bytes
> user32.dll!_CallHookWithSEH@16() + 0x33 bytes
> kernel32.dll!_WaitForMultipleObjectsExImplementation@20() + 0x8e bytes
> user32.dll!_RealMsgWaitForMultipleObjectsEx@20() + 0xe2 bytes
> user32.dll!_MsgWaitForMultipleObjects@20() + 0x1f bytes
>> xul.dll!mozilla::ipc::RPCChannel::WaitForNotify() Line 919 + 0x1a bytes C++
> xul.dll!mozilla::ipc::RPCChannel::Call(IPC::Message * msg=0x15892710, IPC::Message * reply=0x00306528) Line 201 + 0xb bytes C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectParent::CallHasProperty(mozilla::plugins::PPluginIdentifierParent * aId=0x0e4ea258, bool * aHasProperty=0x003065a3) Line 287 + 0x16 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectParent::ScriptableHasProperty(NPObject * aObject=0x0df8cbb8, void * aName=0x0d263680) Line 312 + 0x17 bytes C++
> xul.dll!NPObjWrapper_NewResolve(JSContext * cx=0x0c0ad550, JSObject * obj=0x0d2ac150, jsid id={...}, unsigned int flags=0x00000001, JSObject * * objp=0x00306638) Line 1642 + 0x12 bytes C++
> mozjs.dll!CallResolveOp(JSContext * cx=0x0c0ad550, JSObject * start=0x0d2b14a0, JSObject * obj=0x0d2ac150, jsid id={...}, unsigned int flags=0x00000001, JSObject * * objp=0x003066e0, JSProperty * * propp=0x003066d4, bool * recursedp=0x0030668b) Line 4884 + 0x17 bytes C++
> mozjs.dll!LookupPropertyWithFlagsInline(JSContext * cx=0x0c0ad550, JSObject * obj=0x0d2ac150, jsid id={...}, unsigned int flags=0x00000001, JSObject * * objp=0x003066e0, JSProperty * * propp=0x003066d4) Line 4943 + 0x25 bytes C++
> mozjs.dll!js_GetPropertyHelperWithShapeInline(JSContext * cx=0x0c0ad550, JSObject * obj=0x0d2b14a0, JSObject * receiver=0x0d2b14a0, jsid id={...}, unsigned int getHow=0x00000000, js::Value * vp=0x0030680c, const js::Shape * * shapeOut=0x0030670c, JSObject * * holderOut=0x00306710) Line 5317 + 0x23 bytes C++
> mozjs.dll!js_GetPropertyHelperInline(JSContext * cx=0x0c0ad550, JSObject * obj=0x0d2b14a0, JSObject * receiver=0x0d2b14a0, jsid id={...}, unsigned int getHow=0x00000000, js::Value * vp=0x0030680c) Line 5419 + 0x25 bytes C++
> mozjs.dll!js_GetProperty(JSContext * cx=0x0c0ad550, JSObject * obj=0x0d2b14a0, JSObject * receiver=0x0d2b14a0, jsid id={...}, js::Value * vp=0x0030680c) Line 5432 + 0x1b bytes C++
> mozjs.dll!JSObject::getProperty(JSContext * cx=0x0c0ad550, JSObject * receiver=0x0d2b14a0, jsid id={...}, js::Value * vp=0x0030680c) Line 1149 + 0x2c bytes C++
> mozjs.dll!JSObject::getProperty(JSContext * cx=0x0c0ad550, jsid id={...}, js::Value * vp=0x0030680c) Line 1154 C++
> mozjs.dll!JS_GetPropertyById(JSContext * cx=0x0c0ad550, JSObject * obj=0x0d2b14a0, jsid id={...}, jsval_layout * vp=0x0030680c) Line 3758 + 0x1d bytes C++
> xul.dll!GetProperty(JSContext * cx=0x0c0ad550, JSObject * obj=0x0d2b14a0, void * id=0x0d263680, jsval_layout * rval=0x0030680c) Line 609 + 0x25 bytes C++
> xul.dll!nsJSObjWrapper::NP_HasMethod(NPObject * npobj=0x0e2184e0, void * id=0x0d263680) Line 642 + 0x18 bytes C++
> xul.dll!mozilla::plugins::parent::_hasmethod(_NPP * npp=0x0c050b1c, NPObject * npobj=0x0e2184e0, void * methodName=0x0d263680) Line 1857 + 0x12 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectParent::AnswerHasMethod(mozilla::plugins::PPluginIdentifierParent * aId=0x0e4ea258, bool * aHasMethod=0x00306ccb) Line 727 + 0x24 bytes C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectParent::OnCallReceived(const IPC::Message & __msg={...}, IPC::Message * & __reply=0x00000000) Line 726 + 0x1b bytes C++
> xul.dll!mozilla::plugins::PPluginModuleParent::OnCallReceived(const IPC::Message & __msg={...}, IPC::Message * & __reply=0x00000000) Line 936 + 0x15 bytes C++
> xul.dll!mozilla::ipc::RPCChannel::DispatchIncall(const IPC::Message & call={...}) Line 516 + 0x20 bytes C++
> xul.dll!mozilla::ipc::RPCChannel::Incall(const IPC::Message & call={...}, unsigned int stackDepth=0x00000001) Line 503 C++
> xul.dll!mozilla::ipc::RPCChannel::Call(IPC::Message * msg=0x15892710, IPC::Message * reply=0x00307080) Line 312 C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectParent::CallInvoke(mozilla::plugins::PPluginIdentifierParent * aId=0x0e4ea018, const InfallibleTArray<mozilla::plugins::Variant> & aArgs={...}, mozilla::plugins::Variant * aResult=0x00307104, bool * aSuccess=0x0030711b) Line 196 + 0x16 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectParent::ScriptableInvoke(NPObject * aObject=0x0df8cbb8, void * aName=0x1412d5a0, const _NPVariant * aArgs=0x00307178, unsigned int aArgCount=0x00000002, _NPVariant * aResult=0x00307220) Line 218 + 0x24 bytes C++
> xul.dll!CallNPMethodInternal(JSContext * cx=0x0c0ad550, JSObject * obj=0x0d2ac150, unsigned int argc=0x00000002, jsval_layout * argv=0x08470308, jsval_layout * rval=0x084702f8, int ctorCall=0x00000000) Line 1483 + 0x24 bytes C++
> xul.dll!CallNPMethod(JSContext * cx=0x0c0ad550, unsigned int argc=0x00000002, jsval_layout * vp=0x084702f8) Line 1536 + 0x1e bytes C++
> mozjs.dll!js::CallJSNative(JSContext * cx=0x0c0ad550, int (JSContext *, unsigned int, js::Value *)* native=0x584c6ba0, const js::CallArgs & args={...}) Line 282 + 0x19 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 656 + 0x14 bytes C++
> mozjs.dll!js::Interpret(JSContext * cx=0x0c0ad550, js::StackFrame * entryFrame=0x084701f8, js::InterpMode interpMode=JSINTERP_NORMAL) Line 4553 + 0x12 bytes C++
> mozjs.dll!js::RunScript(JSContext * cx=0x0c0ad550, JSScript * script=0x0ea99358, js::StackFrame * fp=0x084701f8) Line 613 + 0xf bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 686 + 0x11 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 169 + 0x1a bytes C++
> mozjs.dll!js_fun_call(JSContext * cx=0x0c0ad550, unsigned int argc=0x00000001, js::Value * vp=0x084701b0) Line 2148 + 0xf bytes C++
> mozjs.dll!js::CallJSNative(JSContext * cx=0x0c0ad550, int (JSContext *, unsigned int, js::Value *)* native=0x5c52d5c6, const js::CallArgs & args={...}) Line 282 + 0x19 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 656 + 0x14 bytes C++
> mozjs.dll!js::Interpret(JSContext * cx=0x0c0ad550, js::StackFrame * entryFrame=0x08470180, js::InterpMode interpMode=JSINTERP_NORMAL) Line 4553 + 0x12 bytes C++
> mozjs.dll!js::RunScript(JSContext * cx=0x0c0ad550, JSScript * script=0x0edaf010, js::StackFrame * fp=0x08470180) Line 613 + 0xf bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 686 + 0x11 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 169 + 0x1a bytes C++
> mozjs.dll!js::ExternalInvoke(JSContext * cx=0x0c0ad550, const js::Value & thisv={...}, const js::Value & fval={...}, unsigned int argc=0x00000001, js::Value * argv=0x00309d64, js::Value * rval=0x00309d24) Line 805 + 0xf bytes C++
> mozjs.dll!JS_CallFunctionValue(JSContext * cx=0x0c0ad550, JSObject * obj=0x0d01c698, jsval_layout fval={...}, unsigned int argc=0x00000001, jsval_layout * argv=0x00309d64, jsval_layout * rval=0x00309d24) Line 5088 + 0x45 bytes C++
> xul.dll!nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS * wrapper=0x08c16d40, unsigned short methodIndex=0x0003, const XPTMethodDescriptor * info=0x073c8e98, nsXPTCMiniVariant * nativeParams=0x00309e48) Line 1662 + 0x38 bytes C++
> xul.dll!nsXPCWrappedJS::CallMethod(unsigned short methodIndex=0x0003, const XPTMethodDescriptor * info=0x073c8e98, nsXPTCMiniVariant * params=0x00309e48) Line 587 C++
> xul.dll!PrepareAndDispatch(nsXPTCStubBase * self=0x158a7338, unsigned int methodIndex=0x00000003, unsigned int * args=0x00309f08, unsigned int * stackBytesToPop=0x00309ef8) Line 114 + 0x21 bytes C++
> xul.dll!SharedStub() Line 142 C++
> xul.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct=0x0e235100, nsIDOMEventListener * aListener=0x158a7338, nsIDOMEvent * aDOMEvent=0x0df39fe8, nsPIDOMEventTarget * aCurrentTarget=0x08ba3d90, unsigned int aPhaseFlags=0x00000006, nsCxPusher * aPusher=0x0030a26c) Line 1136 + 0x12 bytes C++
> xul.dll!nsEventListenerManager::HandleEventInternal(nsPresContext * aPresContext=0x15e14580, nsEvent * aEvent=0x0df39028, nsIDOMEvent * * aDOMEvent=0x0030a25c, nsPIDOMEventTarget * aCurrentTarget=0x08ba3d90, unsigned int aFlags=0x00000006, nsEventStatus * aEventStatus=0x0030a260, nsCxPusher * aPusher=0x0030a26c) Line 1233 + 0x27 bytes C++
> xul.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext=0x15e14580, nsEvent * aEvent=0x0df39028, nsIDOMEvent * * aDOMEvent=0x0030a25c, nsPIDOMEventTarget * aCurrentTarget=0x08ba3d90, unsigned int aFlags=0x00000006, nsEventStatus * aEventStatus=0x0030a260, nsCxPusher * aPusher=0x0030a26c) Line 147 C++
> xul.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006, int aMayHaveNewListenerManagers=0x00000000, nsCxPusher * aPusher=0x0030a26c) Line 216 C++
> xul.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006, nsDispatchingCallback * aCallback=0x00000000, int aMayHaveNewListenerManagers=0x00000000, nsCxPusher * aPusher=0x0030a26c) Line 346 C++
> xul.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x08ba3d90, nsPresContext * aPresContext=0x15e14580, nsEvent * aEvent=0x0df39028, nsIDOMEvent * aDOMEvent=0x0df39fe8, nsEventStatus * aEventStatus=0x0030a37c, nsDispatchingCallback * aCallback=0x00000000, nsCOMArray<nsPIDOMEventTarget> * aTargets=0x00000000) Line 648 + 0x1e bytes C++
> xul.dll!nsEventDispatcher::DispatchDOMEvent(nsISupports * aTarget=0x08ba3d90, nsEvent * aEvent=0x00000000, nsIDOMEvent * aDOMEvent=0x0df39fe8, nsPresContext * aPresContext=0x15e14580, nsEventStatus * aEventStatus=0x0030a37c) Line 711 + 0x1d bytes C++
> xul.dll!nsDocument::DispatchEvent(nsIDOMEvent * aEvent=0x0df39fe8, int * _retval=0x0030a3c8) Line 6305 + 0x22 bytes C++
> xul.dll!nsIDOMEventTarget_DispatchEvent(JSContext * cx=0x0c0ad550, unsigned int argc=0x00000001, jsval_layout * vp=0x08470150) Line 14036 + 0x16 bytes C++
> mozjs.dll!js::CallJSNative(JSContext * cx=0x0c0ad550, int (JSContext *, unsigned int, js::Value *)* native=0x582d3f00, const js::CallArgs & args={...}) Line 282 + 0x19 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 656 + 0x14 bytes C++
> mozjs.dll!js::Interpret(JSContext * cx=0x0c0ad550, js::StackFrame * entryFrame=0x08470118, js::InterpMode interpMode=JSINTERP_NORMAL) Line 4553 + 0x12 bytes C++
> mozjs.dll!js::RunScript(JSContext * cx=0x0c0ad550, JSScript * script=0x0c0ccd30, js::StackFrame * fp=0x08470118) Line 613 + 0xf bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 686 + 0x11 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 169 + 0x1a bytes C++
> mozjs.dll!js_fun_apply(JSContext * cx=0x0c0ad550, unsigned int argc=0x00000002, js::Value * vp=0x084700c8) Line 2203 + 0xf bytes C++
> mozjs.dll!js::CallJSNative(JSContext * cx=0x0c0ad550, int (JSContext *, unsigned int, js::Value *)* native=0x5c529c9b, const js::CallArgs & args={...}) Line 282 + 0x19 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 656 + 0x14 bytes C++
> mozjs.dll!js::Interpret(JSContext * cx=0x0c0ad550, js::StackFrame * entryFrame=0x08470038, js::InterpMode interpMode=JSINTERP_NORMAL) Line 4553 + 0x12 bytes C++
> mozjs.dll!js::RunScript(JSContext * cx=0x0c0ad550, JSScript * script=0x0e902870, js::StackFrame * fp=0x08470038) Line 613 + 0xf bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 686 + 0x11 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x0c0ad550, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 169 + 0x1a bytes C++
> mozjs.dll!js::ExternalInvoke(JSContext * cx=0x0c0ad550, const js::Value & thisv={...}, const js::Value & fval={...}, unsigned int argc=0x00000001, js::Value * argv=0x0030cee8, js::Value * rval=0x0030cea8) Line 805 + 0xf bytes C++
> mozjs.dll!JS_CallFunctionValue(JSContext * cx=0x0c0ad550, JSObject * obj=0x0d01c698, jsval_layout fval={...}, unsigned int argc=0x00000001, jsval_layout * argv=0x0030cee8, jsval_layout * rval=0x0030cea8) Line 5088 + 0x45 bytes C++
> xul.dll!nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS * wrapper=0x0ea5c658, unsigned short methodIndex=0x0003, const XPTMethodDescriptor * info=0x073c8e98, nsXPTCMiniVariant * nativeParams=0x0030cfcc) Line 1662 + 0x38 bytes C++
> xul.dll!nsXPCWrappedJS::CallMethod(unsigned short methodIndex=0x0003, const XPTMethodDescriptor * info=0x073c8e98, nsXPTCMiniVariant * params=0x0030cfcc) Line 587 C++
> xul.dll!PrepareAndDispatch(nsXPTCStubBase * self=0x0e387318, unsigned int methodIndex=0x00000003, unsigned int * args=0x0030d08c, unsigned int * stackBytesToPop=0x0030d07c) Line 114 + 0x21 bytes C++
> xul.dll!SharedStub() Line 142 C++
> xul.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct=0x0e2350e8, nsIDOMEventListener * aListener=0x0e387318, nsIDOMEvent * aDOMEvent=0x0df38368, nsPIDOMEventTarget * aCurrentTarget=0x08ba3d90, unsigned int aPhaseFlags=0x00000006, nsCxPusher * aPusher=0x0030d3f0) Line 1136 + 0x12 bytes C++
> xul.dll!nsEventListenerManager::HandleEventInternal(nsPresContext * aPresContext=0x15e14580, nsEvent * aEvent=0x0df3bae8, nsIDOMEvent * * aDOMEvent=0x0030d3e0, nsPIDOMEventTarget * aCurrentTarget=0x08ba3d90, unsigned int aFlags=0x00000006, nsEventStatus * aEventStatus=0x0030d3e4, nsCxPusher * aPusher=0x0030d3f0) Line 1233 + 0x27 bytes C++
> xul.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext=0x15e14580, nsEvent * aEvent=0x0df3bae8, nsIDOMEvent * * aDOMEvent=0x0030d3e0, nsPIDOMEventTarget * aCurrentTarget=0x08ba3d90, unsigned int aFlags=0x00000006, nsEventStatus * aEventStatus=0x0030d3e4, nsCxPusher * aPusher=0x0030d3f0) Line 147 C++
> xul.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006, int aMayHaveNewListenerManagers=0x00000000, nsCxPusher * aPusher=0x0030d3f0) Line 216 C++
> xul.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006, nsDispatchingCallback * aCallback=0x00000000, int aMayHaveNewListenerManagers=0x00000000, nsCxPusher * aPusher=0x0030d3f0) Line 346 C++
> xul.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x08ba3d90, nsPresContext * aPresContext=0x15e14580, nsEvent * aEvent=0x0df3bae8, nsIDOMEvent * aDOMEvent=0x0df38368, nsEventStatus * aEventStatus=0x0030d500, nsDispatchingCallback * aCallback=0x00000000, nsCOMArray<nsPIDOMEventTarget> * aTargets=0x00000000) Line 648 + 0x1e bytes C++
> xul.dll!nsEventDispatcher::DispatchDOMEvent(nsISupports * aTarget=0x08ba3d90, nsEvent * aEvent=0x00000000, nsIDOMEvent * aDOMEvent=0x0df38368, nsPresContext * aPresContext=0x15e14580, nsEventStatus * aEventStatus=0x0030d500) Line 711 + 0x1d bytes C++
> xul.dll!nsDocument::DispatchEvent(nsIDOMEvent * aEvent=0x0df38368, int * _retval=0x0030d54c) Line 6305 + 0x22 bytes C++
> xul.dll!nsContentUtils::DispatchTrustedEvent(nsIDocument * aDoc=0x08ba3d90, nsISupports * aTarget=0x08ba3d90, const nsAString_internal & aEventName={...}, int aCanBubble=0x00000001, int aCancelable=0x00000001, int * aDefaultAction=0x00000000) Line 3034 + 0x3a bytes C++
> xul.dll!nsDocument::DispatchContentLoadedEvents() Line 4118 + 0x23 bytes C++
> xul.dll!nsRunnableMethodImpl<void (__thiscall nsDocument::*)(void),1>::Run() Line 342 C++
> xul.dll!nsThread::ProcessNextEvent(int mayWait=0x00000000, int * result=0x0030d678) Line 618 + 0x19 bytes C++
> xul.dll!NS_ProcessNextEvent_P(nsIThread * thread=0x0064d220, int mayWait=0x00000000) Line 245 + 0x16 bytes C++
> xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate=0x0079c5f0) Line 110 + 0xe bytes C++
> xul.dll!MessageLoop::RunInternal() Line 219 C++
> xul.dll!MessageLoop::RunHandler() Line 203 C++
> xul.dll!MessageLoop::Run() Line 177 C++
> xul.dll!nsBaseAppShell::Run() Line 191 C++
> xul.dll!nsAppShell::Run() Line 249 + 0x9 bytes C++
> xul.dll!nsAppStartup::Run() Line 222 + 0x1c bytes C++
> xul.dll!XRE_main(int argc=0x00000004, char * * argv=0x0064d780, const nsXREAppData * aAppData=0x0078f478) Line 3700 + 0x25 bytes C++
> firefox.exe!NS_internal_main(int argc=0x00000004, char * * argv=0x0064d780) Line 158 + 0x12 bytes C++
> firefox.exe!wmain(int argc=0x00000004, wchar_t * * argv=0x0064eba8) Line 106 + 0xd bytes C++
> firefox.exe!__tmainCRTStartup() Line 583 + 0x19 bytes C
> firefox.exe!wmainCRTStartup() Line 403 C
> kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
> ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
> ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes
plugin-container.exe
> ntdll.dll!_NtWaitForMultipleObjects@20() + 0x15 bytes
> ntdll.dll!_NtWaitForMultipleObjects@20() + 0x15 bytes
> user32.dll!_CallHookWithSEH@16() + 0x33 bytes
> kernel32.dll!_WaitForMultipleObjectsExImplementation@20() + 0x8e bytes
> user32.dll!_RealMsgWaitForMultipleObjectsEx@20() + 0xe2 bytes
> user32.dll!_MsgWaitForMultipleObjects@20() + 0x1f bytes
>> xul.dll!mozilla::ipc::RPCChannel::WaitForNotify() Line 919 + 0x1a bytes C++
> xul.dll!mozilla::ipc::RPCChannel::Call(IPC::Message * msg=0x004b7498, IPC::Message * reply=0x0046bc0c) Line 201 + 0xb bytes C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectChild::CallHasMethod(mozilla::plugins::PPluginIdentifierChild * aId=0x004a92c8, bool * aHasMethod=0x0046bc87) Line 167 + 0x16 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectChild::ScriptableHasMethod(NPObject * aObject=0x0059e0d8, void * aName=0x004a92c8) Line 122 C++
> xul.dll!mozilla::plugins::child::_hasmethod(_NPP * aNPP=0x004b5f3c, NPObject * aNPObj=0x0059e0d8, void * aMethodName=0x004a92c8) Line 1416 + 0x12 bytes C++
> npsp3dviewer.dll!01224fb6()
> [Frames below may be incorrect and/or missing, no symbols loaded for npsp3dviewer.dll]
> QtGui4.dll!650564ac()
> QtCore4.dll!670143d9()
> QtCore4.dll!670e3df4()
> npsp3dviewer.dll!0122711c()
> npsp3dviewer.dll!0122775d()
> QtCore4.dll!670e3df4()
> npsp3dviewer.dll!01258d7e()
> QtCore4.dll!671214ab()
> QtGui4.dll!65040dcc()
> sp3d_viewer_ax.dll!39d152bd()
> qt-mt338.dll!03bc0180()
> qt-mt338.dll!03bc0424()
> sp3d_viewer_ax.dll!39ee87b2()
> sp3d_viewer_ax.dll!39eb4978()
> qt-mt338.dll!03bde3f4()
> qt-mt338.dll!03b969b8()
> qt-mt338.dll!03b97888()
> qt-mt338.dll!03b726b7()
> qt-mt338.dll!03b8f8e3()
> qt-mt338.dll!03be0b43()
> qt-mt338.dll!03b930c3()
> qt-mt338.dll!03bb621c()
> user32.dll!_InternalCallWinProc@20() + 0x23 bytes
Comment 21•13 years ago
|
||
And also I can see following debug message in console:
> For application/spaceyes found plugin npsp3dviewer.dll
> ###!!! ASSERTION: windowHook out of sync with reality: '(!!windowHook) == SyncChannel::IsPumpingMessages()', file m:/mozilla-s/src/ipc/glue/WindowsMessageLoop.cpp, line 864
> ###!!! ASSERTION: windowHook out of sync with reality: '(!!windowHook) == SyncChannel::IsPumpingMessages()', file m:/mozilla-s/src/ipc/glue/WindowsMessageLoop.cpp, line 864
> ###!!! ASSERTION: windowHook out of sync with reality: '(!!windowHook) == SyncChannel::IsPumpingMessages()', file m:/mozilla-s/src/ipc/glue/WindowsMessageLoop.cpp, line 864
> ###!!! ASSERTION: windowHook out of sync with reality: '(!!windowHook) == SyncChannel::IsPumpingMessages()', file m:/mozilla-s/src/ipc/glue/WindowsMessageLoop.cpp, line 864
> ###!!! ASSERTION: windowHook out of sync with reality: '(!!windowHook) == SyncChannel::IsPumpingMessages()', file m:/mozilla-s/src/ipc/glue/WindowsMessageLoop.cpp, line 864
> ###!!! ASSERTION: windowHook out of sync with reality: '(!!windowHook) == SyncChannel::IsPumpingMessages()', file m:/mozilla-s/src/ipc/glue/WindowsMessageLoop.cpp, line 864
> ###!!! ASSERTION: windowHook out of sync with reality: '(!!windowHook) == SyncChannel::IsPumpingMessages()', file m:/mozilla-s/src/ipc/glue/WindowsMessageLoop.cpp, line 864
Comment 22•13 years ago
|
||
ok, we'll let jimm look at this when he gets back. It looks like the plugin is messing with window hooks.
Assignee: masayuki → jmathies
Comment 23•13 years ago
|
||
Comment on attachment 536299 [details] [diff] [review]
Fix of the previously submitted patch
We want all plugins to run out of process. We've only made one exception to this in the case of java, which runs it's own out of process security model.
I'm sure between mozilla and the plugin authors we can find a fix for this that doesn't involve opting out.
Attachment #536299 -
Flags: review?(benjamin) → review-
Comment 24•13 years ago
|
||
Masayuki, there seems to be a bug in the scroll handling. According to the comments, wheel scroll messages need to be forwarded to plugins here:
http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/nsWindow.cpp#7698
However I've commented this SendMessage line out and zoom still works in this plugin. I haven't seen any lockups after playing with it for a while. From what I can garner from the comments, zoom shouldn't be working without that send message. But apparently the message is still making it to the plugin.
Comment 25•13 years ago
|
||
(In reply to comment #24)
> Masayuki, there seems to be a bug in the scroll handling. According to the
> comments, wheel scroll messages need to be forwarded to plugins here:
>
> http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/nsWindow.
> cpp#7698
No, it doesn't send the scroll messages to plugins. It redirects the message to our window under the cursor.
Sending message to plugin is here:
http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/nsWindow.cpp#7684
Anyway, my patch should fix the scroll handling bug.
> However I've commented this SendMessage line out and zoom still works in
> this plugin.
If you set focus to the plugin, most mouse drivers send the messages to the focused plugin window directly. Then, the SendMessage() is never called (i.e., we don't need to redirect the messages at that time).
> I haven't seen any lockups after playing with it for a while.
Did you enable OOPP for the plugin? The current version changes our pref and disables OOPP for the plugin.
1. Open about:config and turn dom.ipc.plugins.enabled.npsp3dviewer.dll true.
2. Open the test page.
Then, you can test it. Don't open the test page before you change the pref. You need to change it every time.
> From what I can garner from the comments, zoom shouldn't be working without
> that send message. But apparently the message is still making it to the
> plugin.
If you want to test about calling SendMessage() case, you should set focus to our searchbar or locationbar. And move cursor over the plugin and turn the wheel.
However, some mouse drivers send them the window under the cursor directly. With such mouse, you cannot test the case except you uninstall the driver.
Comment 26•13 years ago
|
||
(In reply to comment #25)
> (In reply to comment #24)
> > Masayuki, there seems to be a bug in the scroll handling. According to the
> > comments, wheel scroll messages need to be forwarded to plugins here:
> >
> > http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/nsWindow.
> > cpp#7698
>
> No, it doesn't send the scroll messages to plugins. It redirects the message
> to our window under the cursor.
>
> Sending message to plugin is here:
> http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/nsWindow.
> cpp#7684
>
> Anyway, my patch should fix the scroll handling bug.
But it also caused a lock up (and was a major change) so I was looking for a simpler solutions.
>
> > However I've commented this SendMessage line out and zoom still works in
> > this plugin.
>
> If you set focus to the plugin, most mouse drivers send the messages to the
> focused plugin window directly. Then, the SendMessage() is never called
> (i.e., we don't need to redirect the messages at that time).
The SendMessage call was getting called and was locking up before I commented it out. I was testing without your patch.
>
> > I haven't seen any lockups after playing with it for a while.
>
> Did you enable OOPP for the plugin? The current version changes our pref and
> disables OOPP for the plugin.
Yes, I hardcoded oopp on for everything in the src. Their plugin is currently flipping the pref every time the plugin loads. (Which may make it a candidate for blocklisting, since they don't communicate this to the user in any way. But if we can fix this on our end, we can blocklist the current rev. only.)
> > From what I can garner from the comments, zoom shouldn't be working without
> > that send message. But apparently the message is still making it to the
> > plugin.
>
> If you want to test about calling SendMessage() case, you should set focus
> to our searchbar or locationbar. And move cursor over the plugin and turn
> the wheel.
I will test again but I was clicking on their controls and then scrolling. No lockups with the SendMessage call commented out.
Reporter | ||
Comment 27•13 years ago
|
||
(In reply to comment #26)
> Yes, I hardcoded oopp on for everything in the src. Their plugin is
> currently flipping the pref every time the plugin loads.
The setup of the plugin add the preference to the user.js file.
The preference is not changed "every time the plugin loads".
> (Which may make it a candidate for blocklisting, since they don't communicate this to the user
> in any way. But if we can fix this on our end, we can blocklist the current
> rev. only.)
Comment 28•13 years ago
|
||
(In reply to comment #27)
> (In reply to comment #26)
>
> > Yes, I hardcoded oopp on for everything in the src. Their plugin is
> > currently flipping the pref every time the plugin loads.
>
> The setup of the plugin add the preference to the user.js file.
> The preference is not changed "every time the plugin loads".
>
It does in the rev of the plugin I downloaded yesterday, they must have updated it.
Comment 29•13 years ago
|
||
(In reply to comment #26)
> (In reply to comment #25)
> > (In reply to comment #24)
> > > Masayuki, there seems to be a bug in the scroll handling. According to the
> > > comments, wheel scroll messages need to be forwarded to plugins here:
> > >
> > > http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/nsWindow.
> > > cpp#7698
> >
> > No, it doesn't send the scroll messages to plugins. It redirects the message
> > to our window under the cursor.
> >
> > Sending message to plugin is here:
> > http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/nsWindow.
> > cpp#7684
> >
> > Anyway, my patch should fix the scroll handling bug.
>
> But it also caused a lock up (and was a major change) so I was looking for a
> simpler solutions.
Um, it's odd. But my patch can use PostMessage() instead of calling another nsWindow::ProcessMessage().
> > > However I've commented this SendMessage line out and zoom still works in
> > > this plugin.
> >
> > If you set focus to the plugin, most mouse drivers send the messages to the
> > focused plugin window directly. Then, the SendMessage() is never called
> > (i.e., we don't need to redirect the messages at that time).
>
> The SendMessage call was getting called and was locking up before I
> commented it out. I was testing without your patch.
If plugin sent the message to toplevel window, it could cause infinite loop if you had set focus to the plugin and your mouse driver sent the message to focused plugin window directly.
Comment 30•13 years ago
|
||
jimm:
anyway, the patch gets rid of SendMessage() from mouse wheel handling. would you review it?
Comment 31•13 years ago
|
||
Comment on attachment 537964 [details] [diff] [review]
Get rid of SendMessage() from mouse wheel event handling
Sorry it's taken so long, this code has grown a lot in the last couple years and reviewing it has become tedious.
masayuki - I filed bug 672175 regarding looking into ways of better encapsulating our scroll code outside of nsWindow.
Attachment #537964 -
Flags: review?(jmathies) → review+
Comment 32•13 years ago
|
||
landed on mozilla-central. but I think this bug has NOT been fixed yet.
http://hg.mozilla.org/mozilla-central/rev/cb495bdd4aea
Comment 33•13 years ago
|
||
I can still reproduce similar hang up.
1. Load the demo page
2. Click "Pamiers"
3. After completes the loading, click "Constanta"
I can see very many assertions:
> ###!!! ASSERTION: windowHook out of sync with reality: '(!!windowHook) == SyncChannel::IsPumpingMessages()', file m:/mozilla-f/src/ipc/glue/WindowsMessageLoop.cpp, line 871
Our stacktrace:
> ntdll.dll!_NtWaitForMultipleObjects@20() + 0x15 bytes
> ntdll.dll!_NtWaitForMultipleObjects@20() + 0x15 bytes
> user32.dll!_CallHookWithSEH@16() + 0x33 bytes
> kernel32.dll!75631a2c()
> [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
> user32.dll!_RealMsgWaitForMultipleObjectsEx@20() + 0xe2 bytes
> user32.dll!_MsgWaitForMultipleObjects@20() + 0x1f bytes
>> xul.dll!mozilla::ipc::RPCChannel::WaitForNotify() Line 926 + 0x1a bytes C++
> xul.dll!mozilla::ipc::RPCChannel::Call(IPC::Message * msg=0x17574d80, IPC::Message * reply=0x003c97bc) Line 201 + 0xb bytes C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectParent::CallHasProperty(mozilla::plugins::PPluginIdentifierParent * aId=0x19168478, bool * aHasProperty=0x003c9837) Line 287 + 0x16 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectParent::ScriptableHasProperty(NPObject * aObject=0x1476a648, void * aName=0x10799430) Line 290 + 0x1c bytes C++
> xul.dll!NPObjWrapper_NewResolve(JSContext * cx=0x09df2b60, JSObject * obj=0x12578ec0, jsid id={...}, unsigned int flags=1, JSObject * * objp=0x003c98cc) Line 1649 + 0x12 bytes C++
> mozjs.dll!CallResolveOp(JSContext * cx=0x09df2b60, JSObject * start=0x12460900, JSObject * obj=0x12578ec0, jsid id={...}, unsigned int flags=1, JSObject * * objp=0x003c9974, JSProperty * * propp=0x003c9968, bool * recursedp=0x003c991f) Line 4784 + 0x17 bytes C++
> mozjs.dll!LookupPropertyWithFlagsInline(JSContext * cx=0x09df2b60, JSObject * obj=0x12578ec0, jsid id={...}, unsigned int flags=1, JSObject * * objp=0x003c9974, JSProperty * * propp=0x003c9968) Line 4837 + 0x25 bytes C++
> mozjs.dll!js_GetPropertyHelperInline(JSContext * cx=0x09df2b60, JSObject * obj=0x12460900, JSObject * receiver=0x12460900, jsid id={...}, unsigned int getHow=0, js::Value * vp=0x003c9a70) Line 5206 + 0x23 bytes C++
> mozjs.dll!js_GetProperty(JSContext * cx=0x09df2b60, JSObject * obj=0x12460900, JSObject * receiver=0x12460900, jsid id={...}, js::Value * vp=0x003c9a70) Line 5300 + 0x1b bytes C++
> mozjs.dll!JSObject::getProperty(JSContext * cx=0x09df2b60, JSObject * receiver=0x12460900, jsid id={...}, js::Value * vp=0x003c9a70) Line 1183 + 0x2c bytes C++
> mozjs.dll!JSObject::getProperty(JSContext * cx=0x09df2b60, jsid id={...}, js::Value * vp=0x003c9a70) Line 1188 C++
> mozjs.dll!JS_GetPropertyById(JSContext * cx=0x09df2b60, JSObject * obj=0x12460900, jsid id={...}, jsval_layout * vp=0x003c9a70) Line 3762 + 0x1d bytes C++
> xul.dll!GetProperty(JSContext * cx=0x09df2b60, JSObject * obj=0x12460900, void * id=0x10799430, jsval_layout * rval=0x003c9a70) Line 616 + 0x25 bytes C++
> xul.dll!nsJSObjWrapper::NP_HasMethod(NPObject * npobj=0x14772288, void * id=0x10799430) Line 649 + 0x18 bytes C++
> xul.dll!mozilla::plugins::parent::_hasmethod(_NPP * npp=0x17574e8c, NPObject * npobj=0x14772288, void * methodName=0x10799430) Line 1857 + 0x12 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectParent::AnswerHasMethod(mozilla::plugins::PPluginIdentifierParent * aId=0x19168478, bool * aHasMethod=0x003c9f2f) Line 705 + 0x24 bytes C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectParent::OnCallReceived(const IPC::Message & __msg={...}, IPC::Message * & __reply=0x00000000) Line 726 + 0x1b bytes C++
> xul.dll!mozilla::plugins::PPluginModuleParent::OnCallReceived(const IPC::Message & __msg={...}, IPC::Message * & __reply=0x00000000) Line 1013 + 0x15 bytes C++
> xul.dll!mozilla::ipc::RPCChannel::DispatchIncall(const IPC::Message & call={...}) Line 516 + 0x20 bytes C++
> xul.dll!mozilla::ipc::RPCChannel::Incall(const IPC::Message & call={...}, unsigned int stackDepth=1) Line 503 C++
> xul.dll!mozilla::ipc::RPCChannel::Call(IPC::Message * msg=0x17574d80, IPC::Message * reply=0x003ca2e4) Line 312 C++
> xul.dll!mozilla::plugins::PPluginScriptableObjectParent::CallInvoke(mozilla::plugins::PPluginIdentifierParent * aId=0x19179d18, const InfallibleTArray<mozilla::plugins::Variant> & aArgs={...}, mozilla::plugins::Variant * aResult=0x003ca368, bool * aSuccess=0x003ca37f) Line 196 + 0x16 bytes C++
> xul.dll!mozilla::plugins::PluginScriptableObjectParent::ScriptableInvoke(NPObject * aObject=0x1476a648, void * aName=0x10799380, const _NPVariant * aArgs=0x003ca3dc, unsigned int aArgCount=1, _NPVariant * aResult=0x003ca484) Line 196 + 0x29 bytes C++
> xul.dll!CallNPMethodInternal(JSContext * cx=0x09df2b60, JSObject * obj=0x12578ec0, unsigned int argc=1, jsval_layout * argv=0x049200f0, jsval_layout * rval=0x049200e0, int ctorCall=0) Line 1490 + 0x24 bytes C++
> xul.dll!CallNPMethod(JSContext * cx=0x09df2b60, unsigned int argc=1, jsval_layout * vp=0x049200e0) Line 1543 + 0x1e bytes C++
> mozjs.dll!js::CallJSNative(JSContext * cx=0x09df2b60, int (JSContext *, unsigned int, js::Value *)* native=0x557c7a30, const js::CallArgs & args={...}) Line 281 + 0x19 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x09df2b60, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 656 + 0x14 bytes C++
> mozjs.dll!js::Interpret(JSContext * cx=0x09df2b60, js::StackFrame * entryFrame=0x04920068, js::InterpMode interpMode=JSINTERP_NORMAL) Line 4008 + 0x12 bytes C++
> mozjs.dll!js::RunScript(JSContext * cx=0x09df2b60, JSScript * script=0x113b0a28, js::StackFrame * fp=0x04920068) Line 613 + 0xf bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x09df2b60, const js::CallArgs & argsRef={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 686 + 0x11 bytes C++
> mozjs.dll!js::Invoke(JSContext * cx=0x09df2b60, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 169 + 0x1a bytes C++
> mozjs.dll!js::ExternalInvoke(JSContext * cx=0x09df2b60, const js::Value & thisv={...}, const js::Value & fval={...}, unsigned int argc=1, js::Value * argv=0x1150e5c8, js::Value * rval=0x003cb828) Line 805 + 0xf bytes C++
> mozjs.dll!JS_CallFunctionValue(JSContext * cx=0x09df2b60, JSObject * obj=0x12460f90, jsval_layout fval={...}, unsigned int argc=1, jsval_layout * argv=0x1150e5c8, jsval_layout * rval=0x003cb828) Line 5082 + 0x45 bytes C++
> xul.dll!nsJSContext::CallEventHandler(nsISupports * aTarget=0x191bffb0, void * aScope=0x12578088, void * aHandler=0x12460fc8, nsIArray * aargv=0x135f3320, nsIVariant * * arv=0x003cba64) Line 1912 + 0x2e bytes C++
> xul.dll!nsJSEventListener::HandleEvent(nsIDOMEvent * aEvent=0x13144158) Line 224 + 0x64 bytes C++
> xul.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct=0x191c71e0, nsIDOMEventListener * aListener=0x1916d518, nsIDOMEvent * aDOMEvent=0x13144158, nsIDOMEventTarget * aCurrentTarget=0x191bffb0, unsigned int aPhaseFlags=6, nsCxPusher * aPusher=0x003cbe00) Line 1075 + 0x12 bytes C++
> xul.dll!nsEventListenerManager::HandleEventInternal(nsPresContext * aPresContext=0x146dca50, nsEvent * aEvent=0x003cc00c, nsIDOMEvent * * aDOMEvent=0x003cbdf0, nsIDOMEventTarget * aCurrentTarget=0x191bffb0, unsigned int aFlags=6, nsEventStatus * aEventStatus=0x003cbdf4, nsCxPusher * aPusher=0x003cbe00) Line 1174 + 0x27 bytes C++
> xul.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext=0x146dca50, nsEvent * aEvent=0x003cc00c, nsIDOMEvent * * aDOMEvent=0x003cbdf0, nsIDOMEventTarget * aCurrentTarget=0x191bffb0, unsigned int aFlags=6, nsEventStatus * aEventStatus=0x003cbdf4, nsCxPusher * aPusher=0x003cbe00) Line 153 C++
> xul.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=6, int aMayHaveNewListenerManagers=0, nsCxPusher * aPusher=0x003cbe00) Line 216 C++
> xul.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=6, nsDispatchingCallback * aCallback=0x003cbf04, int aMayHaveNewListenerManagers=0, nsCxPusher * aPusher=0x003cbe00) Line 346 C++
> xul.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x191bffb0, nsPresContext * aPresContext=0x146dca50, nsEvent * aEvent=0x003cc00c, nsIDOMEvent * aDOMEvent=0x00000000, nsEventStatus * aEventStatus=0x003cc500, nsDispatchingCallback * aCallback=0x003cbf04, nsCOMArray<nsIDOMEventTarget> * aTargets=0x00000000) Line 672 + 0x21 bytes C++
> xul.dll!PresShell::HandleEventInternal(nsEvent * aEvent=0x003cc00c, nsIView * aView=0x00000000, nsEventStatus * aStatus=0x003cc500) Line 7081 + 0x2b bytes C++
> xul.dll!PresShell::HandleEventWithTarget(nsEvent * aEvent=0x003cc00c, nsIFrame * aFrame=0x191aa650, nsIContent * aContent=0x191bffb0, nsEventStatus * aStatus=0x003cc500) Line 6929 + 0x12 bytes C++
> xul.dll!nsEventStateManager::CheckForAndDispatchClick(nsPresContext * aPresContext=0x146dca50, nsMouseEvent * aEvent=0x003cc6a8, nsEventStatus * aStatus=0x003cc500) Line 4259 + 0x44 bytes C++
> xul.dll!nsEventStateManager::PostHandleEvent(nsPresContext * aPresContext=0x146dca50, nsEvent * aEvent=0x003cc6a8, nsIFrame * aTargetFrame=0x191aa650, nsEventStatus * aStatus=0x003cc500, nsIView * aView=0x191c1b98) Line 3201 + 0x1c bytes C++
> xul.dll!PresShell::HandleEventInternal(nsEvent * aEvent=0x003cc6a8, nsIView * aView=0x191c1b98, nsEventStatus * aStatus=0x003cc500) Line 7104 + 0x30 bytes C++
> xul.dll!PresShell::HandlePositionedEvent(nsIView * aView=0x191c1b98, nsIFrame * aTargetFrame=0x191aa650, nsGUIEvent * aEvent=0x003cc6a8, nsEventStatus * aEventStatus=0x003cc500) Line 6914 + 0x14 bytes C++
> xul.dll!PresShell::HandleEvent(nsIView * aView=0x0589aa08, nsGUIEvent * aEvent=0x003cc6a8, int aDontRetargetEvents=0, nsEventStatus * aEventStatus=0x003cc500) Line 6746 + 0x1b bytes C++
> xul.dll!nsViewManager::HandleEvent(nsView * aView=0x0589aa08, nsGUIEvent * aEvent=0x003cc6a8) Line 1032 C++
> xul.dll!nsViewManager::DispatchEvent(nsGUIEvent * aEvent=0x003cc6a8, nsIView * aView=0x0589aa08, nsEventStatus * aStatus=0x003cc604) Line 1007 + 0x13 bytes C++
> xul.dll!AttachedHandleEvent(nsGUIEvent * aEvent=0x003cc6a8) Line 192 C++
> xul.dll!nsWindow::DispatchEvent(nsGUIEvent * event=0x003cc6a8, nsEventStatus & aStatus=nsEventStatus_eIgnore) Line 3555 + 0xc bytes C++
> xul.dll!nsWindow::DispatchWindowEvent(nsGUIEvent * event=0x003cc6a8) Line 3582 C++
> xul.dll!nsWindow::DispatchMouseEvent(unsigned int aEventType=301, unsigned int wParam=0, long lParam=8520040, int aIsContextMenuKey=0, short aButton=0, unsigned short aInputSource=1) Line 4005 + 0x1d bytes C++
> xul.dll!nsWindow::ProcessMessage(unsigned int msg=514, unsigned int & wParam=0, long & lParam=8520040, long * aRetValue=0x003ccdbc) Line 4939 + 0x34 bytes C++
> xul.dll!nsWindow::WindowProcInternal(HWND__ * hWnd=0x000a19a4, unsigned int msg=514, unsigned int wParam=0, long lParam=8520040) Line 4407 + 0x20 bytes C++
> xul.dll!CallWindowProcCrashProtected(long (HWND__ *, unsigned int, unsigned int, long)* wndProc=0x55901e70, HWND__ * hWnd=0x000a19a4, unsigned int msg=514, unsigned int wParam=0, long lParam=8520040) Line 65 + 0x13 bytes C++
> xul.dll!nsWindow::WindowProc(HWND__ * hWnd=0x000a19a4, unsigned int msg=514, unsigned int wParam=0, long lParam=8520040) Line 4349 + 0x1a bytes C++
> user32.dll!_InternalCallWinProc@20() + 0x23 bytes
> user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes
> user32.dll!_DispatchMessageWorker@8() + 0xed bytes
> user32.dll!_DispatchMessageW@4() + 0xf bytes
> xul.dll!nsAppShell::ProcessNextNativeEvent(int mayWait=1) Line 339 C++
> xul.dll!nsBaseAppShell::DoProcessNextNativeEvent(int mayWait=1) Line 171 + 0x11 bytes C++
> xul.dll!nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal * thr=0x0060a018, int mayWait=1, unsigned int recursionDepth=0) Line 324 + 0xf bytes C++
> xul.dll!nsThread::ProcessNextEvent(int mayWait=1, int * result=0x003cd048) Line 598 C++
> xul.dll!NS_ProcessNextEvent_P(nsIThread * thread=0x0060a018, int mayWait=1) Line 245 + 0x16 bytes C++
> xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate=0x00608ad0) Line 134 + 0xe bytes C++
> xul.dll!MessageLoop::RunInternal() Line 222 C++
> xul.dll!MessageLoop::RunHandler() Line 206 C++
> xul.dll!MessageLoop::Run() Line 180 C++
> xul.dll!nsBaseAppShell::Run() Line 191 C++
> xul.dll!nsAppShell::Run() Line 256 + 0x9 bytes C++
> xul.dll!nsAppStartup::Run() Line 224 + 0x1c bytes C++
> xul.dll!XRE_main(int argc=4, char * * argv=0x0046f018, const nsXREAppData * aAppData=0x005fa318) Line 3577 + 0x25 bytes C++
> firefox.exe!do_main(const char * exePath=0x003cf9b8, int argc=4, char * * argv=0x0046f018) Line 198 + 0x12 bytes C++
> firefox.exe!NS_internal_main(int argc=4, char * * argv=0x0046f018) Line 281 + 0x14 bytes C++
> firefox.exe!wmain(int argc=4, wchar_t * * argv=0x004698e0) Line 107 + 0xd bytes C++
> firefox.exe!__tmainCRTStartup() Line 583 + 0x19 bytes C
> firefox.exe!wmainCRTStartup() Line 403 C
> kernel32.dll!7563339a()
> ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
> ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes
Looks like dispatching click event from ESM causes connecting plugin.
Comment 34•13 years ago
|
||
That assert indicates an out of order rpc call was made, most likely from the plugin to the child. From your stack it looks like:
browser: Invoke script -> child
child: HasMethod -> browser
child: HasProperty -> browser (assert)
Comment 35•13 years ago
|
||
Yeah, we'd need the stack from the plugin in order to figure out how it's reentering.
Comment 36•13 years ago
|
||
> ntdll.dll!_NtWaitForMultipleObjects@20() + 0x15 bytes
> ntdll.dll!_NtWaitForMultipleObjects@20() + 0x15 bytes
> kernel32.dll!75631a2c()
> [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
> xul.dll!std::_Ranit<base::MessagePumpWin::Observer *,int,base::MessagePumpWin::Observer * const *,base::MessagePumpWin::Observer * const &>::~_Ranit<base::MessagePumpWin::Observer *,int,base::MessagePumpWin::Observer * const *,base::MessagePumpWin::Observer * const &>() + 0xf bytes C++
> xul.dll!std::_Vector_const_iterator<base::MessagePumpWin::Observer *,std::allocator<base::MessagePumpWin::Observer *> >::~_Vector_const_iterator<base::MessagePumpWin::Observer *,std::allocator<base::MessagePumpWin::Observer *> >() + 0xf bytes C++
> 0034ec58()
> user32.dll!_RealMsgWaitForMultipleObjectsEx@20() + 0xe2 bytes
>> xul.dll!base::MessagePumpForUI::WaitForWork() Line 267 + 0x15 bytes C++
> xul.dll!base::MessagePumpForUI::DoRunLoop() Line 239 + 0x8 bytes C++
> xul.dll!base::MessagePumpWin::RunWithDispatcher(base::MessagePump::Delegate * delegate=0x0034edd4, base::MessagePumpWin::Dispatcher * dispatcher=0x00000000) Line 55 C++
> xul.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate=0x0034edd4) Line 78 + 0x15 bytes C++
> xul.dll!MessageLoop::RunInternal() Line 222 C++
> xul.dll!MessageLoop::RunHandler() Line 199 C++
> xul.dll!MessageLoop::Run() Line 180 C++
> xul.dll!XRE_InitChildProcess(int aArgc=3, char * * aArgv=0x0109d050, GeckoProcessType aProcess=GeckoProcessType_Plugin) Line 516 C++
> plugin-container.exe!NS_internal_main(int argc=6, char * * argv=0x0109d050) Line 81 + 0x12 bytes C++
> plugin-container.exe!wmain(int argc=7, wchar_t * * argv=0x0122f6b8) Line 107 + 0xd bytes C++
> plugin-container.exe!__tmainCRTStartup() Line 583 + 0x19 bytes C
> plugin-container.exe!wmainCRTStartup() Line 403 C
> kernel32.dll!7563339a()
> ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
> ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes
plugin-container's stack
Reporter | ||
Comment 37•13 years ago
|
||
Hello all,
I am one of the authors of the concerned plugin. Most of our customers are very disappointed that the plugin doesn't work with new releases of Firefox. We really need to find a solution to make it work in the plugin-container as it seems that it is the definitive way to execute plugins now.
Is there any information I can provide you in order to find why the plugin hangs ? A debug version version of the plugin - with pdb - could probably be useful ?
Please let me know how I can help.
Regards,
Frédéric.
Updated•12 years ago
|
Assignee: jmathies → nobody
Updated•12 years ago
|
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → INCOMPLETE
Updated•3 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•