Jacek Caban (@jacek) commented about dlls/mshtml/xmlhttprequest.c:
if((thread_data = get_thread_data(FALSE)))
blocking_depth = thread_data->blocking_depth;
hres = create_event_from_nsevent(nsevent, dispex_compat_mode(&This->xhr->event_target.dispex), &event);
- if(SUCCEEDED(hres) ){
dispatch_event(&This->xhr->event_target, event);
IDOMEvent_Release(&event->IDOMEvent_iface);
- if(FAILED(hres)) {
if(!blocking_depth || This->xhr->synchronous)
This->xhr->ready_state = ready_state;
}return NS_ERROR_OUT_OF_MEMORY;
- if(blocking_depth) {
if(!This->xhr->synchronous) {
The way it's implemented, nested sync XHR will not block other sync XHR's events, is it intentional?