Closed Bug 265283 Opened 20 years ago Closed 16 years ago

ASSERTION: Binding load from a non-URL URI not allowed.: 'Error', file r:/mozilla/content/xbl/src/nsXBLService.cpp, line 862

Categories

(Core :: XBL, defect, P5)

x86
Windows XP
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: timeless, Unassigned)

Details

(Keywords: assertion)

XML Parsing Error: not well-formed
Location: jar:resource:///chrome/toolkit.jar!/content/global/bindings/browser.xml
Line Number 192, Column 51:
                onget="return this.webNavigation && this.webNavigation.currentURI;"
--------------------------------------------------^

###!!! ASSERTION: Binding load from a non-URL URI not allowed.: 'Error', file
r:/mozilla/content/xbl/src/nsXBLService.cpp, line 862

Yes, i know the xml is bad, and yes it's probably a requirement for triggering
the assert, but the assert is the subject of the bug, not my absentminded xml
authoring :)

 	xpcom.dll!nsDebug::Assertion(const char * aStr=0x01d14fb4, const char *
aExpr=0x01cd63ac, const char * aFile=0x01d14be0, int aLine=0x0000035e)  Line 109	C++
 	gklayout.dll!nsXBLService::GetBindingInternal(nsIContent *
aBoundElement=0x0350f5e0, nsIURI * aURI=0x0358fc38, int aPeekOnly=0x00000000,
int * aIsReady=0x0012df90, nsIXBLBinding * * aResult=0x0012df54)  Line 862 +
0x1a	C++
>	gklayout.dll!nsXBLService::GetBindingInternal(nsIContent *
aBoundElement=0x0350f5e0, nsIURI * aURI=0x03590008, int aPeekOnly=0x00000000,
int * aIsReady=0x0012df90, nsIXBLBinding * * aResult=0x0012e084)  Line 989 +
0x26	C++
 	gklayout.dll!nsXBLService::GetBinding(nsIContent * aBoundElement=0x0350f5e0,
nsIURI * aURI=0x01683f78, nsIXBLBinding * * aResult=0x0012e084)  Line 838	C++
 	gklayout.dll!nsXBLService::LoadBindings(nsIContent * aContent=0x6c696620,
nsIURI * aURL=0x3a722065, int aAugmentFlag=0x7a6f6d2f, nsIXBLBinding * *
aBinding=0x616c6c69, int * aResolveStyle=0x6e6f632f)  Line 578 + 0x1a	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0350f5e0,
nsIFrame * aParentFrame=0x03574594, nsIAtom * aTag=0x015a5448, int
aNameSpaceID=0x00000009, nsStyleContext * aStyleContext=0x035746a4, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000)  Line 7231 + 0x23	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrame(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x00000000,
nsIFrame * aParentFrame=0x03574594, nsFrameItems & aFrameItems={...})  Line 7189	C++
 	gklayout.dll!nsCSSFrameConstructor::ProcessChildren(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0350f510,
nsIFrame * aFrame=0x0350f5e0, int aCanHaveGeneratedContent=0x00000000,
nsFrameItems & aFrameItems={...}, int aParentIsBlock=0x00000000, nsTableCreator
* aTableCreator=0x0350f5e0)  Line 11525 + 0x2e	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *
aPresShell=0x00000000, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0350f510,
nsIFrame * aParentFrame=0x03507168, nsIAtom * aTag=0x015a5358, int
aNameSpaceID=0x00000001, nsStyleContext * aStyleContext=0x03574200, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000, int &
aHaltProcessing=0x0350f510)  Line 5696 + 0x1b	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0350f510,
nsIFrame * aParentFrame=0x03507168, nsIAtom * aTag=0x015a5358, int
aNameSpaceID=0x00000009, nsStyleContext * aStyleContext=0x03507234, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000)  Line 7296 + 0x25	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrame(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x00000000,
nsIFrame * aParentFrame=0x03507168, nsFrameItems & aFrameItems={...})  Line 7189	C++
 	gklayout.dll!nsCSSFrameConstructor::ProcessChildren(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x03540f28,
nsIFrame * aFrame=0x0350f510, int aCanHaveGeneratedContent=0x00000000,
nsFrameItems & aFrameItems={...}, int aParentIsBlock=0x00000000, nsTableCreator
* aTableCreator=0x0350f510)  Line 11525 + 0x2e	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *
aPresShell=0x00000001, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x03540f28,
nsIFrame * aParentFrame=0x03507084, nsIAtom * aTag=0x015a52c0, int
aNameSpaceID=0x00000001, nsStyleContext * aStyleContext=0x03506ee0, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000001, int &
aHaltProcessing=0x03540f28)  Line 5696 + 0x1b	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x03540f28,
nsIFrame * aParentFrame=0x03507084, nsIAtom * aTag=0x015a52c0, int
aNameSpaceID=0x00000009, nsStyleContext * aStyleContext=0x03507118, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000001)  Line 7296 + 0x25	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x03540f28,
nsIFrame * aParentFrame=0x03507084, nsIAtom * aTag=0x015a5348, int
aNameSpaceID=0x00000009, nsStyleContext * aStyleContext=0x03506ee0, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000)  Line 7257	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrame(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x00000000,
nsIFrame * aParentFrame=0x03507084, nsFrameItems & aFrameItems={...})  Line 7189	C++
 	gklayout.dll!nsCSSFrameConstructor::ProcessChildren(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c468,
nsIFrame * aFrame=0x03540f28, int aCanHaveGeneratedContent=0x00000000,
nsFrameItems & aFrameItems={...}, int aParentIsBlock=0x00000000, nsTableCreator
* aTableCreator=0x03540f28)  Line 11525 + 0x2e	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *
aPresShell=0x00000001, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c468,
nsIFrame * aParentFrame=0x03506ac8, nsIAtom * aTag=0x01684258, int
aNameSpaceID=0x00000001, nsStyleContext * aStyleContext=0x03506b84, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000, int &
aHaltProcessing=0x0306c468)  Line 5696 + 0x1b	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c468,
nsIFrame * aParentFrame=0x03506ac8, nsIAtom * aTag=0x01684258, int
aNameSpaceID=0x00000009, nsStyleContext * aStyleContext=0x00000000, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000)  Line 7296 + 0x25	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrame(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x00000000,
nsIFrame * aParentFrame=0x03506ac8, nsFrameItems & aFrameItems={...})  Line 7189	C++
 	gklayout.dll!nsCSSFrameConstructor::ProcessChildren(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c338,
nsIFrame * aFrame=0x0306c468, int aCanHaveGeneratedContent=0x00000000,
nsFrameItems & aFrameItems={...}, int aParentIsBlock=0x00000000, nsTableCreator
* aTableCreator=0x0306c468)  Line 11525 + 0x2e	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *
aPresShell=0x00000001, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c338,
nsIFrame * aParentFrame=0x03506a10, nsIAtom * aTag=0x015a52c8, int
aNameSpaceID=0x00000001, nsStyleContext * aStyleContext=0x03506a7c, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000, int &
aHaltProcessing=0x0306c338)  Line 5696 + 0x1b	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c338,
nsIFrame * aParentFrame=0x03506a10, nsIAtom * aTag=0x015a52c8, int
aNameSpaceID=0x00000009, nsStyleContext * aStyleContext=0x00000000, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000)  Line 7296 + 0x25	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrame(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x00000000,
nsIFrame * aParentFrame=0x03506a10, nsFrameItems & aFrameItems={...})  Line 7189	C++
 	gklayout.dll!nsCSSFrameConstructor::ProcessChildren(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c188,
nsIFrame * aFrame=0x0306c338, int aCanHaveGeneratedContent=0x00000000,
nsFrameItems & aFrameItems={...}, int aParentIsBlock=0x00000000, nsTableCreator
* aTableCreator=0x0306c338)  Line 11525 + 0x2e	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *
aPresShell=0x00000001, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c188,
nsIFrame * aParentFrame=0x034f70ec, nsIAtom * aTag=0x015a52d0, int
aNameSpaceID=0x00000001, nsStyleContext * aStyleContext=0x0350696c, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000, int &
aHaltProcessing=0x0306c188)  Line 5696 + 0x1b	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c188,
nsIFrame * aParentFrame=0x034f70ec, nsIAtom * aTag=0x015a52d0, int
aNameSpaceID=0x00000009, nsStyleContext * aStyleContext=0x034f7204, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000)  Line 7296 + 0x25	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrame(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x00000000,
nsIFrame * aParentFrame=0x034f70ec, nsFrameItems & aFrameItems={...})  Line 7189	C++
 	gklayout.dll!nsCSSFrameConstructor::ProcessChildren(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c018,
nsIFrame * aFrame=0x0306c188, int aCanHaveGeneratedContent=0x00000000,
nsFrameItems & aFrameItems={...}, int aParentIsBlock=0x00000000, nsTableCreator
* aTableCreator=0x0306c188)  Line 11525 + 0x2e	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *
aPresShell=0x00000001, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c018,
nsIFrame * aParentFrame=0x02c1d7d4, nsIAtom * aTag=0x015a52c8, int
aNameSpaceID=0x00000001, nsStyleContext * aStyleContext=0x02c1d750, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000, int &
aHaltProcessing=0x0306c018)  Line 5696 + 0x1b	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0306c018,
nsIFrame * aParentFrame=0x02c1d7d4, nsIAtom * aTag=0x015a52c8, int
aNameSpaceID=0x00000009, nsStyleContext * aStyleContext=0x03363494, nsFrameItems
& aFrameItems={...}, int aXBLBaseTag=0x00000000)  Line 7296 + 0x25	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructFrame(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x00000000,
nsIFrame * aParentFrame=0x02c1d7d4, nsFrameItems & aFrameItems={...})  Line 7189	C++
 	gklayout.dll!nsCSSFrameConstructor::ProcessChildren(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aContent=0x02eb2538,
nsIFrame * aFrame=0x0306c018, int aCanHaveGeneratedContent=0x00000001,
nsFrameItems & aFrameItems={...}, int aParentIsBlock=0x00000000, nsTableCreator
* aTableCreator=0x0306c018)  Line 11525 + 0x2e	C++
 	gklayout.dll!nsCSSFrameConstructor::ConstructDocElementFrame(nsIPresShell *
aPresShell=0x02a8c758, nsPresContext * aPresContext=0x01723da8,
nsFrameConstructorState & aState={...}, nsIContent * aDocElement=0x02eb2538,
nsIFrame * aParentFrame=0x02c1d5fc, nsIFrame * & aNewFrame=0x02c1d7d4)  Line
3731	C++
 	gklayout.dll!nsCSSFrameConstructor::ContentInserted(nsPresContext *
aPresContext=0x02c1d7d4, nsIContent * aContainer=0x00000000, nsIFrame *
aContainerFrame=0x00000000, nsIContent * aChild=0x02eb2538, int
aIndexInContainer=0x00000000, nsILayoutHistoryState * aFrameState=0x00000000,
int aInReinsertContent=0x00000000)  Line 8810	C++
 	gklayout.dll!PresShell::InitialReflow(int aWidth=0x616c6c69, int
aHeight=0x6e6f632f)  Line 2711	C++
 	gklayout.dll!nsXULDocument::StartLayout()  Line 2157	C++
 	gklayout.dll!nsXULDocument::ResumeWalk()  Line 2978	C++
 	gklayout.dll!nsXULDocument::OnPrototypeLoadDone()  Line 768 + 0x7	C++
 	gklayout.dll!nsXULPrototypeDocument::NotifyLoadDone()  Line 751 + 0xe	C++
 	gklayout.dll!nsXULDocument::EndLoad()  Line 734	C++
 	gklayout.dll!XULContentSinkImpl::DidBuildModel()  Line 461	C++
 	gkparser.dll!nsExpatDriver::DidBuildModel(unsigned int anErrorCode=0x00000000,
int aNotifySink=0x00000001, nsIParser * aParser=0x033a03d8, nsIContentSink *
aSink=0x033a0320)  Line 1062	C++
 	gkparser.dll!nsParser::DidBuildModel(unsigned int anErrorCode=0x00000000) 
