Bug 1282710 part 2 - Plumb the visibility event from nsIFrame to nsIDOMMediaElemnt; r=seth
MozReview-Commit-ID: DnlTghYdrug
--- a/layout/generic/nsVideoFrame.cpp
+++ b/layout/generic/nsVideoFrame.cpp
@@ -660,25 +660,26 @@ nsVideoFrame::AttributeChanged(int32_t a
aModType);
}
void
nsVideoFrame::OnVisibilityChange(Visibility aOldVisibility,
Visibility aNewVisibility,
Maybe<OnNonvisible> aNonvisibleAction)
{
- nsCOMPtr<nsIImageLoadingContent> imageLoader = do_QueryInterface(mPosterImage);
- if (!imageLoader) {
- nsContainerFrame::OnVisibilityChange(aOldVisibility, aNewVisibility,
- aNonvisibleAction);
- return;
+ if (HasVideoElement()) {
+ nsCOMPtr<nsIDOMHTMLMediaElement> mediaDomElement = do_QueryInterface(mContent);
+ mediaDomElement->OnVisibilityChange(aOldVisibility, aNewVisibility);
}
- imageLoader->OnVisibilityChange(aOldVisibility, aNewVisibility,
- aNonvisibleAction);
+ nsCOMPtr<nsIImageLoadingContent> imageLoader = do_QueryInterface(mPosterImage);
+ if (imageLoader) {
+ imageLoader->OnVisibilityChange(aOldVisibility, aNewVisibility,
+ aNonvisibleAction);
+ }
nsContainerFrame::OnVisibilityChange(aOldVisibility, aNewVisibility,
aNonvisibleAction);
}
bool nsVideoFrame::HasVideoElement() {
nsCOMPtr<nsIDOMHTMLMediaElement> mediaDomElement = do_QueryInterface(mContent);
return mediaDomElement->IsVideo();