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.cpp

Issue 2487373003: Disable background video track behind a feature flag (Closed)
Patch Set: Rebase + comment fix Created 4 years, 1 month 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.cpp
diff --git a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
index 5aba8cc8fca08d2ab2cdc0d41dec9571ad741b24..26c96f482d36418c0f2e33185ac42c97bb136068 100644
--- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
@@ -2558,7 +2558,6 @@ void HTMLMediaElement::togglePlayState() {
}
AudioTrackList& HTMLMediaElement::audioTracks() {
- DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled());
return *m_audioTracks;
}
@@ -2600,9 +2599,6 @@ WebMediaPlayer::TrackId HTMLMediaElement::addAudioTrack(
<< (String)label << "', '" << (String)language << "', "
<< boolString(enabled) << ")";
- if (!RuntimeEnabledFeatures::audioVideoTracksEnabled())
- return blink::WebMediaPlayer::TrackId();
-
AudioTrack* audioTrack =
AudioTrack::create(id, kindString, label, language, enabled);
audioTracks().add(audioTrack);
@@ -2613,14 +2609,10 @@ WebMediaPlayer::TrackId HTMLMediaElement::addAudioTrack(
void HTMLMediaElement::removeAudioTrack(WebMediaPlayer::TrackId trackId) {
BLINK_MEDIA_LOG << "removeAudioTrack(" << (void*)this << ")";
- if (!RuntimeEnabledFeatures::audioVideoTracksEnabled())
- return;
-
audioTracks().remove(trackId);
}
VideoTrackList& HTMLMediaElement::videoTracks() {
- DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled());
return *m_videoTracks;
}
@@ -2655,9 +2647,6 @@ WebMediaPlayer::TrackId HTMLMediaElement::addVideoTrack(
<< (String)label << "', '" << (String)language << "', "
<< boolString(selected) << ")";
- if (!RuntimeEnabledFeatures::audioVideoTracksEnabled())
- return blink::WebMediaPlayer::TrackId();
-
// If another track was selected (potentially by the user), leave it selected.
if (selected && videoTracks().selectedIndex() != -1)
selected = false;
@@ -2672,9 +2661,6 @@ WebMediaPlayer::TrackId HTMLMediaElement::addVideoTrack(
void HTMLMediaElement::removeVideoTrack(WebMediaPlayer::TrackId trackId) {
BLINK_MEDIA_LOG << "removeVideoTrack(" << (void*)this << ")";
- if (!RuntimeEnabledFeatures::audioVideoTracksEnabled())
- return;
-
videoTracks().remove(trackId);
}
@@ -3205,6 +3191,21 @@ void HTMLMediaElement::remotePlaybackStarted() {
remotePlaybackClient()->stateChanged(WebRemotePlaybackState::Connected);
}
+bool HTMLMediaElement::hasSelectedVideoTrack() {
+ DCHECK(RuntimeEnabledFeatures::backgroundVideoTrackOptimizationEnabled());
+
+ return m_videoTracks && m_videoTracks->selectedIndex() != -1;
+}
+
+WebMediaPlayer::TrackId HTMLMediaElement::getSelectedVideoTrackId() {
+ DCHECK(RuntimeEnabledFeatures::backgroundVideoTrackOptimizationEnabled());
+ DCHECK(hasSelectedVideoTrack());
+
+ int selectedTrackIndex = m_videoTracks->selectedIndex();
+ VideoTrack* track = m_videoTracks->anonymousIndexedGetter(selectedTrackIndex);
+ return track->id();
+}
+
bool HTMLMediaElement::isAutoplayingMuted() {
if (!isHTMLVideoElement() ||
!RuntimeEnabledFeatures::autoplayMutedVideosEnabled()) {
@@ -3859,8 +3860,10 @@ DEFINE_TRACE_WRAPPERS(HTMLMediaElement) {
}
void HTMLMediaElement::createPlaceholderTracksIfNecessary() {
- if (!RuntimeEnabledFeatures::audioVideoTracksEnabled())
+ if (!RuntimeEnabledFeatures::audioVideoTracksEnabled() &&
+ !RuntimeEnabledFeatures::backgroundVideoTrackOptimizationEnabled()) {
return;
+ }
// Create a placeholder audio track if the player says it has audio but it
// didn't explicitly announce the tracks.
@@ -3876,8 +3879,10 @@ void HTMLMediaElement::createPlaceholderTracksIfNecessary() {
}
void HTMLMediaElement::selectInitialTracksIfNecessary() {
- if (!RuntimeEnabledFeatures::audioVideoTracksEnabled())
+ if (!RuntimeEnabledFeatures::audioVideoTracksEnabled() &&
+ !RuntimeEnabledFeatures::backgroundVideoTrackOptimizationEnabled()) {
return;
+ }
// Enable the first audio track if an audio track hasn't been enabled yet.
if (audioTracks().length() > 0 && !audioTracks().hasEnabledTrack())
« no previous file with comments | « third_party/WebKit/Source/core/html/HTMLMediaElement.h ('k') | third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698