WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
UNCONFIRMED
103150
Range.getBoundingClientRect() does not handle max-height correctly
https://bugs.webkit.org/show_bug.cgi?id=103150
Summary
Range.getBoundingClientRect() does not handle max-height correctly
Daniel Trebbien
Reported
2012-11-23 09:02:44 PST
Created
attachment 175814
[details]
Test case Range.getBoundingClientRect() does not factor in the elements' max-heights when calculating the height of the bounding client rectangle. Elements' max-widths seem to be correctly handled, but not max-heights. Attached is a reduced test case. The test case works as expected (the alert dialog shows "bcr.width = 202, bcr.height = 12") in Firefox 17.0 and Opera 12.11, but fails in Safari 6.0.2, Chrome 23.0.1271.64, and the latest WebKit nightly
r135516
built on 22 November 2012.
Attachments
Test case
(1.22 KB, text/html)
2012-11-23 09:02 PST
,
Daniel Trebbien
no flags
Details
Testcase #2
(1.65 KB, text/html)
2012-11-29 12:50 PST
,
Mats Palmgren
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Daniel Trebbien
Comment 1
2012-11-27 09:34:27 PST
Possibly related:
Bug 103430
- Range.getClientRects() and Range.getBoundingClientRect() incorrectly include hidden overflown content
Mats Palmgren
Comment 2
2012-11-29 12:50:40 PST
Created
attachment 176797
[details]
Testcase #2 Here's the same test that demonstrates that 'max-height' is handled correctly (getClientRects()[0] has height 12). The real bug is that the rectangles of the text nodes are included and that affects the final getBoundingClientRect() result. That's
bug 103658
.
Daniel Trebbien
Comment 3
2012-11-29 15:37:15 PST
*** This bug has been marked as a duplicate of
bug 103658
***
Daniel Trebbien
Comment 4
2013-01-15 13:45:19 PST
https://bugzilla.mozilla.org/show_bug.cgi?id=816238
Ahmad Saleem
Comment 5
2022-09-21 15:47:51 PDT
Testcase: *** Safari 16 & STP 154 *** bcr.width = 202, bcr.height = 433 bcr.width = 202, bcr.height = 433 <--- STP 154 *** Chrome Canary 108 *** bcr.width = 202, bcr.height = 445 *** Firefox Nightly 107 *** bcr.width = 202, bcr.height = 12 ___________- Testcase # 02: *** Safari 16 *** range.getClientRects()[0] = 8,8,202,12 range.getClientRects()[1] = 9,9,181.75,18 range.getClientRects()[2] = 9,27,171.0546875,18 range.getClientRects()[3] = 9,45,157.3046875,18 range.getClientRects()[4] = 9,63,199.90625,18 range.getClientRects()[5] = 9,81,181.34375,18 range.getClientRects()[6] = 9,99,148.390625,18 range.getClientRects()[7] = 9,117,181.7109375,18 range.getClientRects()[8] = 9,135,185.265625,18 range.getClientRects()[9] = 9,153,198.6484375,18 range.getClientRects()[10] = 9,171,198.6328125,18 range.getClientRects()[11] = 9,189,180.859375,18 range.getClientRects()[12] = 9,207,160.8515625,18 range.getClientRects()[13] = 9,225,196.40625,18 range.getClientRects()[14] = 9,243,193.734375,18 range.getClientRects()[15] = 9,261,175.9921875,18 range.getClientRects()[16] = 9,279,191.046875,18 range.getClientRects()[17] = 9,297,148.3984375,18 range.getClientRects()[18] = 9,315,190.6015625,18 range.getClientRects()[19] = 9,333,177.7265625,18 range.getClientRects()[20] = 9,351,167.0625,18 range.getClientRects()[21] = 9,369,179.4921875,18 range.getClientRects()[22] = 9,387,175.9453125,18 range.getClientRects()[23] = 9,405,156.8515625,18 range.getClientRects()[24] = 9,423,151.046875,18 range.getBoundingClientRect() = 8,8,202,433 *** STP 154 *** range.getClientRects()[0] = 8,8,202,12 range.getClientRects()[1] = 9,9,181.75,18 range.getClientRects()[2] = 9,27,171.0546875,18 range.getClientRects()[3] = 9,45,157.3046875,18 range.getClientRects()[4] = 9,63,199.90625,18 range.getClientRects()[5] = 9,81,181.34375,18 range.getClientRects()[6] = 9,99,148.390625,18 range.getClientRects()[7] = 9,117,181.7109375,18 range.getClientRects()[8] = 9,135,185.265625,18 range.getClientRects()[9] = 9,153,198.6484375,18 range.getClientRects()[10] = 9,171,198.6328125,18 range.getClientRects()[11] = 9,189,180.859375,18 range.getClientRects()[12] = 9,207,160.8515625,18 range.getClientRects()[13] = 9,225,196.40625,18 range.getClientRects()[14] = 9,243,193.734375,18 range.getClientRects()[15] = 9,261,175.9921875,18 range.getClientRects()[16] = 9,279,191.046875,18 range.getClientRects()[17] = 9,297,148.3984375,18 range.getClientRects()[18] = 9,315,190.6015625,18 range.getClientRects()[19] = 9,333,177.7265625,18 range.getClientRects()[20] = 9,351,167.0625,18 range.getClientRects()[21] = 9,369,179.4921875,18 range.getClientRects()[22] = 9,387,175.9453125,18 range.getClientRects()[23] = 9,405,156.8515625,18 range.getClientRects()[24] = 9,423,151.046875,18 range.getBoundingClientRect() = 8,8,202,433 *** Chrome Canary 108 *** range.getClientRects()[0] = 8,8,202,12 range.getClientRects()[1] = 9,9,181.75,18.5 range.getClientRects()[2] = 9,27.5,171.0546875,18.5 range.getClientRects()[3] = 9,46,157.3046875,18.5 range.getClientRects()[4] = 9,64.5,199.90625,18.5 range.getClientRects()[5] = 9,83,181.34375,18.5 range.getClientRects()[6] = 9,101.5,148.390625,18.5 range.getClientRects()[7] = 9,120,181.7109375,18.5 range.getClientRects()[8] = 9,138.5,185.265625,18.5 range.getClientRects()[9] = 9,157,198.6484375,18.5 range.getClientRects()[10] = 9,175.5,198.6328125,18.5 range.getClientRects()[11] = 9,194,180.859375,18.5 range.getClientRects()[12] = 9,212.5,160.8515625,18.5 range.getClientRects()[13] = 9,231,196.40625,18.5 range.getClientRects()[14] = 9,249.5,193.734375,18.5 range.getClientRects()[15] = 9,268,175.9921875,18.5 range.getClientRects()[16] = 9,286.5,191.046875,18.5 range.getClientRects()[17] = 9,305,148.3984375,18.5 range.getClientRects()[18] = 9,323.5,190.6015625,18.5 range.getClientRects()[19] = 9,342,177.7265625,18.5 range.getClientRects()[20] = 9,360.5,167.0625,18.5 range.getClientRects()[21] = 9,379,178.6171875,18.5 range.getClientRects()[22] = 9,397.5,175.9453125,18.5 range.getClientRects()[23] = 9,416,156.8515625,18.5 range.getClientRects()[24] = 9,434.5,151.046875,18.5 range.getBoundingClientRect() = 8,8,202,445 *** Firefox Nightly 107 *** range.getClientRects()[0] = 8,8,202,12 range.getBoundingClientRect() = 8,8,202,12 _______
Comment 04
refers to Mozilla bug but appreciate if someone can confirm whether it need something to be done in Webkit or not? Thanks!
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug