Closed Bug 7222 Opened 25 years ago Closed 25 years ago

assert when inserting sidebar into content model

Categories

(Core Graveyard :: RDF, defect, P3)

defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: Brade, Assigned: waterson)

References

Details

Attachments

(1 file)

Comments from slamm in bug #7047:
"Currently, removing the sidebar works fine. However, when I add it back in, the
order of the content nodes gets messed up. The sidebar, the splitter, and the
content area get reversed. I need to file another bug for that."

This is the bug that slamm intended to file.  I'm filing it to experiment with
terry's new feature in bugzilla.
Blocks: 7047
adding dependency: this bug needs to be fixed before bug #7047 can be fixed
Blocks: 7403
Status: NEW → ASSIGNED
Steve, do you have a simple test case exhibiting this bug?  If so, please
attach it.  If not, I can make one, but I thought I'd save some time.  Thanks.
I do not have a test case handy. However, I can put one together if you are
unable to reproduce this.
Assignee: nisheeth → waterson
Status: ASSIGNED → NEW
Component: DOM Level 0 → RDF
ConvertAttributeValueToResource() in nsRDFContentUtils.cpp asserts with the
message "element is not in any document" when contentframe.js tries to insert a
newly created sidebar node into the content model.  The call stack of the assert
is as follows:

