Bug 212629

Summary: m_userActivatedMediaFinishedPlayingTimestamp is used uninitialized
Product: WebKit Reporter: Yoshiaki Jitsukawa <yoshiaki.jitsukawa>
Component: MediaAssignee: Yoshiaki Jitsukawa <yoshiaki.jitsukawa>
Status: NEW ---    
Severity: Normal CC: ahmad.saleem792, cdumez, esprehn+autocc, ews-watchlist, kangil.han, peng.liu6, youennf
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch yoshiaki.jitsukawa: review?, yoshiaki.jitsukawa: commit-queue?

Description Yoshiaki Jitsukawa 2020-06-02 01:03:32 PDT
In Document::processingUserGestureForMedia() m_userActivatedMediaFinishedPlayingTimestamp may be
used before being set and in that case the function can return wrong result.
Comment 1 Yoshiaki Jitsukawa 2020-06-02 01:14:50 PDT
Created attachment 400793 [details]
Patch
Comment 2 youenn fablet 2020-06-02 08:49:53 PDT
Comment on attachment 400793 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=400793&action=review

> Source/WebCore/dom/Document.cpp:6826
> +    if (m_userActivatedMediaFinishedPlayingTimestamp && (m_userActivatedMediaFinishedPlayingTimestamp + maxIntervalForUserGestureForwardingAfterMediaFinishesPlaying >= MonotonicTime::now()))

Can you explain the issue? Is it that MonotonicTime::now might return a value close to 0 on the playstation?
I would expect in general MonotonicTime::now() to have a high value so that, if m_userActivatedMediaFinishedPlayingTimestamp is zero, we always fail the if check.
Comment 3 Yoshiaki Jitsukawa 2020-07-07 18:35:38 PDT
(In reply to youenn fablet from comment #2)
> Comment on attachment 400793 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=400793&action=review
> 
> > Source/WebCore/dom/Document.cpp:6826
> > +    if (m_userActivatedMediaFinishedPlayingTimestamp && (m_userActivatedMediaFinishedPlayingTimestamp + maxIntervalForUserGestureForwardingAfterMediaFinishesPlaying >= MonotonicTime::now()))
> 
> Can you explain the issue? Is it that MonotonicTime::now might return a
> value close to 0 on the playstation?
> I would expect in general MonotonicTime::now() to have a high value so that,
> if m_userActivatedMediaFinishedPlayingTimestamp is zero, we always fail the
> if check.

Sorry for late reply.
Yes, on the playstation port MonotonicTime::now() may return such a value.

If m_userActivatedMediaFinishedPlayingTimestamp is zero, it implies that nobody has set it, correct?
Comment 4 Peng Liu 2020-08-24 10:31:13 PDT
Comment on attachment 400793 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=400793&action=review

>>> Source/WebCore/dom/Document.cpp:6826
>>> +    if (m_userActivatedMediaFinishedPlayingTimestamp && (m_userActivatedMediaFinishedPlayingTimestamp + maxIntervalForUserGestureForwardingAfterMediaFinishesPlaying >= MonotonicTime::now()))
>> 
>> Can you explain the issue? Is it that MonotonicTime::now might return a value close to 0 on the playstation?
>> I would expect in general MonotonicTime::now() to have a high value so that, if m_userActivatedMediaFinishedPlayingTimestamp is zero, we always fail the if check.
> 
> Sorry for late reply.
> Yes, on the playstation port MonotonicTime::now() may return such a value.
> 
> If m_userActivatedMediaFinishedPlayingTimestamp is zero, it implies that nobody has set it, correct?

Sounds like MonotonicTime::now() has some issue on the playstation port?
Comment 5 Ahmad Saleem 2023-09-20 03:13:28 PDT
This didn't landed:

https://searchfox.org/wubkat/source/Source/WebCore/dom/Document.cpp#7621

Do we need this?