Closed
Bug 29821
Opened 25 years ago
Closed 25 years ago
mozilla doesn't load frame on Coldwell Banker realty page
Categories
(Core :: Layout, defect, P3)
Core
Layout
Tracking
()
VERIFIED
FIXED
People
(Reporter: phil, Assigned: rods)
References
Details
(Whiteboard: [PDT+] Fix in tree, doing testing)
Attachments
(3 files)
Using 3/1 build on Windows NT
1. Go to http://www.cbnorcal.com
2. Click on Homes For Sale image/button on left side
3. Click on Santa Clara County area in image map
Expected: to get query page which can be submitted
Actual: frame which contains form controls is not loaded
Screen shots to follow
Reporter | ||
Comment 1•25 years ago
|
||
Reporter | ||
Comment 2•25 years ago
|
||
Reporter | ||
Comment 3•25 years ago
|
||
Looking at the source again, maybe this is really a table problem? cc'ing karnaze
Comment 5•25 years ago
|
||
This was not present in my 2AM pull from this morning, but it is present in the
daily build, I'd say this is a pretty recent regression...
Putting on PDT+ radar for beta1. But will make PDT- and release note if not
fixed by 03/03
Whiteboard: [PDT+] w/b minus on 03/03
Comment 7•25 years ago
|
||
Comment 8•25 years ago
|
||
I just tested back to a 2/23 build on NT and the problem was still there. The
2AM pull I had mentioned without the bug was Linux, so is very likely an NT only
bug, still looking into it.
Also, please note that this is a malformed testcase in that the left column
(which does not display) specifies ROWSPAN="x" where x is one more than the
number of rows remaining in the table. If I correct the ROWSPAN, the bug goes
away.
However, this is not just a table bug, as if I move, remove, or change the
hidden input or the select in the table, the bug also goes away.
OS: Windows NT → All
Hardware: PC → All
Reporter | ||
Comment 9•25 years ago
|
||
Malformed or not, Nav4 and IE5 both show the Submit/Clear form buttons.
Comment 10•25 years ago
|
||
Chris, I'm giving this to you because, far as I can tell, the contents of the
left table cell, which should be a text frame with "\n Left\n " are a text
frame with "" in this test case. Can you take a look? Thanks.
Content model:
...
tr@02105EEC refcount=3<
td@02105E80 rowspan=2 refcount=4<
Text@02100D30 refcount=3<\n Left\n >
>
>
...
Frame model:
...
TableRow(tr)(2)@00D3E654 next=00D3E77C {0,375,30,30} [state=00000004]
sc=02117CE0<
TableCell(td)(0)@00D3E69C {30,0,0,450} [state=00000004] sc=02117950<
Block(td)(0)@00D3E6F8 {0,225,0,0} [state=001c0406] sc=02117460(i=1,b=0)<
line 02102840: count=1 state=inline,dirty,,[0x401] {0,0,0,0} <
Text(0)@00D3E740[0,0,F] {0,0,0,0} [state=00000426] sc=021118D0<
""
>
>
>
>
>
...
Assignee: pollmann → karnaze
Updated•25 years ago
|
Component: HTMLFrames → Layout
Comment 11•25 years ago
|
||
Doesn't happen on Solaris or Linux. Does happen on NT. :S
Comment 12•25 years ago
|
||
Oops, I was looking at an old test case with Solaris/Linux. Please ignore the
last comment. This does seem to be an XP bug. Sorry!
Comment 13•25 years ago
|
||
Rod, the combo box is generating a reflow command during its
SetInitialChildList. This causes the combo box's first reflow to be an
incremental reflow instead of an initial reflow. The rule is THE FIRST REFLOW
MUST BE AN INITIAL REFLOW. If you need to call SetAttribute (which is generating
the reflow command), you should consider doing this during the initial reflow
istead of before. Below is the stack at the point at which the culprit reflow
command is being generated.
PresShell::AppendReflowCommand(PresShell * const 0x024b1b50, nsIReflowCommand *
0x024f6160) line 1856
nsFrame::CreateAndPostReflowCommand(nsIPresShell * 0x024b1b50, nsIFrame *
0x01198750,
nsIReflowCommand::ReflowType ReflowDirty, nsIFrame * 0x00000000, nsIAtom *
0x00000000 {???}, nsIAtom *
0x00000000 {???}) line 2738
nsBlockFrame::ReflowDirtyChild(nsBlockFrame * const 0x01198750, nsIPresShell *
0x024b1b50, nsIFrame *
0x0119879c) line 6192 + 21 bytes
nsTextFrame::ContentChanged(nsTextFrame * const 0x0119879c, nsIPresContext *
0x02468e50, nsIContent *
0x024f07dc, nsISupports * 0x00000000) line 802
nsCSSFrameConstructor::ContentChanged(nsCSSFrameConstructor * const 0x024b0090,
nsIPresContext *
0x02468e50, nsIContent * 0x024f07dc, nsISupports * 0x00000000) line 7528
StyleSetImpl::ContentChanged(StyleSetImpl * const 0x024b0130, nsIPresContext *
0x02468e50, nsIContent *
0x024f07dc, nsISupports * 0x00000000) line 994
PresShell::ContentChanged(PresShell * const 0x024b1b58, nsIDocument *
0x024a3e80, nsIContent * 0x024f07dc,
nsISupports * 0x00000000) line 2544 + 46 bytes
nsDocument::ContentChanged(nsDocument * const 0x024a3e80, nsIContent *
0x024f07dc, nsISupports * 0x00000000)
line 1551
nsGenericDOMDataNode::SetText(const unsigned short * 0x0012ec1c, int 0, int 1)
line 1023
nsTextNode::SetText(nsTextNode * const 0x024f07e0, const unsigned short *
0x0012ec1c, int 0, int 1) line 73 + 26
bytes
nsGfxButtonControlFrame::AttributeChanged(nsGfxButtonControlFrame * const
0x011986a8, nsIPresContext *
0x02468e50, nsIContent * 0x024f1fa0, int 0, nsIAtom * 0x01559a90 {"value"}, int
4) line 508 + 66 bytes
nsCSSFrameConstructor::AttributeChanged(nsCSSFrameConstructor * const
0x024b0090, nsIPresContext *
0x02468e50, nsIContent * 0x024f1fa0, int 0, nsIAtom * 0x01559a90 {"value"}, int
4) line 7818 + 35 bytes
StyleSetImpl::AttributeChanged(StyleSetImpl * const 0x024b0130, nsIPresContext *
0x02468e50, nsIContent *
0x024f1fa0, int 0, nsIAtom * 0x01559a90 {"value"}, int 4) line 1014
PresShell::AttributeChanged(PresShell * const 0x024b1b58, nsIDocument *
0x024a3e80, nsIContent * 0x024f1fa0, int 0,
nsIAtom * 0x01559a90 {"value"}, int 4) line 2573 + 57 bytes
nsDocument::AttributeChanged(nsDocument * const 0x024a3e80, nsIContent *
0x024f1fa0, int 0, nsIAtom *
0x01559a90 {"value"}, int 4) line 1674
nsGenericHTMLElement::SetHTMLAttribute(nsIAtom * 0x01559a90 {"value"}, const
nsHTMLValue & {...}, int 1) line
1127
nsGenericHTMLElement::SetAttribute(int 0, nsIAtom * 0x01559a90 {"value"}, const
nsString & {""}, int 1) line 1024 +
20 bytes
nsHTMLInputElement::SetAttribute(nsHTMLInputElement * const 0x024f1fa0, int 0,
nsIAtom * 0x01559a90 {"value"},
const nsString & {""}, int 1) line 188 + 30 bytes
nsComboboxControlFrame::InitTextStr(nsIPresContext * 0x02468e50, int 1) line 237
nsComboboxControlFrame::SetInitialChildList(nsComboboxControlFrame * const
0x0119845c,
nsIPresContext * 0x02468e50, nsIAtom * 0x00000000 {???}, nsIFrame * 0x011986a8)
line 1734
nsCSSFrameConstructor::ConstructSelectFrame(nsIPresShell * 0x024b1b50,
nsIPresContext * 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dafa4, nsIFrame * 0x011983d8,
nsIAtom * 0x01556ab0
{"select"}, nsIStyleContext * 0x024dfb90, nsIFrame * & 0x00000000, int & 0, int
0, int & 0, int 0, nsFrameItems &
{...}) line 3038
nsCSSFrameConstructor::ConstructFrameByTag(nsIPresShell * 0x024b1b50,
nsIPresContext * 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dafa4, nsIFrame * 0x011983d8,
nsIAtom * 0x01556ab0
{"select"}, nsIStyleContext * 0x024dfb90, nsFrameItems & {...}) line 3680 + 60
bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x024b1b50, nsIPresContext
* 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dafa4, nsIFrame * 0x011983d8,
nsFrameItems & {...}) line 5557
+ 50 bytes
nsCSSFrameConstructor::ProcessChildren(nsIPresShell * 0x024b1b50, nsIPresContext
* 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dbb40, nsIFrame * 0x011983d8,
int 1, nsFrameItems & {...}, int
1) line 8874 + 37 bytes
nsCSSFrameConstructor::ConstructTableCellFrameOnly(nsIPresShell * 0x024b1b50,
nsIPresContext * 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dbb40, nsIFrame * 0x01198334,
nsIStyleContext * 0x024edce0,
nsIFrame * & 0x0119837c, nsIFrame * & 0x011983d8, nsTableCreator & {...}, int 1)
line 1870 + 38 bytes
nsCSSFrameConstructor::ConstructTableCellFrame(nsIPresShell * 0x024b1b50,
nsIPresContext * 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dbb40, nsIFrame * 0x01198334,
nsIStyleContext * 0x024edce0,
nsIFrame * & 0x00000000, nsIFrame * & 0x0119837c, nsIFrame * & 0x011983d8,
nsTableCreator & {...}, int 1) line
1784 + 53 bytes
nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresShell * 0x024b1b50,
nsIPresContext * 0x02468e50,
nsFrameConstructorState & {...}, const nsStyleDisplay * 0x024edf24, nsIContent *
0x024dbb40, nsIFrame *
0x01198334, nsIStyleContext * 0x024edce0, nsFrameItems & {...}) line 5126 + 59
bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x024b1b50, nsIPresContext
* 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dbb40, nsIFrame * 0x01198334,
nsFrameItems & {...}) line 5588
+ 45 bytes
nsCSSFrameConstructor::TableProcessChild(nsIPresShell * 0x024b1b50,
nsIPresContext * 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dbb40, nsIFrame * 0x01198334,
nsIStyleContext * 0x024ebc90,
nsFrameItems & {...}, nsTableCreator & {...}) line 1952 + 32 bytes
nsCSSFrameConstructor::TableProcessChildren(nsIPresShell * 0x024b1b50,
nsIPresContext * 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dbbac, nsIFrame * 0x01198334,
nsFrameItems & {...},
nsTableCreator & {...}) line 1926 + 50 bytes
nsCSSFrameConstructor::ConstructTableRowFrameOnly(nsIPresShell * 0x024b1b50,
nsIPresContext * 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dbbac, nsIFrame * 0x0115e564,
nsIStyleContext * 0x024ebc90,
int 1, nsIFrame * & 0x01198334, nsTableCreator & {...}) line 1670 + 38 bytes
nsCSSFrameConstructor::ConstructTableRowFrame(nsIPresShell * 0x024b1b50,
nsIPresContext * 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dbbac, nsIFrame * 0x0115e564,
nsIStyleContext * 0x024ebc90,
nsIFrame * & 0x00000000, nsIFrame * & 0x01198334, nsTableCreator & {...},
nsTableList * 0x00000000) line 1608
+ 49 bytes
nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresShell * 0x024b1b50,
nsIPresContext * 0x02468e50,
nsFrameConstructorState & {...}, const nsStyleDisplay * 0x024ebed4, nsIContent *
0x024dbbac, nsIFrame *
0x0115e564, nsIStyleContext * 0x024ebc90, nsFrameItems & {...}) line 5118 + 52
bytes
nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x024b1b50, nsIPresContext
* 0x02468e50,
nsFrameConstructorState & {...}, nsIContent * 0x024dbbac, nsIFrame * 0x0115e564,
nsFrameItems & {...}) line 5588
+ 45 bytes
nsCSSFrameConstructor::ContentAppended(nsCSSFrameConstructor * const 0x024b0090,
nsIPresContext *
0x02468e50, nsIContent * 0x024ea4cc, int 2) line 6193
StyleSetImpl::ContentAppended(StyleSetImpl * const 0x024b0130, nsIPresContext *
0x02468e50, nsIContent *
0x024ea4cc, int 2) line 957
PresShell::ContentAppended(PresShell * const 0x024b1b58, nsIDocument *
0x024a3e80, nsIContent * 0x024ea4cc, int
2) line 2588 + 46 bytes
nsDocument::ContentAppended(nsDocument * const 0x024a3e80, nsIContent *
0x024ea4cc, int 2) line 1590
nsHTMLDocument::ContentAppended(nsHTMLDocument * const 0x024a3e80, nsIContent *
0x024ea4cc, int 2) line
1130
HTMLContentSink::NotifyAppend(nsIContent * 0x024ea4cc, int 2) line 3918
SinkContext::CloseContainer(const nsIParserNode & {...}) line 1401
HTMLContentSink::CloseContainer(HTMLContentSink * const 0x02468cb0, const
nsIParserNode & {...}) line 2911 +
18 bytes
CNavDTD::CloseContainer(const nsIParserNode * 0x024ee340, nsHTMLTag
eHTMLTag_table, int 0) line 2985 + 31
bytes
CNavDTD::CloseContainersTo(int 2, nsHTMLTag eHTMLTag_table, int 0) line 3021 +
20 bytes
CNavDTD::CloseContainersTo(nsHTMLTag eHTMLTag_table, int 0) line 3185 + 20 bytes
CNavDTD::HandleEndToken(CToken * 0x01545af0) line 1628 + 20 bytes
CNavDTD::HandleToken(CNavDTD * const 0x024b59f0, CToken * 0x01545af0, nsIParser
* 0x024a42c0) line 768 +
12 bytes
CNavDTD::BuildModel(CNavDTD * const 0x024b59f0, nsIParser * 0x024a42c0,
nsITokenizer * 0x024b5520,
nsITokenObserver * 0x00000000, nsIContentSink * 0x02468cb0) line 504 + 20 bytes
nsParser::BuildModel() line 1231 + 34 bytes
nsParser::ResumeParse(nsIDTD * 0x00000000, int 0) line 1146 + 11 bytes
nsParser::OnDataAvailable(nsParser * const 0x024a42c4, nsIChannel * 0x024fa230,
nsISupports * 0x00000000,
nsIInputStream * 0x024ff7a8, unsigned int 0, unsigned int 284) line 1524 + 19
bytes
nsDocumentOpenInfo::OnDataAvailable(nsDocumentOpenInfo * const 0x024f8f40,
nsIChannel * 0x024fa230,
nsISupports * 0x00000000, nsIInputStream * 0x024ff7a8, unsigned int 0, unsigned
int 284) line 266 + 46 bytes
nsResChannel::OnDataAvailable(nsResChannel * const 0x024fa234, nsIChannel *
0x024fa030, nsISupports *
0x00000000, nsIInputStream * 0x024ff7a8, unsigned int 0, unsigned int 284) line
619
nsFileChannel::OnDataAvailable(nsFileChannel * const 0x024fa034, nsIChannel *
0x024f81d0, nsISupports *
0x00000000, nsIInputStream * 0x024ff7a8, unsigned int 0, unsigned int 284) line
468 + 49 bytes
nsOnDataAvailableEvent::HandleEvent(nsOnDataAvailableEvent * const 0x024ff6a0)
line 388 + 47 bytes
nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x024ff650) line 97 + 12 bytes
PL_HandleEvent(PLEvent * 0x024ff650) line 554 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x012a7750) line 499 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x2ac200ca, unsigned int 49249, unsigned int 0,
long 19560272) line 1003 + 9
bytes
USER32! 77e71820()
Assignee: karnaze → rods
Severity: normal → major
Whiteboard: [PDT+] w/b minus on 03/03 → [PDT+] w/b minus on 03/03 (this bug has changed ownership twice, is it fair to downgrade so soon)
Comment 14•25 years ago
|
||
I actually changed the InitTextStr call in SetInitialChildList to notify:
InitTextStr(aPresContext, PR_TRUE);
Rod, when I switched over to using a text instead of a button for the display
frame of a select in my local tree (diffs I sent a while back) this no longer
needed to notify. Will it work without notify'ing now with your changes?
Comment 15•25 years ago
|
||
I tried changing this to not notify, and the combobox problem re-appeared (every
combobox starts out with "X" in the display area.
I'm trying shifting around where in time the InitTextStr(aPresContest, PR_TRUE)
is called so that it will not cause this mis-ordering of reflows. Any
suggestions or help appreciated. :) (Right now I'm looking at putting it in
the initial reflow for the combo as suggested by Chris)
Comment 16•25 years ago
|
||
Rod, the changes that you checked into nsComboboxControlFrame.cpp (then backed
out) will fix this bug, can you verify when you land?
To verify, view "Minimal test case". You should see a table cell to the left of
the combo that says "Left". If so, you're done. If not, it's still broken.
Hope all goes well with landing your combo changes!
Assignee | ||
Comment 17•25 years ago
|
||
I couldn't check in my changes with the new and improved speedy combobox because
of incompatabilities with box layout which is extremely unfortunate.
Also, Eric, I had to further ehance your approach of using the textframe, I
actually had to put a block frame around that, but of corase that is in the new
version.
Comment 18•25 years ago
|
||
Extending transition date to PDT- till 3/7 in light of progress being made
Whiteboard: [PDT+] w/b minus on 03/03 (this bug has changed ownership twice, is it fair to downgrade so soon) → [PDT+] w/b minus on 3/7
Assignee | ||
Comment 19•25 years ago
|
||
I reworked the existing code and added in some of the changes from my highly
optimized version.
Status: NEW → ASSIGNED
Whiteboard: [PDT+] w/b minus on 3/7 → [PDT+] Fix in tree, doing testing
Comment 20•25 years ago
|
||
Rod, in a previous comment I suggested that it would be better to move the call
to SetAttribute to the initial reflow. Although this is better than the current
situation, it is not good, because it generates an extra reflow. You should try
to avoid unnecessary reflows.
Comment 21•25 years ago
|
||
*** Bug 30018 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 22•25 years ago
|
||
fixed
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•