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

Issue 896279 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Preloaded resources aren't used by <audio>

Reported by gursoyem...@gmail.com, Oct 17

Issue description

Chrome Version       : Version 72.0.3582.0 (Official Build) canary (32-bit)
URLs (if applicable) :
Other browsers tested:
No. My application is only for Chrome.
Chrome Version 69.0.3497.100 (Official Build) (64-bit) do not have the problem.

What steps will reproduce the problem?
(1) The page gets started. After that based on user validation, some media (audios, videos or images) dynamically added to the page by using <link rel="preload" feature. Such as:

<link href="http://localhost:55341/uploads/Questions/2018/3/qId_2/qId_2_sqId2_r1247421.wav" rel="preload" as="audio">

(2)It was working before. Bu now, when media assigned to an element (audio) I get following error message.

A preload for 'http://localhost:55341/uploads/Questions/2018/3/qId_2/qId_2_sqId2_r1247421.wav' is found, but is not used because the request headers do not match.

What is the expected result?
The expected result is not seeing any warning like before. And I could not find any resources about this problem by Googling it.

What happens instead?
I get the warning, that is very critical in my case. The preloading must be done in order my page to function. Because of the timer, everything gets out of sync with any latency.

Thanks
 
chrome issue.png
8.1 KB View Download
Cc: yhirano@chromium.org
[+yhirano]:  Looks like you added this error message.
Labels: Needs-Triage-M72
Components: -Blink>Loader Blink>Loader>Preload
Status: Available (was: Unconfirmed)
Summary: Preloaded resources aren't used by <audio> (was: link preload warning issue)
Confirmed.

Request headers for <link rel=preload as=audio>:

Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cache-Control: no-cache
Connection: keep-alive
Host: localhost:8080
Pragma: no-cache
Referer: http://localhost:8080/audio-preload.html
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3583.0 Safari/537.36

Request headers for <audio>:

Accept: */*
Accept-Encoding: identity;q=1, *;q=0
Accept-Language: en-US,en;q=0.9
Cache-Control: no-cache
chrome-proxy: frfr
Connection: keep-alive
Host: localhost:8080
Pragma: no-cache
Range: bytes=0-
Referer: http://localhost:8080/audio-preload.html
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3583.0 Safari/537.36

Accept-Encoding, chrome-proxy, and Range headers don't match.


In Chrome 70 we added the console warning for preload mismatch, but preloaded resource wasn't used in Chrome <=69 as well.
Possible workaround: use "preload" attribute of <audio> element. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio#Attributes
Hi,

The workaround does not work in my case. Because I don't know what to load until later of the page life cycle.

I have to make sure that the resources (audio, video or images) are loaded and can be used before proceeding. My project cannot tolerate even one second of latency.

It seems resources are loaded successfully but Chrome doesn't want to use them.

I don't know the reason to fix it. Warning message does not give much information at least to me. 

How can I make Chrome to use them?

Thanks
Was preloads really working? I added some error messages but didn't change any matching logic. I guess on Chrome 69 prealods fails silently (you can observe that with the network tab on devtools) but now there is a warning.
I attached the screenshot. It seems it is loading.

network.png
56.5 KB View Download
the screenshot belong the canary.
Components: Blink>Media>Audio
Sorry, ksakamoto@ already confirmed that. It was not working, and it is not working.

It is a known issue for video. See issue 735014.
I have a timer on the page and cannot tolerate download latency. That is why I have to make sure that all the media preloaded before using them.I used to get media and save them as blob and use

video.src = URL.createObjectURL(blob);

However URL.createObjectURL(blob) not usable anymore. Then I started to use link preload html5 feature. Now we are having this problem with it.

Could you tell me if this can be fixed soon or suggest another way of caching entire video and audio?
Is there any news?

Sign in to add a comment