Line 1248 + 0xe	C++
 	gkparser.dll!nsParser::ResumeParse(int allowIteration=0x00000001, int
aIsFinalChunk=0x00000001, int aCanInterrupt=0x00000001)  Line 1843	C++
 	gkparser.dll!nsParser::OnStopRequest(nsIRequest * request=0x0338c8f8,
nsISupports * aContext=0x00000000, unsigned int status=0x00000000)  Line 2495	C++
 	jar50.dll!nsJARChannel::OnStopRequest(nsIRequest * req=0x0338ccb0, nsISupports
* ctx=0x00000000, unsigned int status=0x00000000)  Line 692	C++
 	necko.dll!nsInputStreamPump::OnStateStop()  Line 505	C++
 	necko.dll!nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream *
stream=0x0338cda0)  Line 342	C++
 	xpcom.dll!nsInputStreamReadyEvent::EventHandler(PLEvent * plevent=0x033398ec)
 Line 119	C++
 	xpcom.dll!PL_HandleEvent(PLEvent * self=0x033398ec)  Line 693	C
 	xpcom.dll!PL_ProcessPendingEvents(PLEventQueue * self=0x010642b0)  Line 628	C
 	xpcom.dll!_md_EventReceiverProc(HWND__ * hwnd=0x002c12e2, unsigned int
uMsg=0x0000c14e, unsigned int wParam=0x00000000, long lParam=0x010642b0)  Line
1434	C
 	user32.dll!77d43a50() 	
 	user32.dll!77d43b1f() 	
 	user32.dll!GetMessageW()  + 0x125	
 	user32.dll!DispatchMessageW()  + 0xb	
 	appshell.dll!nsAppShellService::Run()  Line 489	C++
 	mozilla.exe!main1(int argc=0x7a6f6d2f, char * * argv=0x616c6c69, nsISupports *
nativeApp=0x6e6f632f)  Line 1322	C++
 	mozilla.exe!main(int argc=0x00000001, char * * argv=0x003f7be0)  Line 1813 +
0x16	C++
 	mozilla.exe!mainCRTStartup()  Line 400 + 0x11	C
 	kernel32.dll!TermsrvAppInstallMode()  + 0x269	

+	value	{mStorage=0x0012dbf8 "xul:browser" }	nsAutoString
+
{,,necko.dll}(*(nsACString*)(&(*(nsCSubstring*)(&(*(nsSimpleURI*){*}((bindingURI).mRawPtr)).mScheme))))
{mVTable=0x003949d8 const nsObsoleteACStringThunk::`vftable' mData=0x03590e08
"xul" mLength=0x00000003 ...}	const nsACString
+
{,,necko.dll}(*(nsACString*)(&(*(nsCSubstring*)(&(*(nsSimpleURI*){*}((bindingURI).mRawPtr)).mPath))))
{mVTable=0x003949d8 const nsObsoleteACStringThunk::`vftable' mData=0x03581f18
"browser" mLength=0x00000007 ...}	const nsACString

build is a bit out of date.
> and yes it's probably a requirement for triggering the assert

It shouldn't be.  The asserting code is:

856   if (!aURI)
857     return NS_ERROR_FAILURE;
858 
859   nsCOMPtr<nsIURL> url(do_QueryInterface(aURI));
860   if (!url) {
861 #ifdef DEBUG
862     NS_ERROR("Binding load from a non-URL URI not allowed.");

So the only way it can assert is if you have a non-null aURI that does not QI to
nsIURL.

In a debug build, what's the spec printed to the text console after that assert?
fwiw the "uri" it's complaining about is the thing from value: xul:browser.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P5
Assignee: hyatt → nobody
QA Contact: ian → xbl
Whiteboard: [expired?]
This asset is long since gone; for one thing we allow loads from data: now.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Whiteboard: [expired?]
You need to log in before you can comment on or make changes to this bug.