Bug 121170
Summary: | RenderTextTrackContainerElement::layout() pretends to have done the layout, but postpones the work on a 0-delay timer | ||
---|---|---|---|
Product: | WebKit | Reporter: | Alexey Proskuryakov <ap> |
Component: | Media | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | eric.carlson, jer.noble, koivisto, peng.liu6, rniwa, simon.fraser, zalan |
Priority: | P2 | Keywords: | InRadar |
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Bug Depends on: | 121169 | ||
Bug Blocks: |
Alexey Proskuryakov
This causes flakiness on at least one test (bug 121169), and I expect this to be a general issue that affects many tests. Perhaps most of these are already marked as flaky or skipped.
RenderTextTrackContainerElement::layout() calls MediaControlTextTrackContainerElement::updateSizes(), which does some work, and delays other work on a zero delay timer! So by the time layout is done, text cue sizes are still wrong, they are only updated in updateTimerFired().
This zero delay timer cannot be simply removed, because it does a lot of work that's unsafe during layout, including DOM manipulation. While I don't know much about text tracks and/or layout, I have a strong feeling that it must be possible to do it differently.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Alexey Proskuryakov
<rdar://problem/14966387>