mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-08 00:38:39 +09:00
Bug 1368547 - Remove nsFrameManagerBase::mPlaceholderMap and instead store the placeholder on a frame property on the out-of-flow
Tag #1375
This commit is contained in:
parent
854827bd83
commit
9b868f0298
18 changed files with 52 additions and 166 deletions
|
|
@ -633,8 +633,7 @@ nsFrame::DestroyFrom(nsIFrame* aDestructRoot)
|
|||
|
||||
nsIPresShell *shell = presContext->GetPresShell();
|
||||
if (mState & NS_FRAME_OUT_OF_FLOW) {
|
||||
nsPlaceholderFrame* placeholder =
|
||||
shell->FrameManager()->GetPlaceholderFrameFor(this);
|
||||
nsPlaceholderFrame* placeholder = GetPlaceholderFrame();
|
||||
NS_ASSERTION(!placeholder || (aDestructRoot != this),
|
||||
"Don't call Destroy() on OOFs, call Destroy() on the placeholder.");
|
||||
NS_ASSERTION(!placeholder ||
|
||||
|
|
@ -642,7 +641,6 @@ nsFrame::DestroyFrom(nsIFrame* aDestructRoot)
|
|||
"Placeholder relationship should have been torn down already; "
|
||||
"this might mean we have a stray placeholder in the tree.");
|
||||
if (placeholder) {
|
||||
shell->FrameManager()->UnregisterPlaceholderFrame(placeholder);
|
||||
placeholder->SetOutOfFlowFrame(nullptr);
|
||||
}
|
||||
}
|
||||
|
|
@ -8060,9 +8058,8 @@ int32_t
|
|||
nsFrame::GetLineNumber(nsIFrame *aFrame, bool aLockScroll, nsIFrame** aContainingBlock)
|
||||
{
|
||||
NS_ASSERTION(aFrame, "null aFrame");
|
||||
nsFrameManager* frameManager = aFrame->PresContext()->FrameManager();
|
||||
nsIFrame *blockFrame = aFrame;
|
||||
nsIFrame *thisBlock;
|
||||
nsIFrame* blockFrame = aFrame;
|
||||
nsIFrame* thisBlock;
|
||||
nsAutoLineIterator it;
|
||||
nsresult result = NS_ERROR_FAILURE;
|
||||
while (NS_FAILED(result) && blockFrame)
|
||||
|
|
@ -8075,7 +8072,7 @@ nsFrame::GetLineNumber(nsIFrame *aFrame, bool aLockScroll, nsIFrame** aContainin
|
|||
// abspos continuations don't have placeholders, get the fif
|
||||
thisBlock = thisBlock->FirstInFlow();
|
||||
}
|
||||
thisBlock = frameManager->GetPlaceholderFrameFor(thisBlock);
|
||||
thisBlock = thisBlock->GetPlaceholderFrame();
|
||||
if (!thisBlock)
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -9027,7 +9024,6 @@ nsStyleContext*
|
|||
nsFrame::DoGetParentStyleContext(nsIFrame** aProviderFrame) const
|
||||
{
|
||||
*aProviderFrame = nullptr;
|
||||
nsFrameManager* fm = PresContext()->FrameManager();
|
||||
|
||||
// Handle display:contents and the root frame, when there's no parent frame
|
||||
// to inherit from.
|
||||
|
|
@ -9044,6 +9040,7 @@ nsFrame::DoGetParentStyleContext(nsIFrame** aProviderFrame) const
|
|||
/* if next is true then it's really a request for the table frame's
|
||||
parent context, see nsTable[Outer]Frame::GetParentStyleContext. */
|
||||
pseudo == nsCSSAnonBoxes::tableWrapper) {
|
||||
nsFrameManager* fm = PresContext()->FrameManager();
|
||||
nsStyleContext* sc = fm->GetDisplayContentsStyleFor(parentContent);
|
||||
if (MOZ_UNLIKELY(sc)) {
|
||||
return sc;
|
||||
|
|
@ -9080,7 +9077,7 @@ nsFrame::DoGetParentStyleContext(nsIFrame** aProviderFrame) const
|
|||
// We're an out-of-flow frame. For out-of-flow frames, we must
|
||||
// resolve underneath the placeholder's parent. The placeholder is
|
||||
// reached from the first-in-flow.
|
||||
nsIFrame* placeholder = fm->GetPlaceholderFrameFor(FirstInFlow());
|
||||
nsIFrame* placeholder = FirstInFlow()->GetPlaceholderFrame();
|
||||
if (!placeholder) {
|
||||
NS_NOTREACHED("no placeholder frame for out-of-flow frame");
|
||||
*aProviderFrame = GetCorrectedParent(this);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue