Closed
Bug 98159
Opened 23 years ago
Closed 23 years ago
erroneous computed background-color value on table elements
Categories
(Core :: Layout: Tables, defect, P2)
Core
Layout: Tables
Tracking
()
RESOLVED
FIXED
mozilla0.9.8
People
(Reporter: glazou, Assigned: bzbarsky)
References
Details
(Keywords: testcase, Whiteboard: [awd:tbl][p3])
Attachments
(3 files, 2 obsolete files)
1.14 KB,
text/html
|
Details | |
5.91 KB,
text/plain
|
Details | |
514 bytes,
patch
|
karnaze
:
review+
attinasi
:
superreview+
|
Details | Diff | Splinter Review |
Run the attached test case both with 20010904 build and moz0.9.2 (or ns6.1) : background-color for | table | tbody | tr | td---------------------+----------+-------------+--------------+---------------- 20010904 build | #ffffff | #ffffff | #ffffff | #ffcccc ---------------------+----------+-------------+--------------+---------------- mozilla 0.9.2 | #ffffff | #ffff66 | #ffff66 | #ffcccc ---------------------+----------+-------------+--------------+---------------- EXPECTED RESULT | #ffff66 | transparent | transparent | #ffcccc
Reporter | ||
Comment 1•23 years ago
|
||
Reporter | ||
Comment 2•23 years ago
|
||
This bug blocks CSSization of Composer because the background-color button is unable to reflect the real background color for table elements.
Blocks: 77705
Assignee | ||
Comment 3•23 years ago
|
||
getting #ffffff instead of "transparent" is bug 97771 But we should still not be getting #ffffff for the table...
Depends on: 97771
Comment 4•23 years ago
|
||
Temporarily moving to future until a milestone can be assigned.
Status: NEW → ASSIGNED
Target Milestone: --- → Future
Assignee | ||
Comment 5•23 years ago
|
||
This happens because the primary frame for <table> is the outer frame. The outer frame seems to always have computed background of transparent. Possible fixes: 1) Use the inner frame instead of the outer frame for background computation only 2) Use the inner frame instead of the outer frame for all computed style 3) Make the outer frame inherit things like background so that we can compute style on the outer frame at all times Bernd? Karnaze? Thoughts? I bet computed dimensions would be wrong if we did #2. #3 seems like a lot of work with unknown layout ramifications. Should I just do #1 in the computed style code?
#3 is wrong it will color the space between the inner table frame and the caption frame. #2 is wrong also due to the caption frame, I think.
Assignee | ||
Comment 7•23 years ago
|
||
Use the inner frame for background and borders.
Assignee | ||
Comment 8•23 years ago
|
||
Bernd, would you review?
Assignee: karnaze → bzbarsky
Status: ASSIGNED → NEW
Priority: -- → P2
Target Milestone: Future → mozilla0.9.8
Just a first nit: + frame->GetParentStyleContextProvider(presContext, + &frame, + relationship); scares me, shouldn't you pass another Frameholder. just search for other users of GetParentStyleContextProvider. Boris you will be far better (faster) to ask dbaron for review. I am slow. Did you run the table regression tests? Does that patch also fix the transparent frames assertion?
Comment 10•23 years ago
|
||
Boris, I think I have to apologize for misleading information. Outertable frames dont paint, but they can inherit. Probably your patch should use only margins as they can not be inherited.
Comment 11•23 years ago
|
||
Yes, we should just put background:inherit within table-outer in html.css (recall that table-outer style inherits from table style, just the reverse of the frame hierarchy), since the outer table doesn't print backgrounds. The only thing that the outer table can never inherit is margin. Boris, sorry for the delay in responding to this - I often miss questions in bugs, because I have so many bugs.
Assignee | ||
Comment 12•23 years ago
|
||
OK.... so let me see if I understand correctly: 1) We don't change computed style code at all 2) we add background: inherit; border: inherit; to html.css with a comment explaining why it's there 3) We run the table regression tests to make sure nothing broke. Is that correct? Bernd, I'm not sure what you mean when you mention margins... I'm not very familiar with the frame model for tables, to be truthful. :(
Comment 13•23 years ago
|
||
That is correct. For this bug, the regression tests should only be used to see if there are bbox mismatches, just in case we are overlooking something regarding borders. Don't pay attention to frame state differences. We can't really catch background problems in the tests, so just bring up a few pages to make sure backgrounds look ok. Bernd was saying that if we need to get "margin" from the primary frame (outer table), then code will be necessary, because we can't allow the outer table to inherit "margin". But I don't think that is necessary for this bug.
Assignee | ||
Comment 14•23 years ago
|
||
Ran regression tests on that "inherit". The only "new" failure was: +regression test verify/40129.rgd failed I can't figure out whether the failure is actually a bbox failure or a framestate failure, so attaching output here in the hopes that someone can actually make sense of it.
Attachment #64047 -
Attachment is obsolete: true
Comment 15•23 years ago
|
||
Sorry, but the attachement has no new lines in it, so I couldn't read it. If you find a bbox difference on a test, view the test to see if it is a bogus message (we do get a few of those).
Assignee | ||
Comment 16•23 years ago
|
||
The attachment had unix newlines... sorry about that. This is a plaintext version of just the test in question. It _does_ seem to be a bbox failure. I've looked at it in Mozilla with and without my change and it looks unchanged to the naked eye.
Attachment #64185 -
Attachment is obsolete: true
Assignee | ||
Comment 17•23 years ago
|
||
Looked at testcases in bug 40129. Looked at test by hand before and after patch. I see no differences in behavior...
Comment 18•23 years ago
|
||
Comment on attachment 64631 [details] [diff] [review] Patch to fix more simply r=karnaze
Attachment #64631 -
Flags: review+
Comment 19•23 years ago
|
||
Comment on attachment 64631 [details] [diff] [review] Patch to fix more simply sr=attinasi, but please add a comment in the CSS file explaining why it is needed, and why it is OK to always inherit the background and border.
Attachment #64631 -
Flags: superreview+
Assignee | ||
Comment 20•23 years ago
|
||
Comment added and checked in
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•