diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-05-10 20:41:06 +0200 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-07-22 17:40:15 +0200 |
commit | 3a99c6ba6ae61245f7eb2fdaa84cc378987baf35 (patch) | |
tree | f6ae9d0ef6fe311986f6614b11d94708012ef8e1 /components/script/dom | |
parent | f16cf2d6a42b2b65d3bc6c4a4eaa80d0c337a57e (diff) | |
download | servo-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.rs | 9 |
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>(); |