| 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 5d9fc80c972c70e2d16df7f56ef108ce6aa25aa6..efd6285906520d5d0f5f4bfa8bb33d88841ce850 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| @@ -995,7 +995,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);
|
| @@ -1017,7 +1018,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 {
|
|
|