NTDLL! 77f76148()
nsDebug::Assertion(char * 0x04a7e798, char * 0x04a7e788, char * 0x04a7e754, int
192) line 147 + 13 bytes
ConvertAttributeValueToResource(nsIContent * 0x0151a5dc, nsString & {...},
nsIRDFResource * * 0x0012e240) line 192 + 44 bytes
nsRDFContentUtils::GetElementResource(nsIContent * 0x0151a5dc, nsIRDFResource *
* 0x0012e240) line 231 + 17 bytes
RDFXULBuilderImpl::CreateOrRecycleElement(nsINameSpace * 0x01515a50,
nsIRDFResource * 0x01510220, nsIContent * * 0x0012e31c) line 1820 + 38 bytes
RDFXULBuilderImpl::AppendChild(nsINameSpace * 0x01515a50, nsIContent *
0x01519300, nsIRDFNode * 0x01510220) line 1652 + 51 bytes
RDFXULBuilderImpl::OnAssert(RDFXULBuilderImpl * const 0x01598b14, nsIRDFResource
* 0x014f9cf0, nsIRDFResource * 0x01508d00, nsIRDFNode * 0x01510220) line 963 +
33 bytes
CompositeDataSourceImpl::OnAssert(CompositeDataSourceImpl * const 0x01598844,
nsIRDFResource * 0x014f9cf0, nsIRDFResource * 0x01508d00, nsIRDFNode *
0x01510220) line 1169
InMemoryDataSource::Assert(InMemoryDataSource * const 0x015991c0, nsIRDFResource
* 0x014f9cf0, nsIRDFResource * 0x01508d00, nsIRDFNode * 0x01510220, int 1) line
1049
CompositeDataSourceImpl::Assert(CompositeDataSourceImpl * const 0x01598840,
nsIRDFResource * 0x014f9cf0, nsIRDFResource * 0x01508d00, nsIRDFNode *
0x01510220, int 1) line 796 + 28 bytes
RDFContainerImpl::Renumber(int 2) line 449 + 45 bytes
RDFContainerImpl::InsertElementAt(RDFContainerImpl * const 0x0164f450,
nsIRDFNode * 0x0164e840, int 2, int 1) line 250 + 12 bytes
RDFXULBuilderImpl::OnInsertBefore(RDFXULBuilderImpl * const 0x01598b18,
nsIDOMNode * 0x015192f0, nsIDOMNode * 0x0164e2f0, nsIDOMNode * 0x015a8340) line
1199 + 47 bytes
XULDocumentImpl::OnInsertBefore(XULDocumentImpl * const 0x015967b4, nsIDOMNode *
0x015192f0, nsIDOMNode * 0x0164e2f0, nsIDOMNode * 0x015a8340) line 3577
RDFElementImpl::InsertBefore(RDFElementImpl * const 0x015192f0, nsIDOMNode *
0x0164e2f0, nsIDOMNode * 0x015a8340, nsIDOMNode * * 0x0012e6e8) line 751
NodeInsertBefore(JSContext * 0x014c1c80, JSObject * 0x01988440, unsigned int 2,
long * 0x0193aeac, long * 0x0012e7a4) line 421 + 34 bytes
js_Invoke(JSContext * 0x014c1c80, unsigned int 2, int 0) line 650 + 26 bytes
js_Interpret(JSContext * 0x014c1c80, long * 0x0012efd0) line 2199 + 15 bytes
js_Invoke(JSContext * 0x014c1c80, unsigned int 0, int 0) line 666 + 13 bytes
js_Interpret(JSContext * 0x014c1c80, long * 0x0012f7b8) line 2199 + 15 bytes
js_Invoke(JSContext * 0x014c1c80, unsigned int 1, int 0) line 666 + 13 bytes
js_CallFunctionValue(JSContext * 0x014c1c80, JSObject * 0x019405e8, long
26478432, unsigned int 1, long * 0x0012f8fc, long * 0x0012f904) line 735 + 15
bytes
JS_CallFunctionValue(JSContext * 0x014c1c80, JSObject * 0x019405e8, long
26478432, unsigned int 1, long * 0x0012f8fc, long * 0x0012f904) line 2437 + 29
bytes
nsJSEventListener::HandleEvent(nsIDOMEvent * 0x0164ee20) line 97 + 34 bytes
nsEventListenerManager::HandleEvent(nsIPresContext & {...}, nsEvent *
0x0012facc, nsIDOMEvent * * 0x0012fa88, unsigned int 3, nsEventStatus &
nsEventStatus_eIgnore) line 561 + 21 bytes
RDFElementImpl::HandleDOMEvent(RDFElementImpl * const 0x015bbe40, nsIPresContext
& {...}, nsEvent * 0x0012facc, nsIDOMEvent * * 0x0012fa88, unsigned int 1,
nsEventStatus & nsEventStatus_eIgnore) line 2282
nsEventStateManager::CheckForAndDispatchClick(nsEventStateManager * const
0x0151fb30, nsIPresContext & {...}, nsMouseEvent * 0x0012fd38, nsEventStatus &
nsEventStatus_eIgnore) line 590 + 31 bytes
nsEventStateManager::PostHandleEvent(nsEventStateManager * const 0x0151fb30,
nsIPresContext & {...}, nsGUIEvent * 0x0012fd38, nsIFrame * 0x015c3bb0,
nsEventStatus & nsEventStatus_eIgnore, nsIView * 0x014f67b0) line 168 + 24 bytes
PresShell::HandleEvent(PresShell * const 0x0155d184, nsIView * 0x014f67b0,
nsGUIEvent * 0x0012fd38, nsEventStatus & nsEventStatus_eIgnore) line 2030 + 43
bytes
nsView::HandleEvent(nsView * const 0x014f67b0, nsGUIEvent * 0x0012fd38, unsigned
int 28, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 833
nsViewManager::DispatchEvent(nsViewManager * const 0x014f6470, nsGUIEvent *
0x0012fd38, nsEventStatus & nsEventStatus_eIgnore) line 1737
HandleEvent(nsGUIEvent * 0x0012fd38) line 67
nsWindow::DispatchEvent(nsWindow * const 0x014f6884, nsGUIEvent * 0x0012fd38,
nsEventStatus & nsEventStatus_eIgnore) line 416 + 10 bytes
nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012fd38) line 437
nsWindow::DispatchMouseEvent(unsigned int 301, nsPoint * 0x00000000) line 3006 +
15 bytes
ChildWindow::DispatchMouseEvent(unsigned int 301, nsPoint * 0x00000000) line
3155
nsWindow::ProcessMessage(unsigned int 514, unsigned int 0, long 5636099, long *
0x0012fef4) line 2368 + 24 bytes
nsWindow::WindowProc(void * 0x000c0500, unsigned int 514, unsigned int 0, long
5636099) line 479 + 27 bytes
USER32! 77e71250()
00560003()

To reproduce the above assert:

1) Replace your copy of contentframe.js with the file attached to this bug
report.
2) Run apprunner.

Assigning this to Chris for further investigation and changing component to
RDF...
Status: NEW → ASSIGNED
Summary: assert when inserting sidebar into content model
Target Milestone: M7
Depends on: 7698
I'm now seeing a crash in the JS GC with this patch applied. jband believes my
crash is related to bug 7698, so I'll tack on that dependency for now and cross
my fingers.
Depends on: 7940
No longer depends on: 7698
Okay, fur corrected me. The bug this _really_ depends on is 7940. Updated
dependencies.
No longer blocks: 7403
Target Milestone: M7 → M8
Slipping to M8; slamm has worked around this by just setting "display:none",
etc.
Depends on: 8453
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
slamm: I've tested this with the modified JS file and it works fine. I'm _not_
going to check in the modified JS: I'll leave that up to you to decide if you
actually want to check it in or not.
Kathleen Brade, or Chris Waterson could any of you please verify this bug ? or
provide a testcase to verify it ?
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: