Bug 170113
Summary: | ASSERT(!needsLayout()) in FrameView::paintContents() when setting a CSS class during handling of a "loadedmetadata" event | ||
---|---|---|---|
Product: | WebKit | Reporter: | Antoine Quint <graouts> |
Component: | Layout and Rendering | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | bfulgham, simon.fraser, webkit-bug-importer, zalan |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=169145 |
Antoine Quint
A previous version of the patch for https://bugs.webkit.org/show_bug.cgi?id=169145 would infrequently hit `ASSERT(!needsLayout())` in FrameView::paintContents(). This was due to those three lines in _mediaDocumentHasMetadata() in Source/WebCore/Modules/modern-media-controls/media/media-document-controller.js:
const media = this.mediaController.media;
media.classList.add(this.mediaController.isAudio ? "audio" : "video");
media.classList.add(window.navigator.platform === "MacIntel" ? "mac" : window.navigator.platform);
This code is called as a result of handling a "loadedmetadata" event, which is fired asynchronously. You can re-create the assertion by removing the enclosing requestAnimationFrame() call and running this command:
run-webkit-tests --debug -1 --iterations=500 --exit-after-n-failures=1 fast/events/media-focus-in-standalone-media-document.html
You should see DRT crash relatively quickly as this ASSERT is hit.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/31269350>
Simon Fraser (smfr)
What's the full stack trace?
Antoine Quint
https://build.webkit.org/results/Apple%20Sierra%20Debug%20WK1%20(Tests)/r213410%20(3609)/fast/events/media-focus-in-standalone-media-document-crash-log.txt
Simon Fraser (smfr)
Ah, it's coming out of figDeferredNotificationDispatchFunction. This is tracked by rdar://problem/16622896.