{"push_id":2673782830,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"d5f22f5d4f577b8cb6c26fdeb7b8d81d031b91e2","before":"7bf92c9033269fa36b2c896d9861dee4992df778","commits":[{"sha":"d5f22f5d4f577b8cb6c26fdeb7b8d81d031b91e2","author":{"name":"zandobersek@gmail.com","email":"1d23dcc90a3b52c0372ffb833d3e72ddc9f114fd@gmail.com"},"message":"Crash in WebAnimation::runPendingPlayTask\nhttps://bugs.webkit.org/show_bug.cgi?id=186189\n\nReviewed by Carlos Garcia Campos.\n\nSource/WebCore:\n\nAvoid crashes on nullopt std::optional dereference in the\nrunPendingPlayTask() and runPendingPauseTask() methods of the\nWebAnimation class by defaulting to a Seconds(0) value.\n\nIn both cases the std::optional value is the current time retrieved from\nthe associated DocumentTimeline object. But there's no guarantee that\nthe timeline is active and the resulting time value is resolved (i.e.\nnot nullopt). Dereferencing the nullopt Seconds value doesn't cause a\nproblem on configurations still building as C++14 and the fallback\nstd::optional implementation provided by WTF -- no signal is raised, and\na 0 value is returned. Configurations building as C++17 on the other\nhand use the stdlib-provided std::optional that does raise a signal on\ninvalid access, leading to crashes.\n\nThe default-to-Seconds(0) solution avoids crashes on configurations\nthat build with C++17 support enabled, and thus match configurations\nthat are still using WTF's std::optional. This still doesn't address the\nunderlying problem of retrieving current time from an inactive document\ntimeline and using it as ready time for the pending play/pause task\nexecution.\n\nrunPendingPlayTask() change addresses crashes in the following tests:\n- fast/animation/css-animation-resuming-when-visible.html\n- fast/animation/css-animation-resuming-when-visible-with-style-change.html\n- imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context.html\n- imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/getAnimations.html\n\nrunPendingPauseTask() change addresses crashes in the following tests:\n- animations/multiple-animations-timing-function.html\n\n* animation/WebAnimation.cpp:\n(WebCore::WebAnimation::runPendingPlayTask):\n(WebCore::WebAnimation::runPendingPauseTask):\n\nLayoutTests:\n\n* platform/wpe/TestExpectations: Remove crashing expectations for fixed tests.\n\n\ngit-svn-id: http://svn.webkit.org/repository/webkit/trunk@233196 268f45cc-cd09-0410-ab3c-d52691b4dbfc","distinct":true,"url":"https://api.github.com/repos/WebKit/webkit/commits/d5f22f5d4f577b8cb6c26fdeb7b8d81d031b91e2"}]}
{"actor":{"display_login":"hubot"}}