aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorFernando Jiménez Moreno <ferjmoreno@gmail.com>2019-05-10 20:41:06 +0200
committerFernando Jiménez Moreno <ferjmoreno@gmail.com>2019-07-22 17:40:15 +0200
commit3a99c6ba6ae61245f7eb2fdaa84cc378987baf35 (patch)
treef6ae9d0ef6fe311986f6614b11d94708012ef8e1 /components/script/dom
parentf16cf2d6a42b2b65d3bc6c4a4eaa80d0c337a57e (diff)
downloadservo-3a99c6ba6ae61245f7eb2fdaa84cc378987baf35.tar.gz
servo-3a99c6ba6ae61245f7eb2fdaa84cc378987baf35.zip
Do not render controls until we have metadata
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/htmlmediaelement.rs9
1 files changed, 9 insertions, 0 deletions
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::<Element>();