From 3a99c6ba6ae61245f7eb2fdaa84cc378987baf35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez=20Moreno?= Date: Fri, 10 May 2019 20:41:06 +0200 Subject: [PATCH] Do not render controls until we have metadata --- components/script/dom/htmlmediaelement.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index 8e29bd1a9d2..256199ca1f0 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -1648,6 +1648,12 @@ impl HTMLMediaElement { // https://github.com/servo/media/issues/156 // Step 12 & 13 are already handled by the earlier media track processing. + + // We wait until we have metadata to render the controls, so we render them + // with the appropriate size. + if self.Controls() { + self.render_controls(); + } }, PlayerEvent::NeedData => { // The player needs more data. @@ -1725,6 +1731,9 @@ impl HTMLMediaElement { } fn render_controls(&self) { + if self.ready_state.get() < ReadyState::HaveMetadata { + return; + } // XXX cannot render controls while parsing. // XXX check that controls are not already rendered. let element = self.htmlelement.upcast::();