diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-13 16:23:34 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-14 10:37:21 +0000 |
commit | 38a9a29f4f9436cace7f0e7abf9c586057df8a4e (patch) | |
tree | c4e8c458dc595bc0ddb435708fa2229edfd00bd4 /chromium/third_party/blink/renderer/modules/mediasource/source_buffer_list.h | |
parent | e684a3455bcc29a6e3e66a004e352dea4e1141e7 (diff) | |
download | qtwebengine-chromium-38a9a29f4f9436cace7f0e7abf9c586057df8a4e.tar.gz |
BASELINE: Update Chromium to 73.0.3683.37
Change-Id: I08c9af2948b645f671e5d933aca1f7a90ea372f2
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/mediasource/source_buffer_list.h')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/mediasource/source_buffer_list.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/chromium/third_party/blink/renderer/modules/mediasource/source_buffer_list.h b/chromium/third_party/blink/renderer/modules/mediasource/source_buffer_list.h index 658138513c1..d011c0564dc 100644 --- a/chromium/third_party/blink/renderer/modules/mediasource/source_buffer_list.h +++ b/chromium/third_party/blink/renderer/modules/mediasource/source_buffer_list.h @@ -33,6 +33,7 @@ #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/modules/event_target_modules.h" +#include "third_party/blink/renderer/platform/bindings/trace_wrapper_member.h" #include "third_party/blink/renderer/platform/heap/handle.h" namespace blink { @@ -85,7 +86,23 @@ class SourceBufferList final : public EventTargetWithInlineData, Member<EventQueue> async_event_queue_; - HeapVector<Member<SourceBuffer>> list_; + // If any portion of an attached HTMLMediaElement (HTMLME) and the MediaSource + // Extensions (MSE) API is alive (having pending activity or traceable from a + // GC root), the whole group is not GC'ed. Here, using TraceWrapperMember, + // instead of Member, because the |list_|'s SourceBuffers' wrappers need to + // remain alive at least to successfully dispatch any events enqueued by + // behavior of the HTMLME+MSE API. TraceWrapperMember usage here keeps the + // SourceBuffers in |list_|, and their wrappers, from being collected if we + // are alive or traceable from a GC root. + // For instance, suppose the only reference to the group of HTMLME+MSE API + // objects is one held by the app to the wrapper of this SourceBufferList. + // The app could do any of a number of actions on any of the SourceBuffers in + // |list_|, such as appending more media, causing events to be enqueued for + // later dispatch on at least those SourceBuffers. None of the app's event + // listeners on objects in HTMLME+MSE are counted as references, but events + // pending for dispatch to them must keep the HTML+MSE group of objects alive + // through at least their dispatch. + HeapVector<TraceWrapperMember<SourceBuffer>> list_; }; } // namespace blink |