Bug 1444489 - Part V, Remove XUL videocontrols reflow code on Android
With all videocontrols UIs implemented in HTML, there is no need to handle
XUL content in videocontrols.
MozReview-Commit-ID: Jq3SecscssO
--- a/layout/generic/nsVideoFrame.cpp
+++ b/layout/generic/nsVideoFrame.cpp
@@ -343,30 +343,16 @@ nsVideoFrame::Reflow(nsPresContext* aPre
MOZ_ASSERT(childStatus.IsFullyComplete(),
"We gave our child unconstrained available block-size, "
"so it should be complete!");
FinishReflowChild(imageFrame, aPresContext,
kidDesiredSize, &kidReflowInput,
posterRenderRect.x, posterRenderRect.y, 0);
-// Android still uses XUL media controls & hence needs this XUL-friendly
-// custom reflow code. This will go away in bug 1310907.
-#ifdef ANDROID
- } else if (child->GetContent() == mVideoControls) {
- // Reflow the video controls frame.
- nsBoxLayoutState boxState(PresContext(), aReflowInput.mRenderingContext);
- nsBoxFrame::LayoutChildAt(boxState,
- child,
- nsRect(borderPadding.left,
- borderPadding.top,
- aReflowInput.ComputedWidth(),
- aReflowInput.ComputedHeight()));
-
-#endif // ANDROID
} else if (child->GetContent() == mCaptionDiv ||
child->GetContent() == mVideoControls) {
// Reflow the caption and control bar frames.
WritingMode wm = child->GetWritingMode();
LogicalSize availableSize = aReflowInput.ComputedSize(wm);
availableSize.BSize(wm) = NS_UNCONSTRAINEDSIZE;
ReflowInput kidReflowInput(aPresContext,
@@ -616,31 +602,26 @@ nsVideoFrame::ComputeSize(gfxContext *aR
WritingMode aWM,
const LogicalSize& aCBSize,
nscoord aAvailableISize,
const LogicalSize& aMargin,
const LogicalSize& aBorder,
const LogicalSize& aPadding,
ComputeSizeFlags aFlags)
{
-// When in no video scenario, it should fall back to inherited method.
-// We keep old codepath here since Android still uses XUL media controls.
-// This will go away in bug 1310907.
-#ifndef ANDROID
if (!HasVideoElement()) {
return nsContainerFrame::ComputeSize(aRenderingContext,
aWM,
aCBSize,
aAvailableISize,
aMargin,
aBorder,
aPadding,
aFlags);
}
-#endif // ANDROID
nsSize size = GetVideoIntrinsicSize(aRenderingContext);
IntrinsicSize intrinsicSize;
intrinsicSize.width.SetCoordValue(size.width);
intrinsicSize.height.SetCoordValue(size.height);
// Only video elements have an intrinsic ratio.
@@ -738,31 +719,16 @@ bool nsVideoFrame::ShouldDisplayPoster()
}
nsSize
nsVideoFrame::GetVideoIntrinsicSize(gfxContext *aRenderingContext)
{
// Defaulting size to 300x150 if no size given.
nsIntSize size(300, 150);
-// All media controls have been converted to HTML except Android. Hence
-// we keep this codepath for Android until removal in bug 1310907.
-#ifdef ANDROID
- if (!HasVideoElement()) {
- if (!mFrames.FirstChild()) {
- return nsSize(0, 0);
- }
-
- // Ask the controls frame what its preferred height is
- nsBoxLayoutState boxState(PresContext(), aRenderingContext, 0);
- nscoord prefHeight = mFrames.LastChild()->GetXULPrefSize(boxState).height;
- return nsSize(nsPresContext::CSSPixelsToAppUnits(size.width), prefHeight);
- }
-#endif // ANDROID
-
HTMLVideoElement* element = static_cast<HTMLVideoElement*>(GetContent());
if (NS_FAILED(element->GetVideoSize(&size)) && ShouldDisplayPoster()) {
// Use the poster image frame's size.
nsIFrame *child = mPosterImage->GetPrimaryFrame();
nsImageFrame* imageFrame = do_QueryFrame(child);
nsSize imgsize;
if (NS_SUCCEEDED(imageFrame->GetIntrinsicImageSize(imgsize))) {
return imgsize;