Closed Bug 62787 Opened 24 years ago Closed 24 years ago

XML bindings fail to load when the profile manager dialog is up

Categories

(Core :: Networking, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla0.9.1

People

(Reporter: sfraser_bugs, Assigned: sfraser_bugs)

References

Details

Attachments

(3 files)

XML bindings files are having their loads cancelled in Necko when the profile manager dialog is dismissed. Thus XBL bindings don't load, and the build goes to hell. This seems worse when using files, not jars, in chrome, so it somewhat timing dependent.
This is a blocker for me: I need to use files in chrome.
Severity: normal → blocker
Priority: P3 → P2
Loads are being cancelled when the nsLoadGroup::Cancel() is called as we tear down the profile manager dialog. Hyatt thinks that the loads don't complete when the dialog is up because of some kind of modal dialog thing that stalls events.
What is your final error? Can you post the debug window results and your call stack? I want to compare this to bug 62816 .
Yeah, it looks like the same bug.
->moz0.8
Target Milestone: --- → mozilla0.8
I am seeing the same thing. Additional informations : -Started around 20 december. How to reproduce it : 1)Get a fresh Mozilla zip build (I use win32) 2)Edit installed-chrome.txt to point to the un-jar'ed directories e.g. comm/ instead of comm.jar! 3)Save, start Mozilla 4)ProfileManager pops up, click "Start Mozilla". 5)Look at the console : Failed to load XBL bindings etc etc. This only happens in the toolkit/ dir and classic/ and modern/ dirs. (haven't tried blue/). Since it doesn't happen when using the jar archives, I suspect it is a packaging issue. Note : this prevents me from using the modern skin (if using the non-jar dirs), but classic doesn't seem to affect anything. Who should be CC'ed for packaging? Using win32, so OS/PF to All/All
OS: Mac System 8.5 → All
Hardware: Macintosh → All
Necko is giving me an error code for no apparent reason. Nothing is wrong with the files. This is Mac-only and only when building without JARs. Reassigning to Necko component owner.
Assignee: hyatt → neeti
Component: XP Toolkit/Widgets → Networking
QA Contact: jrgm → tever
Huh? Isn't this the event processing bug that you (hyatt) and danm know about (at least to some degree)?
sounds like no fix in hand, affects only small set of developers that aren't jaring stuff up... do the jars... is that good enough work around for 0.8? moving to m0.9 until some one screams
Target Milestone: mozilla0.8 → mozilla0.9
*scream* For those skin developers who edit chrome all day, this bug is an absolute blocker. It also seems to be a serious and deep-rooted issue that needs shaking out now.
Simon, What are the steps to reproduce this bug? Is it Mac only? Neeti
Neeti: do a build with jars turned off. Make sure you have > 1 profile so that the profile manager dialog comes up. Run Mozilla. Note console warnings about XBL loading errors. Note that chrome loading fails.
I am not able to reproduce this with jars disabled on windows and linux. This is also working now on a Mac (simon's machine). Marking WORKSFORME
--> worksforme
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → WORKSFORME
i now see this every time i close the profile manager. with jars enabled.
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Target Milestone: mozilla0.9 → mozilla0.9.1
This is what I'm seeing now: •••WARNING: XBL load did not complete until after document went away! Modal dialog bug?, file nsXBLService.cpp, line 343
This is the stack trace when nsLoadGroup::Cancel(..) is called. nsLoadGroup::Cancel(nsLoadGroup * const 0x0146fea0, unsigned int 2152398850) line 213 nsDocLoaderImpl::Stop(nsDocLoaderImpl * const 0x0146eea0) line 277 + 31 bytes nsURILoader::Stop(nsURILoader * const 0x01455360, nsISupports * 0x0146eeb8) line 853 + 23 bytes nsDocShell::Stop(nsDocShell * const 0x014607f0) line 1682 nsDocShell::Destroy(nsDocShell * const 0x014607f4) line 1808 nsWebShell::Destroy(nsWebShell * const 0x014607f4) line 1484 nsXULWindow::Destroy(nsXULWindow * const 0x01463644) line 361 nsWebShellWindow::Destroy(nsWebShellWindow * const 0x01463644) line 1734 + 9 bytes nsChromeTreeOwner::Destroy(nsChromeTreeOwner * const 0x0146ed74) line 227 GlobalWindowImpl::Close(GlobalWindowImpl * const 0x023eb424) line 2141 nsAppShellService::Quit(nsAppShellService * const 0x00a12550) line 446 XPTC_InvokeByIndex(nsISupports * 0x00a12550, unsigned int 6, unsigned int 0, nsXPTCVariant * 0x0012d3dc) line 139 nsXPCWrappedNativeClass::CallWrappedMethod(JSContext * 0x023ed8a0, nsXPCWrappedNative * 0x02d85e70, const XPCNativeMemberDescriptor * 0x02d954c0, nsXPCWrappedNativeClass::CallMode CALL_METHOD, unsigned int 0, long * 0x027b0234, long * 0x0012d5c4) line 934 + 42 bytes WrappedNative_CallMethod(JSContext * 0x023ed8a0, JSObject * 0x00e01b20, unsigned int 0, long * 0x027b0234, long * 0x0012d5c4) line 250 + 34 bytes js_Invoke(JSContext * 0x023ed8a0, unsigned int 0, unsigned int 0) line 813 + 23 bytes js_Interpret(JSContext * 0x023ed8a0, long * 0x0012e344) line 2706 + 15 bytes js_Invoke(JSContext * 0x023ed8a0, unsigned int 1, unsigned int 2) line 830 + 13 bytes js_InternalInvoke(JSContext * 0x023ed8a0, JSObject * 0x00e553f0, long 41762328, unsigned int 0, unsigned int 1, long * 0x0012e4dc, long * 0x0012e46c) line 902 + 20 bytes JS_CallFunctionValue(JSContext * 0x023ed8a0, JSObject * 0x00e553f0, long 41762328, unsigned int 1, long * 0x0012e4dc, long * 0x0012e46c) line 3334 + 31 bytes nsJSContext::CallEventHandler(nsJSContext * const 0x023ed590, void * 0x00e553f0, void * 0x027d3e18, unsigned int 1, void * 0x0012e4dc, int * 0x0012e4d8, int 0) line 940 + 33 bytes nsJSEventListener::HandleEvent(nsIDOMEvent * 0x02d80f44) line 154 + 64 bytes nsEventListenerManager::HandleEventSubType(nsListenerStruct * 0x02b6f220, nsIDOMEvent * 0x02d80f44, nsIDOMEventTarget * 0x02b690d8, unsigned int 8, unsigned int 7) line 1035 + 19 bytes nsEventListenerManager::HandleEvent(nsIPresContext * 0x023e8c00, nsEvent * 0x0012ef00, nsIDOMEvent * * 0x0012edc4, nsIDOMEventTarget * 0x02b690d8, unsigned int 7, nsEventStatus * 0x0012ef48) line 1955 + 39 bytes nsXULElement::HandleDOMEvent(nsXULElement * const 0x02b690d0, nsIPresContext * 0x023e8c00, nsEvent * 0x0012ef00, nsIDOMEvent * * 0x0012edc4, unsigned int 1, nsEventStatus * 0x0012ef48) line 3675 PresShell::HandleDOMEventWithTarget(PresShell * const 0x02458510, nsIContent * 0x02b690d0, nsEvent * 0x0012ef00, nsEventStatus * 0x0012ef48) line 5545 + 39 bytes nsButtonBoxFrame::MouseClicked(nsIPresContext * 0x023e8c00, nsGUIEvent * 0x0012f0fc) line 181 nsButtonBoxFrame::HandleEvent(nsButtonBoxFrame * const 0x00e6b1a8, nsIPresContext * 0x023e8c00, nsGUIEvent * 0x0012f0fc, nsEventStatus * 0x0012f3f0) line 128 PresShell::HandleEventInternal(nsEvent * 0x0012f0fc, nsIView * 0x00000000, unsigned int 1, nsEventStatus * 0x0012f3f0) line 5513 + 41 bytes PresShell::HandleEventWithTarget(PresShell * const 0x02458510, nsEvent * 0x0012f0fc, nsIFrame * 0x00e6b1a8, nsIContent * 0x02b690d0, unsigned int 1, nsEventStatus * 0x0012f3f0) line 5471 + 22 bytes nsEventStateManager::CheckForAndDispatchClick(nsEventStateManager * const 0x02b980c0, nsIPresContext * 0x023e8c00, nsMouseEvent * 0x0012f4fc, nsEventStatus * 0x0012f3f0) line 2340 + 61 bytes nsEventStateManager::PostHandleEvent(nsEventStateManager * const 0x02b980c8, nsIPresContext * 0x023e8c00, nsEvent * 0x0012f4fc, nsIFrame * 0x00e6b1a8, nsEventStatus * 0x0012f3f0, nsIView * 0x024231a0) line 1439 + 28 bytes PresShell::HandleEventInternal(nsEvent * 0x0012f4fc, nsIView * 0x024231a0, unsigned int 1, nsEventStatus * 0x0012f3f0) line 5518 + 43 bytes PresShell::HandleEvent(PresShell * const 0x02458514, nsIView * 0x024231a0, nsGUIEvent * 0x0012f4fc, nsEventStatus * 0x0012f3f0, int 1, int & 1) line 5425 + 25 bytes nsView::HandleEvent(nsView * const 0x024231a0, nsGUIEvent * 0x0012f4fc, unsigned int 28, nsEventStatus * 0x0012f3f0, int 1, int & 1) line 377 nsViewManager::DispatchEvent(nsViewManager * const 0x02423680, nsGUIEvent * 0x0012f4fc, nsEventStatus * 0x0012f3f0) line 2055 HandleEvent(nsGUIEvent * 0x0012f4fc) line 68 nsWindow::DispatchEvent(nsWindow * const 0x02424ee4, nsGUIEvent * 0x0012f4fc, nsEventStatus & nsEventStatus_eIgnore) line 704 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012f4fc) line 725 nsWindow::DispatchMouseEvent(unsigned int 301, nsPoint * 0x00000000) line 4028 + 21 bytes ChildWindow::DispatchMouseEvent(unsigned int 301, nsPoint * 0x00000000) line 4273 nsWindow::ProcessMessage(unsigned int 514, unsigned int 0, long 16384310, long * 0x0012f8cc) line 3009 + 24 bytes nsWindow::WindowProc(HWND__ * 0x00250e82, unsigned int 514, unsigned int 0, long 16384310) line 959 + 27 bytes USER32! 77e7124c()
david (dprice): can you verify with doug/neeti that the loadgroup is being set properly and that we are cleaning up correctly as the dialog box goes away? And is this a correct understanding that it's only an assertion?
->dprice
Assignee: neeti → dprice
Status: REOPENED → NEW
This bug is back with a vengence today, and blocking me from running debug builds. We HAVE to nail this one.
i saw this occur using 2001.05.10.08-moz on linux, right after i had used 2001.05.08.0x comm bits. got the dialog: Error creating browser instance console output: Failed to load XBL document jar:resource:///chrome/toolkit.jar!/content/global/xulBindings.xml JavaScript error: chrome://navigator/content/navigator.js line 366: window.XULBrowserWindow has no propertie s unfortunately, tried repeating it, but it doesn't seem to lend itself to consistent reproducibility. :(
Here's something weird: remove requests are using platform-style paths: 0[d91af6c]: LOADGROUP [dae2fa8]: Removing request dd3b734 Development:Trees:Editor tree:editor src:mozilla:dist:viewer_debug:chrome:classic:skin:classic:global:button-def- active-right-btm.gif status 0 (count=-1). 0[d91af6c]: LOADGROUP [dae2fa8]: Unable to remove request dd3b734. Not in group! and hence all failing on mac!
Hrmm, ignore that last comment. Requests are identified by address, not name (though it still seems like a bug that nsIRequest::GetName sometimes returns a platform file path, and sometimes resturns a URL; the calls returning a native file path are those that propagate down to nsFileTransport).
So here's what was happening. At some point, Conrad hooked up profile observer stuff that caused nsChromeRegistry::RefreshSkins to be called synchronously. This means that on pressing the OK button on the profile picker, we'd call RefreshSkins, which would blow away the chrome and image caches, and refesh all existing windows *including the profile picker window which was still up*. This caused a reload of xulBindings.xml which would promptly get cancelled when the profile manager dialog was closed. It would be a crapshoot as to whether it would finish loading (amongst all the other css/image reloading) before the window closed. The fix is to have nsChromeRegistry::LoadProfileDataSource() just flush the chrome caches, and not try to refresh all of the open windows.
Assignee: dprice → sfraser
*** Bug 78110 has been marked as a duplicate of this bug. ***
Fixed.
Status: NEW → RESOLVED
Closed: 24 years ago24 years ago
Resolution: --- → FIXED
*** Bug 76365 has been marked as a duplicate of this bug. ***
QA Contact: tever → benc
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: