Bug 264770
Summary: | Replaced elements avoid floats, including check boxes and radio boxes | ||
---|---|---|---|
Product: | WebKit | Reporter: | Ahmad Saleem <ahmad.saleem792> |
Component: | Layout and Rendering | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | akeerthi, bfulgham, divya, karlcow, ntim, simon.fraser, webkit-bug-importer, zalan |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Ahmad Saleem
HI Team,
While going through Blink's commit, I came across another failing test:
Blink Commit: https://chromium.googlesource.com/chromium/blink/+/141235180acceb7bbdd50a315c31171dfcf55a07
Test Case: https://jsfiddle.net/baLmywgu/show
^ Fails in Firefox Nightly 121 as well.
Another Test Case (from Chrome Monorail bug): https://codepen.io/chrisbank/pen/DzmVXY
^ The checkbox & radio are not same place as 'Chrome Canary 121' and Firefox Nightly 121.
Just wanted to raise, so we can fix it.
Thanks!
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Ahmad Saleem
static bool isReplacedElement(Element* element)
{
// Checkboxes and radioboxes are not isReplaced() nor do they have their own renderer in which to override avoidFloats().
return element && element->isElementNode() && element->isFormControlElement();
}
bool RenderBox::avoidsFloats() const
{
return isReplacedOrInlineBlock() || isReplacedElement(element()) || isLegend() || isFieldset() || createsNewFormattingContext();
}
^ This compiles and fix the bug.
Radar WebKit Bug Importer
<rdar://problem/118660695>
EWS
Committed 273047@main (7adc3dd2a226): <https://commits.webkit.org/273047@main>
Reviewed commits have been landed. Closing PR #22762 and removing active labels.
Ahmad Saleem
*** Bug 124723 has been marked as a duplicate of this bug. ***