Bug 1347402 part 3 - get owner document via polymorphism; r?jwwang draft
authorKaku Kuo <kaku@mozilla.com>
Wed, 15 Mar 2017 14:56:05 +0800
changeset 500354 762bbf5db2b749d174b72ec2eb37bf42718861c5
parent 500353 b5c8187ed786aff6c72462d665d79488c574b780
child 500355 c0dee5b76d56d44a1d66387cd9cce0448879d9ca
push id49701
push userbmo:kaku@mozilla.com
push dateFri, 17 Mar 2017 03:54:30 +0000
reviewersjwwang
bugs1347402
milestone55.0a1
Bug 1347402 part 3 - get owner document via polymorphism; r?jwwang MozReview-Commit-ID: GCr2xQyST4X
dom/media/MediaDecoder.cpp
--- a/dom/media/MediaDecoder.cpp
+++ b/dom/media/MediaDecoder.cpp
@@ -584,21 +584,17 @@ MediaDecoder::OnPlaybackErrorEvent(const
 }
 
 void
 MediaDecoder::OnDecoderDoctorEvent(DecoderDoctorEvent aEvent)
 {
   MOZ_ASSERT(NS_IsMainThread());
   // OnDecoderDoctorEvent is disconnected at shutdown time.
   MOZ_DIAGNOSTIC_ASSERT(!IsShutdown());
-  HTMLMediaElement* element = GetOwner()->GetMediaElement();
-  if (!element) {
-    return;
-  }
-  nsIDocument* doc = element->OwnerDoc();
+  nsIDocument* doc = GetOwner()->GetDocument();
   if (!doc) {
     return;
   }
   DecoderDoctorDiagnostics diags;
   diags.StoreEvent(doc, aEvent, __func__);
 }
 
 void
@@ -1292,21 +1288,21 @@ MediaDecoder::DurationChanged()
 }
 
 void
 MediaDecoder::NotifyCompositor()
 {
   MediaDecoderOwner* owner = GetOwner();
   NS_ENSURE_TRUE_VOID(owner);
 
-  dom::HTMLMediaElement* element = owner->GetMediaElement();
-  NS_ENSURE_TRUE_VOID(element);
+  nsIDocument* ownerDoc = owner->GetDocument();
+  NS_ENSURE_TRUE_VOID(ownerDoc);
 
   RefPtr<LayerManager> layerManager =
-    nsContentUtils::LayerManagerForDocument(element->OwnerDoc());
+    nsContentUtils::LayerManagerForDocument(ownerDoc);
   if (layerManager) {
     RefPtr<KnowsCompositor> knowsCompositor = layerManager->AsShadowForwarder();
     mCompositorUpdatedEvent.Notify(knowsCompositor);
   }
 }
 
 void
 MediaDecoder::SetElementVisibility(bool aIsDocumentVisible,