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

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

Issue 2795783004: Move core MediaControls implementation to modules/media_controls/. (Closed)
Patch Set: rebase Created 3 years, 8 months 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 98f325a78b1d79199829f04ffac333326d461718..466cd5fd72debf611190d034cc3de2d2db93091b 100644
--- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
@@ -56,9 +56,9 @@
#include "core/html/media/AutoplayUmaHelper.h"
#include "core/html/media/HTMLMediaElementControlsList.h"
#include "core/html/media/HTMLMediaSource.h"
+#include "core/html/media/MediaControls.h"
#include "core/html/media/MediaError.h"
#include "core/html/media/MediaFragmentURIParser.h"
-#include "core/html/shadow/MediaControls.h"
#include "core/html/track/AudioTrack.h"
#include "core/html/track/AudioTrackList.h"
#include "core/html/track/AutomaticTrackSelection.h"
@@ -327,6 +327,12 @@ bool computeLockedPendingUserGesture(Document& document) {
return document.settings()->getMediaPlaybackRequiresUserGesture();
}
+std::unique_ptr<MediaControls::Factory>& mediaControlsFactory() {
+ DEFINE_STATIC_LOCAL(std::unique_ptr<MediaControls::Factory>,
+ s_mediaControlsFactory, ());
+ return s_mediaControlsFactory;
+}
+
} // anonymous namespace
MIMETypeRegistry::SupportsType HTMLMediaElement::supportsType(
@@ -377,6 +383,7 @@ bool HTMLMediaElement::mediaTracksEnabledInternally() {
RuntimeEnabledFeatures::backgroundVideoTrackOptimizationEnabled();
}
+// static
void HTMLMediaElement::onMediaControlsEnabledChange(Document* document) {
auto it = documentToElementSetMap().find(document);
if (it == documentToElementSetMap().end())
@@ -390,6 +397,13 @@ void HTMLMediaElement::onMediaControlsEnabledChange(Document* document) {
}
}
+// static
+void HTMLMediaElement::registerMediaControlsFactory(
+ std::unique_ptr<MediaControls::Factory> factory) {
+ DCHECK(!mediaControlsFactory());
+ mediaControlsFactory() = std::move(factory);
+}
+
HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName,
Document& document)
: HTMLElement(tagName, document),
@@ -3699,11 +3713,11 @@ MediaControls* HTMLMediaElement::mediaControls() const {
}
void HTMLMediaElement::ensureMediaControls() {
- if (mediaControls())
+ if (mediaControls() || !mediaControlsFactory())
return;
ShadowRoot& shadowRoot = ensureUserAgentShadowRoot();
- m_mediaControls = MediaControls::create(*this, shadowRoot);
+ m_mediaControls = mediaControlsFactory()->create(*this, shadowRoot);
// The media controls should be inserted after the text track container,
// so that they are rendered in front of captions and subtitles. This check

Powered by Google App Engine
This is Rietveld 408576698