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)

defect

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
Attached image The page as it looks in Nav 4.7 (deleted) —
Attached image The page as it looks in mozilla (deleted) —
Looking at the source again, maybe this is really a table problem? cc'ing karnaze
Nominate for beta1
Keywords: beta1
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
Attached file Minimal test case (deleted) —
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
Malformed or not, Nav4 and IE5 both show the Submit/Clear form buttons.
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
Component: HTMLFrames → Layout
Doesn't happen on Solaris or Linux. Does happen on NT. :S
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!
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)
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?
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)
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!
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.
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
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
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.
*** Bug 30018 has been marked as a duplicate of this bug. ***
fixed
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Fixed in the March 08 build (2000030813).
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: