summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/html/media/html_media_element.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/html/media/html_media_element.h')
-rw-r--r--chromium/third_party/blink/renderer/core/html/media/html_media_element.h29
1 files changed, 13 insertions, 16 deletions
diff --git a/chromium/third_party/blink/renderer/core/html/media/html_media_element.h b/chromium/third_party/blink/renderer/core/html/media/html_media_element.h
index 26988639146..865fc83725b 100644
--- a/chromium/third_party/blink/renderer/core/html/media/html_media_element.h
+++ b/chromium/third_party/blink/renderer/core/html/media/html_media_element.h
@@ -38,13 +38,14 @@
#include "third_party/blink/renderer/core/dom/pausable_object.h"
#include "third_party/blink/renderer/core/html/html_element.h"
#include "third_party/blink/renderer/core/html/media/media_controls.h"
+#include "third_party/blink/renderer/core/intersection_observer/intersection_observer.h"
#include "third_party/blink/renderer/platform/audio/audio_source_provider.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/bindings/trace_wrapper_member.h"
#include "third_party/blink/renderer/platform/network/mime/mime_type_registry.h"
+#include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
#include "third_party/blink/renderer/platform/supplementable.h"
#include "third_party/blink/renderer/platform/timer.h"
-#include "third_party/blink/renderer/platform/web_task_runner.h"
namespace cc {
class Layer;
@@ -76,7 +77,6 @@ class TextTrack;
class TextTrackContainer;
class TextTrackList;
class TimeRanges;
-class URLRegistry;
class VideoTrack;
class VideoTrackList;
class WebAudioSourceProvider;
@@ -101,8 +101,6 @@ class CORE_EXPORT HTMLMediaElement
enum class RecordMetricsBehavior { kDoNotRecord, kDoRecord };
- static void SetMediaStreamRegistry(URLRegistry*);
- static bool IsMediaStreamURL(const String& url);
static bool IsHLSURL(const KURL&);
// If HTMLMediaElement is using MediaTracks (either placeholder or provided
@@ -303,9 +301,8 @@ class CORE_EXPORT HTMLMediaElement
enum InvalidURLAction { kDoNothing, kComplain };
bool IsSafeToLoadURL(const KURL&, InvalidURLAction);
- // Checks to see if current media data is CORS-same-origin as the
- // specified origin.
- bool IsMediaDataCORSSameOrigin(const SecurityOrigin*) const;
+ // Checks to see if current media data is CORS-same-origin.
+ bool IsMediaDataCorsSameOrigin() const;
// Returns this media element is in a cross-origin frame.
bool IsInCrossOriginFrame() const;
@@ -445,7 +442,8 @@ class CORE_EXPORT HTMLMediaElement
void ProgressEventTimerFired(TimerBase*);
void PlaybackProgressTimerFired(TimerBase*);
void ScheduleTimeupdateEvent(bool periodic_event);
- void CheckViewportIntersectionTimerFired(TimerBase*);
+ void OnViewportIntersectionChanged(
+ const HeapVector<Member<IntersectionObserverEntry>>& entries);
void StartPlaybackProgressTimer();
void StartProgressEventTimer();
void StopPeriodicTimers();
@@ -529,7 +527,7 @@ class CORE_EXPORT HTMLMediaElement
void ChangeNetworkStateFromLoadingToIdle();
- WebMediaPlayer::CORSMode CorsMode() const;
+ WebMediaPlayer::CorsMode CorsMode() const;
// Returns the "direction of playback" value as specified in the HTML5 spec.
enum DirectionOfPlayback { kBackward, kForward };
@@ -564,9 +562,10 @@ class CORE_EXPORT HTMLMediaElement
TaskRunnerTimer<HTMLMediaElement> progress_event_timer_;
TaskRunnerTimer<HTMLMediaElement> playback_progress_timer_;
TaskRunnerTimer<HTMLMediaElement> audio_tracks_timer_;
- TaskRunnerTimer<HTMLMediaElement> check_viewport_intersection_timer_;
TaskRunnerTimer<HTMLMediaElement> removed_from_document_timer_;
+ Member<IntersectionObserver> viewport_intersection_observer_;
+
Member<TimeRanges> played_time_ranges_;
Member<EventQueue> async_event_queue_;
@@ -660,6 +659,8 @@ class CORE_EXPORT HTMLMediaElement
bool processing_preference_change_ : 1;
bool playing_remotely_ : 1;
+ // The following is always false unless viewport intersection monitoring is
+ // turned on via ActivateViewportIntersectionMonitoring().
bool mostly_filling_viewport_ : 1;
bool was_always_muted_ : 1;
@@ -696,7 +697,7 @@ class CORE_EXPORT HTMLMediaElement
~AudioClientImpl() override = default;
// WebAudioSourceProviderClient
- void SetFormat(size_t number_of_channels, float sample_rate) override;
+ void SetFormat(uint32_t number_of_channels, float sample_rate) override;
void Trace(blink::Visitor*);
@@ -719,7 +720,7 @@ class CORE_EXPORT HTMLMediaElement
// AudioSourceProvider
void SetClient(AudioSourceProviderClient*) override;
- void ProvideInput(AudioBus*, size_t frames_to_process) override;
+ void ProvideInput(AudioBus*, uint32_t frames_to_process) override;
void Trace(blink::Visitor*);
@@ -750,14 +751,10 @@ class CORE_EXPORT HTMLMediaElement
WebRemotePlaybackClient* remote_playback_client_;
- IntRect current_intersect_rect_;
-
Member<MediaControls> media_controls_;
Member<HTMLMediaElementControlsList> controls_list_;
Member<ElementVisibilityObserver> lazy_load_visibility_observer_;
-
- static URLRegistry* media_stream_registry_;
};
inline bool IsHTMLMediaElement(const HTMLElement& element) {