Use logical coordinates in nsVideoFrame::Reflow()
Categories
(Core :: Layout: Images, Video, and HTML Frames, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox120 | --- | fixed |
People
(Reporter: TYLin, Assigned: TYLin)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
Also, in nsVideoFrame::Reflow()
, convert the caller of nsContainerFrame::ReflowChild
and nsContainerFrame::FinishReflowChild
to logical version.
Assignee | ||
Comment 1•2 years ago
|
||
This patch doesn't change user-perceivable behavior.
Note: before this patch, when reflowing poster frame, kidReflowInput
was
initialized with cbSize
of value (0,0), which is bogus since Size
in
aMetrics
has not been set yet. Removing the bogus code uncovers the following
assertions
ASSERTION: Our containing block must not have unconstrained inline-size!
in a 944909-1.html, which has bogus large sizes.
Comment 3•2 years ago
|
||
Backed out for causing failures on 944909-1.html
- backout: https://hg.mozilla.org/integration/autoland/rev/802ad06c882b554b3db08a741c337b5dc3d3dded
- push: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&revision=5c3542fc6cc8561fa4f77ef28b10c402b770851d&selectedTaskRun=f5ET2l6_Slq9jqTsk0FMAQ.0
- failure log: https://treeherder.mozilla.org/logviewer?job_id=430394581&repo=autoland&lineNumber=140591
[task 2023-09-26T19:27:48.016Z] 19:27:48 INFO - [Child 3521, Main Thread] ###!!! ASSERTION: Our containing block must not have unconstrained inline-size!: 'aCBSize.ISize(aWM) != NS_UNCONSTRAINEDSIZE', file /builds/worker/checkouts/gecko/layout/generic/nsContainerFrame.cpp:2408
[task 2023-09-26T19:27:48.017Z] 19:27:48 INFO - #01: NS_DebugBreak [xpcom/base/nsDebugImpl.cpp:0]
[task 2023-09-26T19:27:48.017Z] 19:27:48 INFO - #02: nsContainerFrame::ComputeSizeWithIntrinsicDimensions(gfxContext*, mozilla::WritingMode, mozilla::IntrinsicSize const&, mozilla::AspectRatio const&, mozilla::LogicalSize const&, mozilla::LogicalSize const&, mozilla::LogicalSize const&, mozilla::StyleSizeOverrides const&, mozilla::EnumSet<mozilla::ComputeSizeFlag, unsigned char>) [layout/generic/nsContainerFrame.cpp:2291]
[task 2023-09-26T19:27:48.018Z] 19:27:48 INFO - #03: nsImageFrame::ComputeSize(gfxContext*, mozilla::WritingMode, mozilla::LogicalSize const&, int, mozilla::LogicalSize const&, mozilla::LogicalSize const&, mozilla::StyleSizeOverrides const&, mozilla::EnumSet<mozilla::ComputeSizeFlag, unsigned char>) [layout/generic/nsImageFrame.cpp:0]
[task 2023-09-26T19:27:48.019Z] 19:27:48 INFO - #04: mozilla::ReflowInput::InitConstraints(nsPresContext*, mozilla::Maybe<mozilla::LogicalSize> const&, mozilla::Maybe<mozilla::LogicalMargin> const&, mozilla::Maybe<mozilla::LogicalMargin> const&, mozilla::LayoutFrameType) [layout/generic/ReflowInput.cpp:2403]
[task 2023-09-26T19:27:48.019Z] 19:27:48 INFO - #05: mozilla::ReflowInput::Init(nsPresContext*, mozilla::Maybe<mozilla::LogicalSize> const&, mozilla::Maybe<mozilla::LogicalMargin> const&, mozilla::Maybe<mozilla::LogicalMargin> const&) [layout/generic/ReflowInput.cpp:379]
[task 2023-09-26T19:27:48.020Z] 19:27:48 INFO - #06: mozilla::ReflowInput::ReflowInput(nsPresContext*, mozilla::ReflowInput const&, nsIFrame*, mozilla::LogicalSize const&, mozilla::Maybe<mozilla::LogicalSize> const&, mozilla::EnumSet<mozilla::ReflowInput::InitFlag, unsigned char>, mozilla::StyleSizeOverrides const&, mozilla::EnumSet<mozilla::ComputeSizeFlag, unsigned char>) [layout/generic/ReflowInput.cpp:0]
[task 2023-09-26T19:27:48.021Z] 19:27:48 INFO - #07: nsVideoFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) [layout/generic/nsVideoFrame.cpp:246]
[task 2023-09-26T19:27:48.022Z] 19:27:48 INFO - #08: nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*) [layout/generic/nsContainerFrame.cpp:0]
[task 2023-09-26T19:27:48.022Z] 19:27:48 INFO - #09: nsFlexContainerFrame::ReflowFlexItem(nsFlexContainerFrame::FlexboxAxisTracker const&, mozilla::ReflowInput const&, nsFlexContainerFrame::FlexItem const&, mozilla::LogicalPoint const&, mozilla::LogicalSize const&, nsSize const&) [layout/generic/nsFlexContainerFrame.cpp:5984]
[task 2023-09-26T19:27:48.023Z] 19:27:48 INFO - #10: nsFlexContainerFrame::ReflowChildren(mozilla::ReflowInput const&, nsSize const&, mozilla::LogicalSize const&, mozilla::LogicalMargin const&, nsFlexContainerFrame::FlexboxAxisTracker const&, nsFlexContainerFrame::FlexLayoutResult&, nsFlexContainerFrame::PerFragmentFlexData&) [layout/generic/nsFlexContainerFrame.cpp:5563]
[task 2023-09-26T19:27:48.023Z] 19:27:48 INFO - #11: nsFlexContainerFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) [layout/generic/nsFlexContainerFrame.cpp:4658]
[task 2023-09-26T19:27:48.024Z] 19:27:48 INFO - #12: nsBlockReflowContext::ReflowBlock(mozilla::LogicalRect const&, bool, nsCollapsingMargin&, int, nsLineBox*, mozilla::ReflowInput&, nsReflowStatus&, mozilla::BlockReflowState&) [layout/generic/nsBlockReflowContext.cpp:291]
[task 2023-09-26T19:27:48.025Z] 19:27:48 INFO - #13: nsBlockFrame::ReflowBlockFrame(mozilla::BlockReflowState&, nsLineList_iterator, bool*) [layout/generic/nsBlockFrame.cpp:0]
[task 2023-09-26T19:27:48.025Z] 19:27:48 INFO - #14: nsBlockFrame::ReflowLine(mozilla::BlockReflowState&, nsLineList_iterator, bool*) [layout/generic/nsBlockFrame.cpp:3460]
[task 2023-09-26T19:27:48.026Z] 19:27:48 INFO - #15: nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowState&) [layout/generic/nsBlockFrame.cpp:0]
[task 2023-09-26T19:27:48.027Z] 19:27:48 INFO - #16: nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) [layout/generic/nsBlockFrame.cpp:1517]
[task 2023-09-26T19:27:48.028Z] 19:27:48 INFO - #17: nsBlockReflowContext::ReflowBlock(mozilla::LogicalRect const&, bool, nsCollapsingMargin&, int, nsLineBox*, mozilla::ReflowInput&, nsReflowStatus&, mozilla::BlockReflowState&) [layout/generic/nsBlockReflowContext.cpp:291]
[task 2023-09-26T19:27:48.028Z] 19:27:48 INFO - #18: nsBlockFrame::ReflowBlockFrame(mozilla::BlockReflowState&, nsLineList_iterator, bool*) [layout/generic/nsBlockFrame.cpp:0]
[task 2023-09-26T19:27:48.029Z] 19:27:48 INFO - #19: nsBlockFrame::ReflowLine(mozilla::BlockReflowState&, nsLineList_iterator, bool*) [layout/generic/nsBlockFrame.cpp:3460]
[task 2023-09-26T19:27:48.030Z] 19:27:48 INFO - #20: nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowState&) [layout/generic/nsBlockFrame.cpp:0]
[task 2023-09-26T19:27:48.030Z] 19:27:48 INFO - #21: nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) [layout/generic/nsBlockFrame.cpp:1517]
[task 2023-09-26T19:27:48.031Z] 19:27:48 INFO - #22: nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*) [layout/generic/nsContainerFrame.cpp:0]
[task 2023-09-26T19:27:48.032Z] 19:27:48 INFO - #23: nsCanvasFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) [layout/generic/nsCanvasFrame.cpp:760]
[task 2023-09-26T19:27:48.033Z] 19:27:48 INFO - #24: nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*) [layout/generic/nsContainerFrame.cpp:0]
[task 2023-09-26T19:27:48.033Z] 19:27:48 INFO - #25: nsHTMLScrollFrame::ReflowScrolledFrame(mozilla::ScrollReflowInput&, bool, bool, mozilla::ReflowOutput*) [layout/generic/nsGfxScrollFrame.cpp:939]
[task 2023-09-26T19:27:48.034Z] 19:27:48 INFO - #26: nsHTMLScrollFrame::ReflowContents(mozilla::ScrollReflowInput&, mozilla::ReflowOutput const&) [layout/generic/nsGfxScrollFrame.cpp:1108]
[task 2023-09-26T19:27:48.035Z] 19:27:48 INFO - #27: nsHTMLScrollFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) [layout/generic/nsGfxScrollFrame.cpp:1512]
[task 2023-09-26T19:27:48.035Z] 19:27:48 INFO - #28: nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, int, int, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*) [layout/generic/nsContainerFrame.cpp:0]
[task 2023-09-26T19:27:48.036Z] 19:27:48 INFO - #29: mozilla::ViewportFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) [layout/generic/ViewportFrame.cpp:386]
[task 2023-09-26T19:27:48.037Z] 19:27:48 INFO - #30: mozilla::PresShell::DoReflow(nsIFrame*, bool, mozilla::OverflowChangedTracker*) [layout/base/PresShell.cpp:9687]
[task 2023-09-26T19:27:48.037Z] 19:27:48 INFO - #31: mozilla::PresShell::ProcessReflowCommands(bool) [layout/base/PresShell.cpp:9859]
[task 2023-09-26T19:27:48.038Z] 19:27:48 INFO - #32: mozilla::PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush) [layout/base/PresShell.cpp:4362]
[task 2023-09-26T19:27:48.038Z] 19:27:48 INFO - #33: mozilla::dom::Document::FlushPendingNotifications(mozilla::ChangesToFlush) [dom/base/Document.cpp:10915]
[task 2023-09-26T19:27:48.039Z] 19:27:48 INFO - #34: nsDocLoader::DocLoaderIsEmpty(bool, mozilla::Maybe<nsresult> const&) [uriloader/base/nsDocLoader.cpp:741]
[task 2023-09-26T19:27:48.040Z] 19:27:48 INFO - #35: nsDocLoader::OnStopRequest(nsIRequest*, nsresult) [uriloader/base/nsDocLoader.cpp:679]
[task 2023-09-26T19:27:48.040Z] 19:27:48 INFO - #36: nsDocShell::OnStopRequest(nsIRequest*, nsresult) [docshell/base/nsDocShell.cpp:0]
[task 2023-09-26T19:27:48.041Z] 19:27:48 INFO - #37: mozilla::net::nsLoadGroup::NotifyRemovalObservers(nsIRequest*, nsresult) [netwerk/base/nsLoadGroup.cpp:631]
[task 2023-09-26T19:27:48.041Z] 19:27:48 INFO - #38: mozilla::net::nsLoadGroup::RemoveRequest(nsIRequest*, nsISupports*, nsresult) [netwerk/base/nsLoadGroup.cpp:0]
[task 2023-09-26T19:27:48.042Z] 19:27:48 INFO - #39: mozilla::dom::Document::DoUnblockOnload() [dom/base/Document.cpp:11700]
[task 2023-09-26T19:27:48.042Z] 19:27:48 INFO - #40: mozilla::dom::Document::DispatchContentLoadedEvents() [dom/base/Document.cpp:8152]
[task 2023-09-26T19:27:48.043Z] 19:27:48 INFO - #41: mozilla::detail::RunnableMethodImpl<mozilla::dom::Document*, void (mozilla::dom::Document::*)(), true, (mozilla::RunnableKind)0, >::Run() [xpcom/threads/nsThreadUtils.h:1213]
[task 2023-09-26T19:27:48.043Z] 19:27:48 INFO - #42: mozilla::RunnableTask::Run() [xpcom/threads/TaskController.cpp:560]
[task 2023-09-26T19:27:48.044Z] 19:27:48 INFO - #43: mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) [xpcom/threads/TaskController.cpp:0]
[task 2023-09-26T19:27:48.045Z] 19:27:48 INFO - #44: mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) [xpcom/threads/TaskController.cpp:0]
[task 2023-09-26T19:27:48.045Z] 19:27:48 INFO - #45: mozilla::TaskController::ProcessPendingMTTask(bool) [xpcom/threads/TaskController.cpp:495]
[task 2023-09-26T19:27:48.045Z] 19:27:48 INFO - #46: mozilla::detail::RunnableFunction<mozilla::TaskController::TaskController()::$_0>::Run() [xpcom/threads/nsThreadUtils.h:549]
[task 2023-09-26T19:27:48.046Z] 19:27:48 INFO - #47: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1203]
[task 2023-09-26T19:27:48.046Z] 19:27:48 INFO - #48: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:480]
[task 2023-09-26T19:27:48.047Z] 19:27:48 INFO - #49: mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:85]
[task 2023-09-26T19:27:48.047Z] 19:27:48 INFO - #50: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:346]
[task 2023-09-26T19:27:48.048Z] 19:27:48 INFO - #51: nsBaseAppShell::Run() [widget/nsBaseAppShell.cpp:150]
[task 2023-09-26T19:27:48.049Z] 19:27:48 INFO - #52: nsAppShell::Run() [widget/cocoa/nsAppShell.mm:870]
[task 2023-09-26T19:27:48.049Z] 19:27:48 INFO - #53: XRE_RunAppShell() [toolkit/xre/nsEmbedFunctions.cpp:721]
[task 2023-09-26T19:27:48.050Z] 19:27:48 INFO - #54: mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:235]
[task 2023-09-26T19:27:48.050Z] 19:27:48 INFO - #55: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:346]
[task 2023-09-26T19:27:48.051Z] 19:27:48 INFO - #56: XRE_InitChildProcess(int, char**, XREChildData const*) [toolkit/xre/nsEmbedFunctions.cpp:0]
[task 2023-09-26T19:27:48.052Z] 19:27:48 INFO - #57: main [ipc/app/MozillaRuntimeMain.cpp:90]
[task 2023-09-26T19:27:48.071Z] 19:27:48 INFO - REFTEST TEST-PASS | layout/generic/crashtests/944909-1.html | (LOAD ONLY)
[task 2023-09-26T19:27:48.071Z] 19:27:48 INFO - REFTEST TEST-END | layout/generic/crashtests/944909-1.html
[task 2023-09-26T19:27:48.084Z] 19:27:48 INFO - REFTEST TEST-UNEXPECTED-FAIL | layout/generic/crashtests/944909-1.html | assertion count 3 is more than expected 2 assertions
Assignee | ||
Comment 4•2 years ago
|
||
It is expected that 944909-1.html
can trigger assertions after applying my patch. However, the assertion count on macOS is 3 rather than 2. It's strange that my try run didn't show this https://treeherder.mozilla.org/jobs?repo=try&revision=0672b5ca0e7e8c61dd3aaf6553f3cd7dbeb26396&selectedTaskRun=XguBx3rQSwmwAafnALj5QQ.0
Comment 6•2 years ago
|
||
bugherder |
Description
•