New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 902569 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 901629
Owner: ----
Closed: Nov 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression

Blocked on:
issue 901629



Sign in to add a comment

Failed to execute 'texImage2D' on 'WebGLRenderingContext' with mp4 redirect

Reported by r...@jwplayer.com, Nov 6

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36

Steps to reproduce the problem:
Attempt to copy video to WebGL texture when the video source is a cross-origin mp4, has the correct headers, but the initial response is a redirect.

What is the expected behavior?
No DOMException. The behavior should be the same regardless of whether or not the initial response is a redirect, and there should be no difference between using an MP4 with video.src= or an adaptive stream buffered via MSE.

What went wrong?
I'm working on an issue reported to JW Player that began in Chrome 70 with media delivered by JW Player for a VR/360 experience.

Content requests to content.jwplatform.com/videos/yKPSMwWc-2048.mp4 are redirected to videos-f.jwpsrv.com/content/conversions/Z3KUO9jB/videos/yKPSMwWc-25660671.mp4?token=0_5be20c0a_0x45c16ea3d6d7738edfa75ee2d44eb7142b6e11ad

Both the redirect response and the 200 response have "access-control-allow-origin: *" in the response headers. However, I only get the DOMException described in this ticket when setting video.src to the url that redirects, not the one that returns status 206. The crossorigin attribute is not required on the video element. The only difference I see between the two requests to the actual media asset is that Origin request header is null after a redirect. It is not when setting video.src to the asset.

Here's a page you can use to reproduce. I cobbled it together with mediocre WebGL skills. The video won't actually render to the canvas properly, but at least you can see each example - the first video/canvas throwing this exception when gl.texImage2D is called, and the other running along fine (with some warnings because I am bad at webgl).

"DOMException: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The video element contains cross-origin data, and may not be loaded."

The impact to JW Player and our publishers is that they cannot setup a 360 video player using an mp4 source of a specific quality because the redirect breaks webGL. They are forced to use an adaptive stream or serve the content themselves.

Here's a working example using an adaptive source from the same origin with the same type of redirects on the stream manifest:
https://content.jwplatform.com/previews/Y0VTj4t8-ZapyjVIm

Did this work before? Yes 69

Does this work in other browsers? Yes

Chrome version: 70.0.3538.77  Channel: stable
OS Version: OS X 10.14.0
Flash Version: 

Found a similar issue from 2014 https://bugs.chromium.org/p/chromium/issues/detail?id=336618#c16
 
Blockedon: 901629
Cc: japhet@chromium.org
Components: Blink>SecurityFeature>CORS Blink>Loader
Labels: Needs-Bisect
Owner: ligim...@chromium.org
I think this is likely the same issue as  Issue 901629 .

Ligi, could your team please do a per-revision bisect?

Cc: ligim...@chromium.org krajshree@chromium.org ajha@chromium.org
Looping to Rajshree for repro and bisect.
Labels: Needs-Triage-M70
Labels: Needs-Feedback Triaged-ET
Tried testing the issue on mac 10.14.0 and mac 10.13.6 using chrome reported version #70.0.3538.77 and latest canary #72.0.3604.0.
Attached a screen cast for reference.

Following are the steps followed to reproduce the issue.
------------
1. Navigated to https://content.jwplatform.com/previews/Y0VTj4t8-ZapyjVIm
2. Opened dev tools console and did not observe any "DOMException: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The video element contains cross-origin data, and may not be loaded."
3. Observed a warning as "cast_framework.js:57 [Deprecation] document.registerElement is deprecated and will be removed in M73, around March 2019. Please use window.customElements.define instead. See https://www.chromestatus.com/features/4642138092470272 for more details."
4. Upon playing the video, got a warning as "[.WebGL-0x7fcd2b856600]GL ERROR :GL_INVALID_OPERATION : GLES2DecoderImpl::DoBindOrCopyTexImageIfNeeded: was unhandled."

rob@ - Could you please check the attached screen cast and please let us know if anything missed from our end in reproducing the issue.

Thanks...!!
902569.mp4
1.2 MB View Download
Cc: toyoshim@chromium.org
Status: Assigned (was: Unconfirmed)
The cast_framework console warnings in the screen cast are unrelated to this bug.

https://content.jwplatform.com/previews/Y0VTj4t8-ZapyjVIm is an example of WebGL working. 

The url to reproduce the bug was missing from my description. It should have been attached (so sorry!). Here it is:
http://playertest.longtailvideo.com/vr/redirect-error.html




redirect-error.html
7.6 KB View Download
Screen Shot 2018-11-08 at 12.11.28 PM.png
497 KB View Download
Submitter:  Issue 901629  was just diagnosed and fixed, and I think it's a duplicate of this one. Could you help us confirm whether it looks like it's fixed by that?

Labels: -Needs-Feedback -Needs-Bisect
Mergedinto: 901629
Owner: ----
Status: Duplicate (was: Assigned)
The issue looks similar to issue id: 901629, as the good and bad builds as in this particular issue is same as the issue id: 901629. Hence, merging into 901629.
Please feel free to undupe the same if not the case.

Thanks...!!

Sign in to add a comment