Fixed bug where videos were not showing up on Safari #3562
+6
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Summary:
The video section was not loading Youtube videos properly on Safari. This is because of a rendering bug with iframes that made it so that the video just didn't show up - audio would play, the element would exist, but it just wouldn't render. This fixes it.
What approach did you take?
The element needs to be repainted to have it show up. So I just apply a display value into the
style
attribute, then put back whatever was there before (should usually be nothing, but just in case). That part needs to be done in asetTimeout
to force it to execute after the completion of the part that addsdisplay: block
, otherwise it happens before the repaint and doesn't work. See mdn for details on how that stuff works.Other considerations
It shouldn't affect other things that use DeferredMedia since it's just adding and removing a style really quickly, but we should thoroughly test that.
Testing steps/scenarios
Demo links