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

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

Issue 2511143006: Detect change on the intersection of video and viewport. (Closed)
Patch Set: Rebase again. 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 98109b402f462261a598b3d5f50c87f9b4751720..9ced65c9fa27a35479f7ba81eb5654e5fefd74d6 100644
--- a/third_party/WebKit/Source/core/html/HTMLMediaElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.h
@@ -333,6 +333,9 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
virtual void setDisplayMode(DisplayMode mode) { m_displayMode = mode; }
private:
+ // Friend class for testing.
+ friend class MediaElementFillingViewportTest;
+
void resetMediaPlayerAndMediaSource();
bool alwaysCreateUserAgentShadowRoot() const final { return true; }
@@ -540,10 +543,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;
@@ -643,6 +650,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;
@@ -724,6 +733,8 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
// class AutoplayVisibilityObserver;
Member<ElementVisibilityObserver> m_autoplayVisibilityObserver;
+ IntRect m_currentIntersectRect;
+
static URLRegistry* s_mediaStreamRegistry;
};
« no previous file with comments | « third_party/WebKit/Source/core/dom/IntersectionObserver.cpp ('k') | third_party/WebKit/Source/core/html/HTMLMediaElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698