| 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 fbb33611b4b8eb845abfd5eb67750ca412e4cd86..a23c6a4f7feeac806f2ce01e6a46fe57afe6bc7a 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| @@ -996,7 +996,8 @@ void HTMLMediaElement::loadResource(const WebMediaPlayerSource& source, ContentT
|
|
|
| bool attemptLoad = true;
|
|
|
| - if (source.isMediaStream() || url.protocolIs(mediaSourceBlobProtocol)) {
|
| + bool isStreamOrBlobUrl = source.isMediaStream() || url.protocolIs(mediaSourceBlobProtocol);
|
| + if (isStreamOrBlobUrl) {
|
| bool isMediaStream = source.isMediaStream() || (source.isURL() && isMediaStreamURL(url.getString()));
|
| if (isMediaStream) {
|
| m_autoplayHelper->removeUserGestureRequirement(GesturelessPlaybackEnabledByStream);
|
| @@ -1018,7 +1019,10 @@ void HTMLMediaElement::loadResource(const WebMediaPlayerSource& source, ContentT
|
| if (attemptLoad && canLoadResource) {
|
| ASSERT(!webMediaPlayer());
|
|
|
| - if (effectivePreloadType() == WebMediaPlayer::PreloadNone) {
|
| + // Conditionally defer the load if effective preload is 'none'.
|
| + // Skip this optional deferral for MediaStream sources or any blob URL,
|
| + // including MediaSource blob URLs.
|
| + if (!isStreamOrBlobUrl && effectivePreloadType() == WebMediaPlayer::PreloadNone) {
|
| WTF_LOG(Media, "HTMLMediaElement::loadResource(%p) : Delaying load because preload == 'none'", this);
|
| deferLoad();
|
| } else {
|
|
|