WebKit Bugzilla
Attachment 341746 Details for
Bug 186189
: Crash in WebAnimation::runPendingPlayTask
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
wcore-anim-crash.diff (text/plain), 2.28 KB, created by
Carlos Garcia Campos
on 2018-06-01 02:54:10 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Carlos Garcia Campos
Created:
2018-06-01 02:54:10 PDT
Size:
2.28 KB
patch
obsolete
>diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index e6e031da0b5..bf7a6c19f4d 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,17 @@ >+2018-06-01 Carlos Garcia Campos <cgarcia@igalia.com> >+ >+ Crash in WebAnimation::runPendingPlayTask >+ https://bugs.webkit.org/show_bug.cgi?id=186189 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This is another crash due to using a std::optional value while it's nullopt. >+ >+ * animation/WebAnimation.cpp: >+ (WebCore::WebAnimation::runPendingPlayTask): Add an assert to ensure that ready time is not unresolved when this >+ is called. >+ (WebCore::WebAnimation::updatePendingTasks): Do not call runPendingPlayTask() if the timeline is not active. >+ > 2018-06-01 Carlos Garcia Campos <cgarcia@igalia.com> > > [GTK] Switch to use a popup window with a tree view instead of a menu for option menu default implementation >diff --git a/Source/WebCore/animation/WebAnimation.cpp b/Source/WebCore/animation/WebAnimation.cpp >index 63d74b69031..5a5fbe92b3d 100644 >--- a/Source/WebCore/animation/WebAnimation.cpp >+++ b/Source/WebCore/animation/WebAnimation.cpp >@@ -825,6 +825,7 @@ void WebAnimation::runPendingPlayTask() > > // 2. Let ready time be the time value of the timeline associated with animation at the moment when animation became ready. > auto readyTime = m_timeline->currentTime(); >+ ASSERT(readyTime); > > // 3. If animation's start time is unresolved, perform the following steps: > if (!m_startTime) { >@@ -983,11 +984,11 @@ void WebAnimation::updatePendingTasks() > } > } > >- // FIXME: This should only happen if we're ready, at the moment we think we're ready if we have a timeline. >+ // FIXME: This should only happen if we're ready, at the moment we think we're ready if we have an active timeline. > if (hasPendingPlayTask() && is<DocumentTimeline>(m_timeline)) { > if (auto document = downcast<DocumentTimeline>(*m_timeline).document()) { > document->postTask([this, protectedThis = makeRef(*this)] (auto&) { >- if (this->hasPendingPlayTask() && m_timeline) >+ if (this->hasPendingPlayTask() && m_timeline && m_timeline->currentTime()) > this->runPendingPlayTask(); > }); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186189
:
341746
|
341747
|
341748
|
341749
|
341750
|
341756
|
343591
|
343596