Closed
Bug 776239
Opened 12 years ago
Closed 12 years ago
Unpref XHR bindings
Categories
(Core :: DOM: Core & HTML, defect)
Core
DOM: Core & HTML
Tracking
()
RESOLVED
FIXED
mozilla18
People
(Reporter: Ms2ger, Assigned: Ms2ger)
References
Details
Attachments
(1 file, 1 obsolete file)
1.93 KB,
patch
|
bzbarsky
:
review+
|
Details | Diff | Splinter Review |
Kyle has a patch, but it crashes.
Updated•12 years ago
|
Summary: Unpref XHR → Unpref XHR bindings
Comment 1•12 years ago
|
||
Do we know why it crashes? Does the patch still apply? Is there something concrete that someone can sit down and bang into submission?
It crashes running test_bug435425.html. C++ stack: ntdll.dll!_ZwRaiseException@12() + 0x12 bytes plds4.dll!PL_CompareStrings(const void * v1=0x00428a50, const void * v2=0x00000000) Line 476 + 0xd bytes C > xul.dll!nsJSIID::HasInstance(nsIXPConnectWrappedNative * wrapper=0x144c23f0, JSContext * cx=0x138d39f8, JSObject * obj=0x1e0a0480, const JS::Value & val={...}, bool * bp=0x00428be3, bool * _retval=0x00428be2) Line 504 + 0x18 bytes C++ xul.dll!XPC_WN_Helper_HasInstance(JSContext * cx=0x138d39f8, JS::Handle<JSObject *> obj={...}, const JS::Value * valp=0x078802b0, int * bp=0x00429184) Line 1000 + 0x36 bytes C++ mozjs.dll!js::HasInstance(JSContext * cx=0x138d39f8, JS::Handle<JSObject *> obj={...}, const JS::Value * v=0x078802b0, int * bp=0x00429184) Line 538 + 0x18 bytes C++ mozjs.dll!js::Interpret(JSContext * cx=0x138d39f8, js::StackFrame * entryFrame=0x07880200, js::InterpMode interpMode=JSINTERP_NORMAL) Line 3289 + 0x28 bytes C++ mozjs.dll!js::RunScript(JSContext * cx=0x138d39f8, JSScript * script=0x199f7190, js::StackFrame * fp=0x07880200) Line 308 + 0xf bytes C++ mozjs.dll!js::InvokeKernel(JSContext * cx=0x138d39f8, JS::CallArgs args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 362 + 0x22 bytes C++ mozjs.dll!js::Invoke(JSContext * cx=0x138d39f8, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 119 + 0x37 bytes C++ mozjs.dll!js::Invoke(JSContext * cx=0x138d39f8, const JS::Value & thisv={...}, const JS::Value & fval={...}, unsigned int argc=1, JS::Value * argv=0x00429cb0, JS::Value * rval=0x00429c70) Line 394 + 0xf bytes C++ mozjs.dll!JS_CallFunctionValue(JSContext * cx=0x138d39f8, JSObject * objArg=0x1e0a0480, JS::Value fval={...}, unsigned int argc=1, JS::Value * argv=0x00429cb0, JS::Value * rval=0x00429c70) Line 5891 + 0x34 bytes C++ xul.dll!nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS * wrapper=0x16af4488, unsigned short methodIndex=3, const XPTMethodDescriptor * info=0x066e4af0, nsXPTCMiniVariant * nativeParams=0x00429d8c) Line 1436 + 0x35 bytes C++ xul.dll!nsXPCWrappedJS::CallMethod(unsigned short methodIndex=3, const XPTMethodDescriptor * info=0x066e4af0, nsXPTCMiniVariant * params=0x00429d8c) Line 581 C++ xul.dll!PrepareAndDispatch(nsXPTCStubBase * self=0x1cbaf128, unsigned int methodIndex=3, unsigned int * args=0x00429e54, unsigned int * stackBytesToPop=0x00429e44) Line 85 + 0x21 bytes C++ xul.dll!SharedStub() Line 113 C++ xul.dll!nsDOMEventListenerWrapper::HandleEvent(nsIDOMEvent * aEvent=0x1cb16960) Line 36 C++ xul.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct=0x1a0a1ca0, nsIDOMEventListener * aListener=0x1aedaa78, nsIDOMEvent * aDOMEvent=0x1cb16960, nsIDOMEventTarget * aCurrentTarget=0x08cfe3f8, unsigned int aPhaseFlags=6, nsCxPusher * aPusher=0x0042a008) Line 793 + 0x12 bytes C++ xul.dll!nsEventListenerManager::HandleEventInternal(nsPresContext * aPresContext=0x00000000, nsEvent * aEvent=0x161a2c18, nsIDOMEvent * * aDOMEvent=0x00429ff8, nsIDOMEventTarget * aCurrentTarget=0x08cfe3f8, unsigned int aFlags=6, nsEventStatus * aEventStatus=0x00429ffc, nsCxPusher * aPusher=0x0042a008) Line 868 + 0x27 bytes C++ xul.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext=0x00000000, nsEvent * aEvent=0x161a2c18, nsIDOMEvent * * aDOMEvent=0x00429ff8, nsIDOMEventTarget * aCurrentTarget=0x08cfe3f8, unsigned int aFlags=6, nsEventStatus * aEventStatus=0x00429ffc, nsCxPusher * aPusher=0x0042a008) Line 144 C++ xul.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=6, bool aMayHaveNewListenerManagers=false, nsCxPusher * aPusher=0x0042a008) Line 186 C++ xul.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=6, nsDispatchingCallback * aCallback=0x00000000, bool aMayHaveNewListenerManagers=false, nsCxPusher * aPusher=0x0042a008) Line 319 C++ xul.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x08cfe3f8, nsPresContext * aPresContext=0x00000000, nsEvent * aEvent=0x161a2c18, nsIDOMEvent * aDOMEvent=0x1cb16960, nsEventStatus * aEventStatus=0x00000000, nsDispatchingCallback * aCallback=0x00000000, nsCOMArray<nsIDOMEventTarget> * aTargets=0x00000000) Line 640 + 0x1e bytes C++ xul.dll!nsEventDispatcher::DispatchDOMEvent(nsISupports * aTarget=0x08cfe3f8, nsEvent * aEvent=0x00000000, nsIDOMEvent * aDOMEvent=0x1cb16960, nsPresContext * aPresContext=0x00000000, nsEventStatus * aEventStatus=0x00000000) Line 697 + 0x1d bytes C++ xul.dll!nsDOMEventTargetHelper::DispatchDOMEvent(nsEvent * aEvent=0x00000000, nsIDOMEvent * aDOMEvent=0x1cb16960, nsPresContext * aPresContext=0x00000000, nsEventStatus * aEventStatus=0x00000000) Line 266 + 0x19 bytes C++ xul.dll!nsXHREventTarget::DispatchDOMEvent(nsEvent * aEvent=0x00000000, nsIDOMEvent * aDOMEvent=0x1cb16960, nsPresContext * aPresContext=0x00000000, nsEventStatus * aEventStatus=0x00000000) Line 73 + 0x1f bytes C++ xul.dll!nsXMLHttpRequest::DispatchDOMEvent(nsEvent * aEvent=0x00000000, nsIDOMEvent * aDOMEvent=0x1cb16960, nsPresContext * aPresContext=0x00000000, nsEventStatus * aEventStatus=0x00000000) Line 243 + 0x1f bytes C++ xul.dll!nsXMLHttpRequest::DispatchProgressEvent(nsDOMEventTargetHelper * aTarget=0x08cfe3f8, const nsAString_internal & aType={...}, bool aUseLSEventWrapper=false, bool aLengthComputable=false, unsigned __int64 aLoaded=0, unsigned __int64 aTotal=0, unsigned __int64 aPosition=0, unsigned __int64 aTotalSize=18446744073709551615) Line 1673 C++ xul.dll!nsXMLHttpRequest::DispatchProgressEvent(nsDOMEventTargetHelper * aTarget=0x08cfe3f8, const nsAString_internal & aType={...}, bool aLengthComputable=false, unsigned __int64 aLoaded=0, unsigned __int64 aTotal=0) Line 480 C++ xul.dll!nsXMLHttpRequest::Send(nsIVariant * aVariant=0x00000000, const mozilla::dom::Nullable<nsXMLHttpRequest::RequestBody> & aBody={...}) Line 3164 + 0x2f bytes C++ xul.dll!nsXMLHttpRequest::Send(const mozilla::dom::Nullable<nsXMLHttpRequest::RequestBody> & aBody={...}) Line 355 C++ xul.dll!nsXMLHttpRequest::Send(mozilla::ErrorResult & aRv={...}) Line 364 + 0x11 bytes C++ xul.dll!nsXMLHttpRequest::Send(const nsAString_internal & aString={...}, mozilla::ErrorResult & aRv={...}) Line 385 C++ xul.dll!mozilla::dom::XMLHttpRequestBinding::send(JSContext * cx=0x138d39f8, JS::Handle<JSObject *> obj={...}, nsXMLHttpRequest * self=0x08cfe3f8, unsigned int argc=1, JS::Value * vp=0x078801d0) Line 492 C++ xul.dll!mozilla::dom::XMLHttpRequestBinding::genericMethod(JSContext * cx=0x138d39f8, unsigned int argc=1, JS::Value * vp=0x078801d0) Line 1106 + 0x21 bytes C++ mozjs.dll!js::CallJSNative(JSContext * cx=0x138d39f8, int (JSContext *, unsigned int, JS::Value *)* native=0x11c19bd0, const JS::CallArgs & args={...}) Line 389 + 0x19 bytes C++ mozjs.dll!js::InvokeKernel(JSContext * cx=0x138d39f8, JS::CallArgs args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 351 + 0x1d bytes C++ mozjs.dll!js::Interpret(JSContext * cx=0x138d39f8, js::StackFrame * entryFrame=0x07880118, js::InterpMode interpMode=JSINTERP_NORMAL) Line 2423 + 0x2a bytes C++ mozjs.dll!js::RunScript(JSContext * cx=0x138d39f8, JSScript * script=0x199f7510, js::StackFrame * fp=0x07880118) Line 308 + 0xf bytes C++ mozjs.dll!js::InvokeKernel(JSContext * cx=0x138d39f8, JS::CallArgs args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 362 + 0x22 bytes C++ mozjs.dll!js::Invoke(JSContext * cx=0x138d39f8, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 119 + 0x37 bytes C++ mozjs.dll!js_fun_apply(JSContext * cx=0x138d39f8, unsigned int argc=2, JS::Value * vp=0x078800d0) Line 902 + 0xf bytes C++ mozjs.dll!js::CallJSNative(JSContext * cx=0x138d39f8, int (JSContext *, unsigned int, JS::Value *)* native=0x53f46735, const JS::CallArgs & args={...}) Line 389 + 0x19 bytes C++ mozjs.dll!js::InvokeKernel(JSContext * cx=0x138d39f8, JS::CallArgs args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 351 + 0x1d bytes C++ mozjs.dll!js::Interpret(JSContext * cx=0x138d39f8, js::StackFrame * entryFrame=0x07880078, js::InterpMode interpMode=JSINTERP_NORMAL) Line 2423 + 0x2a bytes C++ mozjs.dll!js::RunScript(JSContext * cx=0x138d39f8, JSScript * script=0x1e0a3430, js::StackFrame * fp=0x07880078) Line 308 + 0xf bytes C++ mozjs.dll!js::InvokeKernel(JSContext * cx=0x138d39f8, JS::CallArgs args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 362 + 0x22 bytes C++ mozjs.dll!js::Invoke(JSContext * cx=0x138d39f8, js::InvokeArgsGuard & args={...}, js::MaybeConstruct construct=NO_CONSTRUCT) Line 119 + 0x37 bytes C++ mozjs.dll!js::Invoke(JSContext * cx=0x138d39f8, const JS::Value & thisv={...}, const JS::Value & fval={...}, unsigned int argc=1, JS::Value * argv=0x0042c2c4, JS::Value * rval=0x0042c404) Line 394 + 0xf bytes C++ mozjs.dll!JS_CallFunctionValue(JSContext * cx=0x138d39f8, JSObject * objArg=0x1e09f040, JS::Value fval={...}, unsigned int argc=1, JS::Value * argv=0x0042c2c4, JS::Value * rval=0x0042c404) Line 5891 + 0x34 bytes C++ xul.dll!nsJSContext::CallEventHandler(nsISupports * aTarget=0x1a3a8650, JSObject * aScope=0x1e09f040, JSObject * aHandler=0x084cea80, nsIArray * aargv=0x1c20a678, nsIVariant * * arv=0x0042c628) Line 1921 + 0x2e bytes C++ xul.dll!nsJSEventListener::HandleEvent(nsIDOMEvent * aEvent=0x13997cb0) Line 188 + 0x5d bytes C++ xul.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct=0x1cb18690, nsIDOMEventListener * aListener=0x1cd7f568, nsIDOMEvent * aDOMEvent=0x13997cb0, nsIDOMEventTarget * aCurrentTarget=0x1a3a865c, unsigned int aPhaseFlags=6, nsCxPusher * aPusher=0x0042c7f0) Line 793 + 0x12 bytes C++ xul.dll!nsEventListenerManager::HandleEventInternal(nsPresContext * aPresContext=0x1402cf18, nsEvent * aEvent=0x0042c8f0, nsIDOMEvent * * aDOMEvent=0x0042c7e0, nsIDOMEventTarget * aCurrentTarget=0x1a3a865c, unsigned int aFlags=6, nsEventStatus * aEventStatus=0x0042c7e4, nsCxPusher * aPusher=0x0042c7f0) Line 868 + 0x27 bytes C++ xul.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext=0x1402cf18, nsEvent * aEvent=0x0042c8f0, nsIDOMEvent * * aDOMEvent=0x0042c7e0, nsIDOMEventTarget * aCurrentTarget=0x1a3a865c, unsigned int aFlags=6, nsEventStatus * aEventStatus=0x0042c7e4, nsCxPusher * aPusher=0x0042c7f0) Line 144 C++ xul.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=6, bool aMayHaveNewListenerManagers=false, nsCxPusher * aPusher=0x0042c7f0) Line 186 C++ xul.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=6, nsDispatchingCallback * aCallback=0x00000000, bool aMayHaveNewListenerManagers=false, nsCxPusher * aPusher=0x0042c7f0) Line 319 C++ xul.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x08e26af0, nsPresContext * aPresContext=0x1402cf18, nsEvent * aEvent=0x0042c8f0, nsIDOMEvent * aDOMEvent=0x00000000, nsEventStatus * aEventStatus=0x0042c8ec, nsDispatchingCallback * aCallback=0x00000000, nsCOMArray<nsIDOMEventTarget> * aTargets=0x00000000) Line 640 + 0x1e bytes C++ xul.dll!DocumentViewerImpl::LoadComplete(unsigned int aStatus=0) Line 1025 + 0x23 bytes C++ xul.dll!nsDocShell::EndPageLoad(nsIWebProgress * aProgress=0x08d8d964, nsIChannel * aChannel=0x1ad60134, unsigned int aStatus=0) Line 6345 C++ xul.dll!nsDocShell::OnStateChange(nsIWebProgress * aProgress=0x08d8d964, nsIRequest * aRequest=0x1ad60134, unsigned int aStateFlags=131088, unsigned int aStatus=0) Line 6176 C++ xul.dll!nsDocLoader::DoFireOnStateChange(nsIWebProgress * const aProgress=0x08d8d964, nsIRequest * const aRequest=0x1ad60134, int & aStateFlags=131088, const unsigned int aStatus=0) Line 1352 C++ xul.dll!nsDocLoader::doStopDocumentLoad(nsIRequest * request=0x1ad60134, unsigned int aStatus=0) Line 932 C++ xul.dll!nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout=true) Line 822 C++ xul.dll!nsDocLoader::OnStopRequest(nsIRequest * aRequest=0x08edee20, nsISupports * aCtxt=0x00000000, unsigned int aStatus=0) Line 707 C++ xul.dll!nsLoadGroup::RemoveRequest(nsIRequest * request=0x08edee20, nsISupports * ctxt=0x00000000, unsigned int aStatus=0) Line 698 + 0x31 bytes C++ xul.dll!nsDocument::DoUnblockOnload() Line 7193 C++ xul.dll!nsDocument::UnblockOnload(bool aFireSync=true) Line 7134 C++ xul.dll!nsDocument::DispatchContentLoadedEvents() Line 4215 C++ xul.dll!nsRunnableMethodImpl<void (__thiscall nsDocument::*)(void),1>::Run() Line 350 C++ xul.dll!nsThread::ProcessNextEvent(bool mayWait=false, bool * result=0x0042d21b) Line 624 + 0x19 bytes C++ xul.dll!NS_ProcessNextEvent_P(nsIThread * thread=0x0025e910, bool mayWait=false) Line 220 + 0x17 bytes C++ xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate=0x0025df40) Line 82 + 0xe bytes C++ xul.dll!MessageLoop::RunInternal() Line 209 C++ xul.dll!MessageLoop::RunHandler() Line 202 C++ xul.dll!MessageLoop::Run() Line 176 C++ xul.dll!nsBaseAppShell::Run() Line 165 C++ xul.dll!nsAppShell::Run() Line 232 + 0x9 bytes C++ xul.dll!nsAppStartup::Run() Line 273 + 0x1c bytes C++ xul.dll!XREMain::XRE_mainRun() Line 3800 + 0x22 bytes C++ xul.dll!XREMain::XRE_main(int argc=5, char * * argv=0x00a0b320, const nsXREAppData * aAppData=0x01388864) Line 3877 + 0x8 bytes C++ xul.dll!XRE_main(int argc=5, char * * argv=0x00a0b320, const nsXREAppData * aAppData=0x01388864, unsigned int aFlags=0) Line 3953 + 0x17 bytes C++ firefox.exe!do_main(int argc=5, char * * argv=0x00a0b320) Line 174 + 0x15 bytes C++ firefox.exe!NS_internal_main(int argc=5, char * * argv=0x00a0b320) Line 279 + 0xd bytes C++ firefox.exe!wmain(int argc=5, wchar_t * * argv=0x00a01ac8) Line 100 + 0xd bytes C++ firefox.exe!__tmainCRTStartup() Line 552 + 0x19 bytes C firefox.exe!wmainCRTStartup() Line 371 C kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes JS Stack: 0 logEvent() ["http://mochi.test:8888/tests/content/base/test/test_bug435425.html":37] this = [object Window @ 0x89a1130 (native @ 0x1a3a8650)] 1 anonymous() ["http://mochi.test:8888/tests/content/base/test/test_bug435425.html":101] this = [object XMLHttpRequest] 2 start() ["http://mochi.test:8888/tests/content/base/test/test_bug435425.html":151] this = [object Window @ 0x89a1130 (native @ 0x1a3a8650)] 3 runTest() ["http://mochi.test:8888/tests/content/base/test/test_bug435425.html":375] this = [object Window @ 0x89a1130 (native @ 0x1a3a8650)] 4 anonymous(callStack = undefined, i = undefined, arguments = undefined) ["http://mochi.test:8888/tests/SimpleTest/SimpleTest.js":125] callStack = undefined i = undefined arguments = undefined this = [object Window @ 0x89a1130 (native @ 0x1a3a8650)] 5 <TOP LEVEL> ["<unknown>":0] <failed to get 'this' value> I suspect the problem is that nsJSIID::HasInstance doesn't know how to deal properly with objects that don't have any class info.
Assignee | ||
Comment 3•12 years ago
|
||
Yeah, it assumes that any non-null identity implements nsIClassInfo.
Assignee | ||
Comment 4•12 years ago
|
||
We should probably keep nsIXMLHttpRequest scriptable, and reintroduce the QI to nsIClassInfo.
Assignee | ||
Updated•12 years ago
|
Assignee: nobody → Ms2ger
Assignee | ||
Comment 5•12 years ago
|
||
Attachment #653093 -
Attachment is obsolete: true
Attachment #662669 -
Flags: review?(bzbarsky)
Comment 6•12 years ago
|
||
Comment on attachment 662669 [details] [diff] [review] Smaller patch r=me. Can you please file a followup on gutting nsIXMLHttpRequest (as in, making it an empty interface), which we may be able to do even if we can't drop the classinfo and the mere existence of the interface and whatnot.
Attachment #662669 -
Flags: review?(bzbarsky) → review+
Assignee | ||
Comment 7•12 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/1e56d3016820
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla18
Comment 8•12 years ago
|
||
I filed bug 801723 on comment 2.
Updated•5 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•