Feedback Technical Grievances

  • 🔎 If you see an alert for analytics.usips.org, this is a self-hosted system I am running as a test. It is GDPR compliant and collects no invasive information.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
Meanwhile my clanker gave me a function that fixes it in a broken video, and gave me this as well. What's really stupid is that when it spawned a MCP-controlled window, the players worked normally from the getgo. I thought maybe it was because i was not logged in, but no, a private window still made it broken, as did trying this out in a fresh profile with no extensions. I even thought of changing to the light style (i use dark exclusively), but no.

I'll redo your test now
In Safari 27.0.1, the player’s wrappers measure 177.1875 × 315px, but the native <video> inside hlsjs-video.shadowRoot measures 177.1875 × 640px during playback.

The video stylesheet specifies height: 100%, yet the resulting height equals the stream’s intrinsic height, 640px. With object-fit: contain and object-position: 50% 50%, this places the picture 162.5px too low inside the player. The enclosing player clips it.

Setting the video height to 315px immediately corrects the displacement. Replacing that diagnostic with the following also corrects the broken player:

/* Inside hlsjs-video's shadow-root stylesheet */
video {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}

Preserve the existing object-fit: contain. An ordinary page-level CSS selector cannot reach this shadow-root video.

Reproduction page: https://kiwifarms.st/threads/random-pics-gifs-and-vids.1234/post-25633742

Reproduces in ordinary Safari, including an empty profile with extensions disabled. Did not reproduce in the Safari automation session.

(() => {
const video = document.querySelector('#media-9629638')
?.querySelector('hlsjs-video')?.shadowRoot?.querySelector('video');

if (!video) return 'Player not found—select the affected page in Console.';

if (typeof window.undoVideoHeightTest === 'function') {
window.undoVideoHeightTest();
}

const original = video.getAttribute('style');
window.undoVideoLayoutTest = () => {
if (original === null) video.removeAttribute('style');
else video.setAttribute('style', original);
};

for (const [property, value] of Object.entries({
position: 'absolute',
inset: '0',
width: '100%',
height: '100%'
})) {
video.style.setProperty(property, value, 'important');
}

console.log(video.getBoundingClientRect().toJSON());
})();
 
Then hit Copy report and paste it here
Still no damn repro. I'm going a bit crazy here, let me check it if it happens on my wife's macbook just to be 100% sure it's not a PEBKAC problem of some sort
Safari video debug report
User agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/27.0.1 Safari/605.1.15
Device pixel ratio: 2
ManagedMediaSource: yes · MediaSource: yes · native HLS: maybe
hls.js: 1.5.20

forum/portrait/P0: OK
forum/portrait/P1: OK
forum/portrait/P2: OK
forum/portrait/P3: OK
forum/portrait/P4: OK
forum/portrait/P5: OK

Forum page layout, forum/portrait/P0 (OK):
playing media-9629638 · page scroll at play 3363px, now 3363px
decoded 360x640 · t=12.5s · dpr 2 · container on screen at y=111
ladder 360x640 · playing 360x640
layer (inner → outer): x,y relative to .ephyra-media · size · display/position/height/object-fit/transform/overflow
video: +0,+0 177x315 · block / static / 315px / contain / none / visible
slot: +-10,+-111 0x0 · contents / static / auto / fill / none / visible
hlsjs-video: +-10,+-111 0x0 · contents / static / 100% / fill / none / visible
slot: +-10,+-111 0x0 · contents / static / auto / fill / none / visible
media-container.media-default-skin.media-default-skin--video: +0,+0 177x315 · block / relative / 315px / fill / none / clip
video-skin: +0,+0 177x315 · grid / relative / 315px / fill / none / visible
video-player: +0,+0 177x315 · block / static / 315px / fill / none / visible
div#media-9629638.ephyra-player.ephyra-player--video: +0,+0 177x315 · block / relative / 315px / fill / none / hidden
div.ephyra-media: +0,+0 177x315 · inline-block / static / 315px / fill / none / visible

Forum page layout, forum/portrait/P1 (OK):
playing media-9629638 · page scroll at play 3320px, now 3320px
decoded 360x640 · t=14.2s · dpr 2 · container on screen at y=154
ladder 360x640 · playing 360x640
layer (inner → outer): x,y relative to .ephyra-media · size · display/position/height/object-fit/transform/overflow
video: +0,+0 177x315 · block / static / 315px / contain / none / visible
slot: +-10,+-154 0x0 · contents / static / auto / fill / none / visible
hlsjs-video: +-10,+-154 0x0 · contents / static / 100% / fill / none / visible
slot: +-10,+-154 0x0 · contents / static / auto / fill / none / visible
media-container.media-default-skin.media-default-skin--video: +0,+0 177x315 · block / relative / 315px / fill / none / clip
video-skin: +0,+0 177x315 · grid / relative / 315px / fill / none / visible
video-player: +0,+0 177x315 · block / static / 315px / fill / none / visible
div#media-9629638.ephyra-player.ephyra-player--video: +0,+0 177x315 · block / relative / 315px / fill / none / hidden
div.ephyra-media: +0,+0 177x315 · inline-block / static / 315px / fill / none / visible

