Closed Bug 18085 Opened 25 years ago Closed 25 years ago

Many assertions and wrong layout when viewing this url

Categories

(Core :: Layout, defect, P3)

x86
Windows NT
defect

Tracking

()

VERIFIED WONTFIX

People

(Reporter: scottputterman, Assigned: pierre)

References

()

Details

Attachments

(1 file)

When I go to the URL: http://www.zdnet.com/anchordesk/story/story_4072.html I
get many assertions in

      NS_ASSERTION((node->mContent != aNode->mContent) ||
                   ((node->mContent == nsnull) &&
                    (node->mStyle != aNode->mStyle)), "node in map twice");

and the page lays out too far to the right.

NTDLL! 77f7629c()
nsDebug::Assertion(const char * 0x01d1fad8, const char * 0x01d1fa70, const char
* 0x01d1fa34, int 1757) line 280 + 13 bytes
UndisplayedMap::AppendNodeFor(UndisplayedNode * 0x04274b30, nsIContent *
0x042d03b0) line 1757 + 60 bytes
UndisplayedMap::AddNodeFor(nsIContent * 0x042d03b0, nsIContent * 0x042a34dc,
nsIStyleContext * 0x0433f0b0) line 1779
FrameManager::SetUndisplayedContent(FrameManager * const 0x041dac60, nsIContent
* 0x042a34dc, nsIStyleContext * 0x0433f0b0) line 538 + 23 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042a34dc, nsIFrame * 0x04277a80,
nsFrameItems & {...}) line 4905
nsCSSFrameConstructor::ProcessChildren(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d03b0, nsIFrame * 0x04277a80,
int 1, nsFrameItems & {...}, int 1) line 7938 + 33 bytes
nsCSSFrameConstructor::ConstructTableCellFrameOnly(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d03b0, nsIFrame * 0x04277b90,
nsIStyleContext * 0x0433b560, nsIFrame * & 0x04277b00, nsIFrame * & 0x04277a80,
nsTableCreator & {...}, int 1) line 1772 + 34 bytes
nsCSSFrameConstructor::ConstructTableCellFrame(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d03b0, nsIFrame * 0x04277b90,
nsIStyleContext * 0x0433b560, nsIFrame * & 0x00000000, nsIFrame * & 0x04277b00,
nsIFrame * & 0x04277a80, nsTableCreator & {...}, int 1) line 1683 + 49 bytes
nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, const nsStyleDisplay * 0x0433b784, nsIContent *
0x042d03b0, nsIFrame * 0x04277b90, nsIStyleContext * 0x0433b560, nsFrameItems &
{...}) line 4519 + 55 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d03b0, nsIFrame * 0x04277b90,
nsFrameItems & {...}) line 4941 + 41 bytes
nsCSSFrameConstructor::TableProcessChild(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d03b0, nsIFrame * 0x04277b90,
nsIStyleContext * 0x04275780, nsFrameItems & {...}, nsTableCreator & {...}) line
1853 + 28 bytes
nsCSSFrameConstructor::TableProcessChildren(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d042c, nsIFrame * 0x04277b90,
nsFrameItems & {...}, nsTableCreator & {...}) line 1828 + 46 bytes
nsCSSFrameConstructor::ConstructTableRowFrameOnly(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d042c, nsIFrame * 0x04277c10,
nsIStyleContext * 0x04275780, int 1, nsIFrame * & 0x04277b90, nsTableCreator &
{...}) line 1573 + 34 bytes
nsCSSFrameConstructor::ConstructTableRowFrame(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d042c, nsIFrame * 0x04277c10,
nsIStyleContext * 0x04275780, nsIFrame * & 0x00000000, nsIFrame * & 0x04277b90,
nsTableCreator & {...}, nsTableList * 0x00000000) line 1516 + 45 bytes
nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, const nsStyleDisplay * 0x042759a4, nsIContent *
0x042d042c, nsIFrame * 0x04277c10, nsIStyleContext * 0x04275780, nsFrameItems &
{...}) line 4511 + 48 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d042c, nsIFrame * 0x04277c10,
nsFrameItems & {...}) line 4941 + 41 bytes
nsCSSFrameConstructor::TableProcessChild(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d042c, nsIFrame * 0x04277c10,
nsIStyleContext * 0x04275c70, nsFrameItems & {...}, nsTableCreator & {...}) line
1853 + 28 bytes
nsCSSFrameConstructor::TableProcessChildren(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d04ac, nsIFrame * 0x04277c10,
nsFrameItems & {...}, nsTableCreator & {...}) line 1828 + 46 bytes
nsCSSFrameConstructor::ConstructTableGroupFrameOnly(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d04ac, nsIFrame * 0x04277d50,
nsIStyleContext * 0x04275c70, int 1, nsIFrame * & 0x04277c10, nsIFrame * &
0x04277c10, nsTableCreator & {...}, int 1) line 1463
nsCSSFrameConstructor::ConstructTableGroupFrame(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d04ac, nsIFrame * 0x04277d50,
nsIStyleContext * 0x04275c70, int 1, nsIFrame * & 0x04277c10, nsIFrame * &
0x04277c10, nsTableCreator & {...}, nsTableList * 0x00000000) line 1357 + 53
bytes
nsCSSFrameConstructor::ConstructTableFrame(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d28ac, nsIFrame * 0x04119ad0,
nsIStyleContext * 0x04276300, nsIFrame * & 0x04277de0, nsTableCreator & {...})
line 1062 + 56 bytes
nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, const nsStyleDisplay * 0x04276524, nsIContent *
0x042d28ac, nsIFrame * 0x04119ad0, nsIStyleContext * 0x04276300, nsFrameItems &
{...}) line 4475 + 42 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x042d28ac, nsIFrame * 0x04119ad0,
nsFrameItems & {...}) line 4941 + 41 bytes
nsCSSFrameConstructor::ProcessChildren(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x04211fac, nsIFrame * 0x04119ad0,
int 1, nsFrameItems & {...}, int 0) line 7938 + 33 bytes
nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, const nsStyleDisplay * 0x042782d4, nsIContent *
0x04211fac, nsIFrame * 0x04119fa0, nsIStyleContext * 0x042780b0, nsFrameItems &
{...}) line 4412
nsCSSFrameConstructor::ConstructFrame(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x04211fac, nsIFrame * 0x04119fa0,
nsFrameItems & {...}) line 4941 + 41 bytes
nsCSSFrameConstructor::ProcessBlockChildren(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x041eaa0c, nsIFrame * 0x04119fa0,
int 1, nsFrameItems & {...}, int 1) line 9128 + 33 bytes
nsCSSFrameConstructor::ConstructBlock(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, const nsStyleDisplay * 0x042017b4, nsIContent *
0x041eaa0c, nsIFrame * 0x04202a60, nsIStyleContext * 0x04201590, nsIFrame *
0x04119fa0) line 9082 + 32 bytes
nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, const nsStyleDisplay * 0x042017b4, nsIContent *
0x041eaa0c, nsIFrame * 0x04202a60, nsIStyleContext * 0x04201590, nsFrameItems &
{...}) line 4434 + 39 bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x041eaa0c, nsIFrame * 0x04202a60,
nsFrameItems & {...}) line 4941 + 41 bytes
nsCSSFrameConstructor::ContentInserted(nsCSSFrameConstructor * const 0x041db2c0,
nsIPresContext * 0x041c60b0, nsIContent * 0x041c55fc, nsIContent * 0x041eaa0c,
int 2) line 5849 + 37 bytes
nsCSSFrameConstructor::ContentReplaced(nsCSSFrameConstructor * const 0x041db2c0,
nsIPresContext * 0x041c60b0, nsIContent * 0x041c55fc, nsIContent * 0x041eaa0c,
nsIContent * 0x041eaa0c, int 2) line 5966 + 28 bytes
nsCSSFrameConstructor::WipeContainingBlock(nsIPresContext * 0x041c60b0,
nsFrameConstructorState & {...}, nsIContent * 0x041eaa0c, nsIFrame * 0x042cd850,
nsIFrame * 0x0431c6a0) line 9480
nsCSSFrameConstructor::ContentAppended(nsCSSFrameConstructor * const 0x041db2c0,
nsIPresContext * 0x041c60b0, nsIContent * 0x04211fac, int 21) line 5400 + 33
bytes
StyleSetImpl::ContentAppended(StyleSetImpl * const 0x041db360, nsIPresContext *
0x041c60b0, nsIContent * 0x04211fac, int 21) line 935
PresShell::ContentAppended(PresShell * const 0x041db1b8, nsIDocument *
0x041c6aa0, nsIContent * 0x04211fac, int 21) line 1875 + 46 bytes
nsDocument::ContentAppended(nsDocument * const 0x041c6aa0, nsIContent *
0x04211fac, int 21) line 1510
nsHTMLDocument::ContentAppended(nsHTMLDocument * const 0x041c6aa0, nsIContent *
0x04211fac, int 21) line 994
HTMLContentSink::NotifyAppend(nsIContent * 0x04211fac, int 21) line 3474
SinkContext::FlushTags() line 1726
HTMLContentSink::PreEvaluateScript() line 3521
HTMLContentSink::ProcessSCRIPTTag(const nsIParserNode & {...}) line 3791 + 11
bytes
HTMLContentSink::AddLeaf(HTMLContentSink * const 0x041c5810, const nsIParserNode
& {...}) line 2588 + 12 bytes
CNavDTD::AddLeaf(const nsIParserNode & {...}) line 2863 + 22 bytes
CNavDTD::HandleScriptToken(nsCParserNode & {...}) line 1682 + 12 bytes
CNavDTD::OpenContainer(const nsIParserNode & {...}, int 1) line 2652 + 12 bytes
CNavDTD::HandleDefaultStartToken(CToken * 0x020fef40, nsHTMLTag eHTMLTag_script,
nsIParserNode & {...}) line 992 + 14 bytes
CNavDTD::HandleStartToken(CToken * 0x020fef40) line 1285 + 22 bytes
CNavDTD::HandleToken(CNavDTD * const 0x041da150, CToken * 0x02252260, nsIParser
* 0x041c5a60) line 654 + 12 bytes
CNavDTD::BuildModel(CNavDTD * const 0x041da150, nsIParser * 0x041c5a60,
nsITokenizer * 0x041d9b50, nsITokenObserver * 0x00000000, nsIContentSink *
0x041c5810) line 458 + 20 bytes
nsParser::BuildModel() line 1048 + 34 bytes
nsParser::ResumeParse(nsIDTD * 0x00000000, int 0) line 959 + 11 bytes
nsParser::OnDataAvailable(nsParser * const 0x041c5a64, nsIChannel * 0x04188310,
nsISupports * 0x00000000, nsIInputStream * 0x041c6538, unsigned int 0, unsigned
int 6319) line 1335 + 19 bytes
nsDocumentBindInfo::OnDataAvailable(nsDocumentBindInfo * const 0x0417f290,
nsIChannel * 0x04188310, nsISupports * 0x00000000, nsIInputStream * 0x041c6538,
unsigned int 0, unsigned int 6319) line 1216 + 32 bytes
nsChannelListener::OnDataAvailable(nsChannelListener * const 0x041bd470,
nsIChannel * 0x04188310, nsISupports * 0x00000000, nsIInputStream * 0x041c6538,
unsigned int 0, unsigned int 6319) line 1402
nsHTTPResponseListener::OnDataAvailable(nsHTTPResponseListener * const
0x041c79c0, nsIChannel * 0x041c74f0, nsISupports * 0x04188310, nsIInputStream *
0x041c6538, unsigned int 8017, unsigned int 6319) line 171 + 47 bytes
nsOnDataAvailableEvent::HandleEvent(nsOnDataAvailableEvent * const 0x04270ea0)
line 413
nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x04270e50) line 169 + 12 bytes
PL_HandleEvent(PLEvent * 0x04270e50) line 537 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x010819a0) line 498 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x00070c3a, unsigned int 49405, unsigned int 0,
long 17308064) line 972 + 9 bytes
USER32! 77e71820()
0108
Assignee: troy → pierre
I'm pretty sure there's an existing bug about the asserts, but I don't know
which one it is
Status: NEW → ASSIGNED
I sent the following mail to Troy:
=====

The problem seems to be related to ILAYER tags but when looking into it, I
noticed two others weird things. Maybe you know the response for these:

- We define NS_STYLE_DISPLAY_INLINE_BLOCK in nsStyleConsts.h which
corresponds to eCSSKeyword_inline_block in nsCSSProps.cpp but the
'inline-block' display type doesn't appear anywhere in the CSS specs. Do you
know why Peter did it? I thought it could be to solve some problems with
inline layers.

- Inline layers seem to work correctly inside a <DIV> but not inside a <P>.
When <ILAYER> is inside <P>, it looks like the <ILAYER> block generates a new
paragraph (ie. it is displayed on a new line and with an additional vertical
margin). Do you know why is that just off the top of your head?

The sample code is:
  <HTML>
  <H3>Test</H3>
      <p>
          And now I want a
          <ILAYER TOP=20 LEFT=30>
              just-a-single-word
          </ILAYER>
          that is offset from its natural position.
      </p>
  </HTML>

The relevant CSS declarations are:

  p {
    display: block;
    margin: 1em 0;
  }

  div {
    display: block;
  }


  ilayer {
    position: relative;
    display: inline;
  }

=====
I'll attach a simplified version of the page above. The source has 2 ILAYER tags.
If you put a <BR> between, the page displays correctly. It seems to show that we
have a bug in the relative positioning of <ilayer> elements.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → WONTFIX
What am I doing? It's a <layer> tag problem: just close it as WontFix, geeesh!
Status: RESOLVED → VERIFIED
Marking as verified won't fix
*** Bug 18490 has been marked as a duplicate of this bug. ***
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: