Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(389)

Unified Diff: third_party/WebKit/Source/core/html/HTMLMediaElement.h

Issue 2511143006: Detect change on the intersection of video and viewport. (Closed)
Patch Set: Addressed comments. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/html/HTMLMediaElement.h
diff --git a/third_party/WebKit/Source/core/html/HTMLMediaElement.h b/third_party/WebKit/Source/core/html/HTMLMediaElement.h
index 0bd98bca6d30fa8ac49f065ddad4b715583cedbb..2959f6aaa849522907d9c76985140dc2f9662510 100644
--- a/third_party/WebKit/Source/core/html/HTMLMediaElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.h
@@ -334,6 +334,9 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
void recordAutoplayMetric(AutoplayMetrics);
private:
+ // Friend class for testing.
+ friend class MediaElementFillingViewportTest;
+
void resetMediaPlayerAndMediaSource();
bool alwaysCreateUserAgentShadowRoot() const final { return true; }
@@ -544,10 +547,14 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
void onVisibilityChangedForAutoplay(bool isVisible);
+ void checkViewportIntersectionChanged();
+ void viewportFillDebouncerTimerFired(TimerBase*);
+
UnthrottledThreadTimer<HTMLMediaElement> m_loadTimer;
UnthrottledThreadTimer<HTMLMediaElement> m_progressEventTimer;
UnthrottledThreadTimer<HTMLMediaElement> m_playbackProgressTimer;
UnthrottledThreadTimer<HTMLMediaElement> m_audioTracksTimer;
+ UnthrottledThreadTimer<HTMLMediaElement> m_viewportFillDebouncerTimer;
Member<TimeRanges> m_playedTimeRanges;
Member<GenericEventQueue> m_asyncEventQueue;
@@ -647,6 +654,8 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
// Whether this element is in overlay fullscreen mode.
bool m_inOverlayFullscreenVideo : 1;
+ bool m_mostlyFillingViewport : 1;
+
TraceWrapperMember<AudioTrackList> m_audioTracks;
TraceWrapperMember<VideoTrackList> m_videoTracks;
TraceWrapperMember<TextTrackList> m_textTracks;
@@ -731,6 +740,8 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
// class AutoplayVisibilityObserver;
Member<ElementVisibilityObserver> m_autoplayVisibilityObserver;
+ IntRect m_currentIntersectRect;
+
static URLRegistry* s_mediaStreamRegistry;
};

Powered by Google App Engine
This is Rietveld 408576698