Bug 169324 - LayoutTest media/track/media-element-enqueue-event-crash.html is a flaky failure
Summary: LayoutTest media/track/media-element-enqueue-event-crash.html is a flaky failure
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-07 17:26 PST by Ryan Haddad
Modified: 2017-03-08 10:10 PST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Haddad 2017-03-07 17:26:57 PST
LayoutTest media/track/media-element-enqueue-event-crash.html is a flaky failure

https://build.webkit.org/results/Apple%20El%20Capitan%20Release%20WK1%20(Tests)/r213540%20(14371)/results.html

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=media%2Ftrack%2Fmedia-element-enqueue-event-crash.html

--- /Volumes/Data/slave/elcapitan-release-tests-wk1/build/layout-test-results/media/track/media-element-enqueue-event-crash-expected.txt
+++ /Volumes/Data/slave/elcapitan-release-tests-wk1/build/layout-test-results/media/track/media-element-enqueue-event-crash-actual.txt
@@ -1,3 +1,4 @@
+CONSOLE MESSAGE: line 2081: IconButton failed to load, iconName = pause, layoutTraits = 9, src = data:image/png;base64,
 Tests that appending events for dispatching doesn't crash
 
 ** No crash. Pass **
Comment 1 Ryan Haddad 2017-03-07 17:27:30 PST
This logging was added with http://trac.webkit.org/changeset/213540
Comment 2 Antoine Quint 2017-03-07 23:59:08 PST
This indicates that we failed to load an icon from the WebCore.framework.
Comment 3 Antoine Quint 2017-03-08 06:28:06 PST
So I've managed to reproduce the icon load issue here and as far as I can tell the icon loading fails because we can't get a Page reference here:

String MediaControlsHost::base64StringForIconAndPlatform(const String& iconName, const String& platform) const
{
    Page* page = m_mediaElement->document().page();
    if (!page) {
        return emptyString();
    return RenderTheme::themeForPage(page)->mediaControlsBase64StringForIconAndPlatform(iconName, platform);
}

So we don't event attempt to load the icon and return an empty string. I have no idea why the Page may not be available at this stage.
Comment 4 Antoine Quint 2017-03-08 06:32:38 PST
OK, in the case of this test, I think this is expected… The test removes the media element from the original page's document after 100ms, so I think it's completely legitimate that we may not have a Page when this gets called, for instance as a result of a "play" event being dispatched which attempts to load the pause icon.
Comment 5 Ryan Haddad 2017-03-08 10:10:19 PST
Marked test as flaky in http://trac.webkit.org/projects/webkit/changeset/213580 to get the bots back to green. We'll need to remove this expectation once the logging is removed.