Forum page layout, forum/portrait/P2 (OK):
playing media-9629638 · page scroll at play 3345px, now 3345px
decoded 360x640 · t=12.0s · dpr 2 · container on screen at y=112
ladder 360x640 · playing 360x640
layer (inner → outer): x,y relative to .ephyra-media · size · display/position/height/object-fit/transform/overflow
video: +0,+0 177x315 · block / static / 315px / contain / none / visible
slot: +-10,+-112 0x0 · contents / static / auto / fill / none / visible
hlsjs-video: +-10,+-112 0x0 · contents / static / 100% / fill / none / visible
slot: +-10,+-112 0x0 · contents / static / auto / fill / none / visible
media-container.media-default-skin.media-default-skin--video: +0,+0 177x315 · block / relative / 315px / fill / none / clip
video-skin: +0,+0 177x315 · grid / relative / 315px / fill / none / visible
video-player: +0,+0 177x315 · block / static / 315px / fill / none / visible
div#media-9629638.ephyra-player.ephyra-player--video: +0,+0 177x315 · block / relative / 315px / fill / none / hidden
div.ephyra-media: +0,+0 177x315 · inline-block / static / 315px / fill / none / visible

Forum page layout, forum/portrait/P3 (OK):
playing media-9629638 · page scroll at play 3363px, now 3363px
decoded 360x640 · t=13.5s · dpr 2 · container on screen at y=111
ladder 360x640 · playing 360x640
layer (inner → outer): x,y relative to .ephyra-media · size · display/position/height/object-fit/transform/overflow
video: +0,+0 177x315 · block / static / 315px / contain / none / visible
slot: +-10,+-111 0x0 · contents / static / auto / fill / none / visible
hlsjs-video: +-10,+-111 0x0 · contents / static / 100% / fill / none / visible
slot: +-10,+-111 0x0 · contents / static / auto / fill / none / visible
media-container.media-default-skin.media-default-skin--video: +0,+0 177x315 · block / relative / 315px / fill / none / clip
video-skin: +0,+0 177x315 · grid / relative / 315px / fill / none / visible
video-player: +0,+0 177x315 · block / static / 315px / fill / none / visible
div#media-9629638.ephyra-player.ephyra-player--video: +0,+0 177x315 · block / relative / 315px / fill / none / hidden
div.ephyra-media: +0,+0 177x315 · inline-block / static / 315px / fill / none / visible

Forum page layout, forum/portrait/P4 (OK):
playing media-9629638 · page scroll at play 3345px, now 3122px
decoded 360x640 · t=12.8s · dpr 2 · container on screen at y=335
ladder 360x640 · playing 360x640
layer (inner → outer): x,y relative to .ephyra-media · size · display/position/height/object-fit/transform/overflow
video: +0,+0 177x315 · block / static / 315px / contain / none / visible
slot: +-10,+-335 0x0 · contents / static / auto / fill / none / visible
hlsjs-video: +-10,+-335 0x0 · contents / static / 100% / fill / none / visible
slot: +-10,+-335 0x0 · contents / static / auto / fill / none / visible
media-container.media-default-skin.media-default-skin--video: +0,+0 177x315 · block / relative / 315px / fill / none / clip
video-skin: +0,+0 177x315 · grid / relative / 315px / fill / none / visible
video-player: +0,+0 177x315 · block / static / 315px / fill / none / visible
div#media-9629638.ephyra-player.ephyra-player--video: +0,+0 177x315 · block / relative / 315px / fill / none / hidden
div.ephyra-media: +0,+0 177x315 · inline-block / static / 315px / fill / none / visible

Forum page layout, forum/portrait/P5 (OK):
playing media-9629638 · page scroll at play 3345px, now 3345px
decoded 360x640 · t=13.3s · dpr 2 · container on screen at y=112
ladder 360x640 · playing 360x640
layer (inner → outer): x,y relative to .ephyra-media · size · display/position/height/object-fit/transform/overflow
video: +0,+0 177x315 · block / static / 315px / contain / none / visible
slot: +-10,+-112 0x0 · contents / static / auto / fill / none / visible
hlsjs-video: +-10,+-112 0x0 · contents / static / 100% / fill / none / visible
slot: +-10,+-112 0x0 · contents / static / auto / fill / none / visible
media-container.media-default-skin.media-default-skin--video: +0,+0 177x315 · block / relative / 315px / fill / none / clip
video-skin: +0,+0 177x315 · grid / relative / 315px / fill / none / visible
video-player: +0,+0 177x315 · block / static / 315px / fill / none / visible
div#media-9629638.ephyra-player.ephyra-player--video: +0,+0 177x315 · block / relative / 315px / fill / none / hidden
div.ephyra-media: +0,+0 177x315 · inline-block / static / 315px / fill / none / visible
 
Still no damn repro. I'm going a bit crazy here, let me check it if it happens on my wife's macbook just to be 100% sure it's not a PEBKAC problem of some sort
I just pushed an update based off your LLM message. Is it working now?
 
I just pushed an update based off your LLM message. Is it working now?
I was about to write that either you did something or it's a problem on my end because I can't repro on my wife's macbook. Thank you, it works perfectly now, even on my machine <3
 
@Null If i have your attention may I ask that the picture viewer download button could be fixed for safari as well? In Brave, if a picture is called let's say 1790984255038.png then that's the filename i'll get, but in safari, it creates https___kiwifarms.st_attachments_1790984255038-png.9652288_. It's the last problem I have with the site, but I understand it's probably in xenforo and not in the media player

I already sicked the clanker on it and here's it's opinion

Both browsers receive conflicting filenames:

SourceFilename supplied
Server’s Content-Disposition header1790984255038.png
Viewer button’s download attribute
Brave uses the server’s filename. Safari uses the viewer’s value, replacing punctuation with underscores. Both downloaded files are byte-for-byte identical PNGs; the image format itself is fine.

Here’s the fix to send the developer:

The site uses Fancybox 5.0.36, bundled in js/xf/lightbox-compiled.js. Its download-button code falls back to the image URL when the slide’s downloadFilename is missing.

Supply the original attachment filename through data-download-filename on the image’s a.js-lbImagetrigger, before opening the viewer:

<a class="js-lbImage"
href="/attachments/1790984255038-png.9652288/"
data-download-filename="1790984255038.png">
<!-- picture/image -->
</a>

Render the actual attachment filename for each image, with normal HTML attribute escaping. Fancybox then generates download="1790984255038.png" instead of putting the URL there.
I applied that attribute temporarily in Safari, reopened the viewer, and downloaded the image. It saved as 1790984255038.png, with the same verified contents. The site itself hasn’t been changed.
 
I hope this is the right place to ask and I'm sorry if it isn't - On mobile I cannto use the top bar or any options on it when posting. Italics, Bold, insert image etc
 
@Null If i have your attention may I ask that the picture viewer download button could be fixed for safari as well? In Brave, if a picture is called let's say 1790984255038.png then that's the filename i'll get, but in safari, it creates https___kiwifarms.st_attachments_1790984255038-png.9652288_. It's the last problem I have with the site, but I understand it's probably in xenforo and not in the media player
I do not know what you're referring to. What are you trying to do?
 
ur a wizard. Why does this option exist to turn off?! amazing
Because many of us use it to fix formatting errors with the GUI editor, extra spaces, screwed up quotes, etc.
If null gets some spare clanker cycles he might try again with having it just replace the grayed out icons with "Click here to disable bbcode" instead of the colored banner. Obviously the current editor is a giant piece of shit so that could just break it and may not be worth it before it gets re-written entirely.
 
I do not know what you're referring to. What are you trying to do?
Download a picture, like so
Screenshot 2026-10-03 at 20.37.18.png
 
It also forces me to open them in a new window when I try to click download
Wow any information to assist in debugging this? Can I get anything at all?
 
No, sorry lol. I'm not a programmer I'll get out my bad.
How about basic information such as browser? Can you read op?
 
How about basic information such as browser? Can you read op?
Pc, windows, chrome browser
Like in the video the guy posted- if I try to right click and download, it makes another tab open with the media and then you can click download again and it'll save. If I remember right even if you hit the download button it still makes another window pop up. I'll take a video tonight when I'm on my pc to show.
 
Pc, windows, chrome browser
Like in the video the guy posted- if I try to right click and download, it makes another tab open with the media and then you can click download again and it'll save. If I remember right even if you hit the download button it still makes another window pop up. I'll take a video tonight when I'm on my pc to show.
is this download button the one that shows up to download attachment images or videos? videos use a new tab because they have to for security reasons.
 
Back
Top Bottom