podlove / podlove-ui

Monorepo for all UI related projects like Web Player and Subscribe Button
MIT License
84 stars 33 forks source link

iFrameSizer triggered by change in progressbar and hover on elements im Player #1117

Open eazyliving opened 1 year ago

eazyliving commented 1 year ago

I got some strange requests in the access.log of fyyd.de for a while that look like that:

1.2.3.4 - - [09/Mar/2023:11:39:25 +0100] "GET /episode/null HTTP/1.1" 200 591 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0"

After some diging I could follow the traces back to the podlove player. Every time the progressbar changes (via hover or by playing) I can find this in safaris console:

[Log] [iFrameSizer][iFrameResizer0] Trigger event: mutationObserver: [object HTMLDivElement] attributes (podlove-web-player, line 11)
[Log] [iFrameSizer][iFrameResizer0] No change in size detected (podlove-web-player, line 11)
[Log] [iFrameSizer][iFrameResizer0] Trigger event: Transition Start (podlove-web-player, line 11)
[Log] [iFrameSizer][iFrameResizer0] No change in size detected (podlove-web-player, line 11)

This happens happens multiple times a second when playing and also triggers the GET request on /episode/null for fyyd.de

While I cannot tell if the behaviour of iFrameSizer is ok or not, the request to /episode/null cannot be intentionally, can it?

While my example in the log is a firefox, most requests come from Safari mac or iPhone. I'd say 9 out of 10 and with Safari I can replicate that without problems, whereas with firefox I can't.

To give you some numbers: 25% of all requests today are requests to /episode/null (~100.000 out of 400.000). I had cases, where 10 or more clients ran a small ddos on fyyd :-}

alexander-heimbuch commented 1 year ago

I don't think that the iFrameResizer is the root cause, seems more like the Audio Backend creates the request. Can you share a configuration that you use?

eazyliving commented 1 year ago

Sorry, didn't get the notification :-(

Well, you can check it yourself at https://podlove.org/podlove-web-player/#preview I can replicate that with recent Safari on that site :)