OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 7368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7379 bool checkColumnBreaks = view()->layoutState()->isPaginatingColumns(); | 7379 bool checkColumnBreaks = view()->layoutState()->isPaginatingColumns(); |
7380 bool checkPageBreaks = !checkColumnBreaks && view()->layoutState()->m_pageLo
gicalHeight; | 7380 bool checkPageBreaks = !checkColumnBreaks && view()->layoutState()->m_pageLo
gicalHeight; |
7381 RenderFlowThread* flowThread = flowThreadContainingBlock(); | 7381 RenderFlowThread* flowThread = flowThreadContainingBlock(); |
7382 bool checkRegionBreaks = flowThread && flowThread->isRenderNamedFlowThread()
; | 7382 bool checkRegionBreaks = flowThread && flowThread->isRenderNamedFlowThread()
; |
7383 bool isUnsplittable = child->isUnsplittableForPagination() || (checkColumnBr
eaks && child->style()->columnBreakInside() == PBAVOID) | 7383 bool isUnsplittable = child->isUnsplittableForPagination() || (checkColumnBr
eaks && child->style()->columnBreakInside() == PBAVOID) |
7384 || (checkPageBreaks && child->style()->pageBreakInside() == PBAVOID) | 7384 || (checkPageBreaks && child->style()->pageBreakInside() == PBAVOID) |
7385 || (checkRegionBreaks && child->style()->regionBreakInside() == PBAVOID)
; | 7385 || (checkRegionBreaks && child->style()->regionBreakInside() == PBAVOID)
; |
7386 if (!isUnsplittable) | 7386 if (!isUnsplittable) |
7387 return logicalOffset; | 7387 return logicalOffset; |
7388 LayoutUnit childLogicalHeight = logicalHeightForChild(child) + (includeMargi
ns ? marginBeforeForChild(child) + marginAfterForChild(child) : LayoutUnit()); | 7388 LayoutUnit childLogicalHeight = logicalHeightForChild(child) + (includeMargi
ns ? marginBeforeForChild(child) + marginAfterForChild(child) : LayoutUnit()); |
7389 LayoutState* layoutState = view()->layoutState(); | |
7390 if (layoutState->m_columnInfo) | |
7391 layoutState->m_columnInfo->updateMinimumColumnHeight(childLogicalHeight)
; | |
7392 LayoutUnit pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset); | 7389 LayoutUnit pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset); |
7393 bool hasUniformPageLogicalHeight = !flowThread || flowThread->regionsHaveUni
formLogicalHeight(); | 7390 bool hasUniformPageLogicalHeight = !flowThread || flowThread->regionsHaveUni
formLogicalHeight(); |
| 7391 updateMinimumPageHeight(logicalOffset, childLogicalHeight); |
7394 if (!pageLogicalHeight || (hasUniformPageLogicalHeight && childLogicalHeight
> pageLogicalHeight) | 7392 if (!pageLogicalHeight || (hasUniformPageLogicalHeight && childLogicalHeight
> pageLogicalHeight) |
7395 || !hasNextPage(logicalOffset)) | 7393 || !hasNextPage(logicalOffset)) |
7396 return logicalOffset; | 7394 return logicalOffset; |
7397 LayoutUnit remainingLogicalHeight = pageRemainingLogicalHeightForOffset(logi
calOffset, ExcludePageBoundary); | 7395 LayoutUnit remainingLogicalHeight = pageRemainingLogicalHeightForOffset(logi
calOffset, ExcludePageBoundary); |
7398 if (remainingLogicalHeight < childLogicalHeight) { | 7396 if (remainingLogicalHeight < childLogicalHeight) { |
7399 if (!hasUniformPageLogicalHeight && !pushToNextPageWithMinimumLogicalHei
ght(remainingLogicalHeight, logicalOffset, childLogicalHeight)) | 7397 if (!hasUniformPageLogicalHeight && !pushToNextPageWithMinimumLogicalHei
ght(remainingLogicalHeight, logicalOffset, childLogicalHeight)) |
7400 return logicalOffset; | 7398 return logicalOffset; |
7401 return logicalOffset + remainingLogicalHeight; | 7399 return logicalOffset + remainingLogicalHeight; |
7402 } | 7400 } |
7403 return logicalOffset; | 7401 return logicalOffset; |
7404 } | 7402 } |
7405 | 7403 |
7406 bool RenderBlock::pushToNextPageWithMinimumLogicalHeight(LayoutUnit& adjustment,
LayoutUnit logicalOffset, LayoutUnit minimumLogicalHeight) const | 7404 bool RenderBlock::pushToNextPageWithMinimumLogicalHeight(LayoutUnit& adjustment,
LayoutUnit logicalOffset, LayoutUnit minimumLogicalHeight) const |
7407 { | 7405 { |
7408 bool checkRegion = false; | 7406 bool checkRegion = false; |
7409 for (LayoutUnit pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset
+ adjustment); pageLogicalHeight; | 7407 for (LayoutUnit pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset
+ adjustment); pageLogicalHeight; |
7410 pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset + adjustmen
t)) { | 7408 pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset + adjustmen
t)) { |
7411 if (minimumLogicalHeight <= pageLogicalHeight) | 7409 if (minimumLogicalHeight <= pageLogicalHeight) |
7412 return true; | 7410 return true; |
7413 if (!hasNextPage(logicalOffset + adjustment)) | 7411 if (!hasNextPage(logicalOffset + adjustment)) |
7414 return false; | 7412 return false; |
7415 adjustment += pageLogicalHeight; | 7413 adjustment += pageLogicalHeight; |
7416 checkRegion = true; | 7414 checkRegion = true; |
7417 } | 7415 } |
7418 return !checkRegion; | 7416 return !checkRegion; |
7419 } | 7417 } |
7420 | 7418 |
| 7419 void RenderBlock::setPageBreak(LayoutUnit offset, LayoutUnit spaceShortage) |
| 7420 { |
| 7421 if (RenderFlowThread* flowThread = flowThreadContainingBlock()) |
| 7422 flowThread->setPageBreak(offsetFromLogicalTopOfFirstPage() + offset, spa
ceShortage); |
| 7423 } |
| 7424 |
| 7425 void RenderBlock::updateMinimumPageHeight(LayoutUnit offset, LayoutUnit minHeigh
t) |
| 7426 { |
| 7427 if (RenderFlowThread* flowThread = flowThreadContainingBlock()) |
| 7428 flowThread->updateMinimumPageHeight(offsetFromLogicalTopOfFirstPage() +
offset, minHeight); |
| 7429 else if (ColumnInfo* colInfo = view()->layoutState()->m_columnInfo) |
| 7430 colInfo->updateMinimumColumnHeight(minHeight); |
| 7431 } |
| 7432 |
| 7433 static inline LayoutUnit calculateMinimumPageHeight(RenderStyle* renderStyle, Ro
otInlineBox* lastLine, LayoutUnit lineTop, LayoutUnit lineBottom) |
| 7434 { |
| 7435 // We may require a certain minimum number of lines per page in order to sat
isfy |
| 7436 // orphans and widows, and that may affect the minimum page height. |
| 7437 unsigned lineCount = max<unsigned>(renderStyle->hasAutoOrphans() ? 1 : rende
rStyle->orphans(), renderStyle->hasAutoWidows() ? 1 : renderStyle->widows()); |
| 7438 if (lineCount > 1) { |
| 7439 RootInlineBox* line = lastLine; |
| 7440 for (unsigned i = 1; i < lineCount && line->prevRootBox(); i++) |
| 7441 line = line->prevRootBox(); |
| 7442 |
| 7443 // FIXME: Paginating using line overflow isn't all fine. See FIXME in |
| 7444 // adjustLinePositionForPagination() for more details. |
| 7445 LayoutRect overflow = line->logicalVisualOverflowRect(line->lineTop(), l
ine->lineBottom()); |
| 7446 lineTop = min(line->lineTopWithLeading(), overflow.y()); |
| 7447 } |
| 7448 return lineBottom - lineTop; |
| 7449 } |
| 7450 |
7421 void RenderBlock::adjustLinePositionForPagination(RootInlineBox* lineBox, Layout
Unit& delta, RenderFlowThread* flowThread) | 7451 void RenderBlock::adjustLinePositionForPagination(RootInlineBox* lineBox, Layout
Unit& delta, RenderFlowThread* flowThread) |
7422 { | 7452 { |
7423 // FIXME: For now we paginate using line overflow. This ensures that lines
don't overlap at all when we | 7453 // FIXME: For now we paginate using line overflow. This ensures that lines
don't overlap at all when we |
7424 // put a strut between them for pagination purposes. However, this really i
sn't the desired rendering, since | 7454 // put a strut between them for pagination purposes. However, this really i
sn't the desired rendering, since |
7425 // the line on the top of the next page will appear too far down relative to
the same kind of line at the top | 7455 // the line on the top of the next page will appear too far down relative to
the same kind of line at the top |
7426 // of the first column. | 7456 // of the first column. |
7427 // | 7457 // |
7428 // The rendering we would like to see is one where the lineTopWithLeading is
at the top of the column, and any line overflow | 7458 // The rendering we would like to see is one where the lineTopWithLeading is
at the top of the column, and any line overflow |
7429 // simply spills out above the top of the column. This effect would match w
hat happens at the top of the first column. | 7459 // simply spills out above the top of the column. This effect would match w
hat happens at the top of the first column. |
7430 // We can't achieve this rendering, however, until we stop columns from clip
ping to the column bounds (thus allowing | 7460 // We can't achieve this rendering, however, until we stop columns from clip
ping to the column bounds (thus allowing |
7431 // for overflow to occur), and then cache visible overflow for each column r
ect. | 7461 // for overflow to occur), and then cache visible overflow for each column r
ect. |
7432 // | 7462 // |
7433 // Furthermore, the paint we have to do when a column has overflow has to be
special. We need to exclude | 7463 // Furthermore, the paint we have to do when a column has overflow has to be
special. We need to exclude |
7434 // content that paints in a previous column (and content that paints in the
following column). | 7464 // content that paints in a previous column (and content that paints in the
following column). |
7435 // | 7465 // |
7436 // For now we'll at least honor the lineTopWithLeading when paginating if it
is above the logical top overflow. This will | 7466 // For now we'll at least honor the lineTopWithLeading when paginating if it
is above the logical top overflow. This will |
7437 // at least make positive leading work in typical cases. | 7467 // at least make positive leading work in typical cases. |
7438 // | 7468 // |
7439 // FIXME: Another problem with simply moving lines is that the available lin
e width may change (because of floats). | 7469 // FIXME: Another problem with simply moving lines is that the available lin
e width may change (because of floats). |
7440 // Technically if the location we move the line to has a different line widt
h than our old position, then we need to dirty the | 7470 // Technically if the location we move the line to has a different line widt
h than our old position, then we need to dirty the |
7441 // line and all following lines. | 7471 // line and all following lines. |
7442 LayoutRect logicalVisualOverflow = lineBox->logicalVisualOverflowRect(lineBo
x->lineTop(), lineBox->lineBottom()); | 7472 LayoutRect logicalVisualOverflow = lineBox->logicalVisualOverflowRect(lineBo
x->lineTop(), lineBox->lineBottom()); |
7443 LayoutUnit logicalOffset = min(lineBox->lineTopWithLeading(), logicalVisualO
verflow.y()); | 7473 LayoutUnit logicalOffset = min(lineBox->lineTopWithLeading(), logicalVisualO
verflow.y()); |
7444 LayoutUnit lineHeight = max(lineBox->lineBottomWithLeading(), logicalVisualO
verflow.maxY()) - logicalOffset; | 7474 LayoutUnit logicalBottom = max(lineBox->lineBottomWithLeading(), logicalVisu
alOverflow.maxY()); |
7445 RenderView* renderView = view(); | 7475 LayoutUnit lineHeight = logicalBottom - logicalOffset; |
7446 LayoutState* layoutState = renderView->layoutState(); | 7476 updateMinimumPageHeight(logicalOffset, calculateMinimumPageHeight(style(), l
ineBox, logicalOffset, logicalBottom)); |
7447 if (layoutState->m_columnInfo) | |
7448 layoutState->m_columnInfo->updateMinimumColumnHeight(lineHeight); | |
7449 logicalOffset += delta; | 7477 logicalOffset += delta; |
7450 lineBox->setPaginationStrut(0); | 7478 lineBox->setPaginationStrut(0); |
7451 lineBox->setIsFirstAfterPageBreak(false); | 7479 lineBox->setIsFirstAfterPageBreak(false); |
7452 LayoutUnit pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset); | 7480 LayoutUnit pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset); |
7453 bool hasUniformPageLogicalHeight = !flowThread || flowThread->regionsHaveUni
formLogicalHeight(); | 7481 bool hasUniformPageLogicalHeight = !flowThread || flowThread->regionsHaveUni
formLogicalHeight(); |
7454 // If lineHeight is greater than pageLogicalHeight, but logicalVisualOverflo
w.height() still fits, we are | 7482 // If lineHeight is greater than pageLogicalHeight, but logicalVisualOverflo
w.height() still fits, we are |
7455 // still going to add a strut, so that the visible overflow fits on a single
page. | 7483 // still going to add a strut, so that the visible overflow fits on a single
page. |
7456 if (!pageLogicalHeight || (hasUniformPageLogicalHeight && logicalVisualOverf
low.height() > pageLogicalHeight) | 7484 if (!pageLogicalHeight || (hasUniformPageLogicalHeight && logicalVisualOverf
low.height() > pageLogicalHeight) |
7457 || !hasNextPage(logicalOffset)) | 7485 || !hasNextPage(logicalOffset)) |
7458 return; | 7486 return; |
7459 LayoutUnit remainingLogicalHeight = pageRemainingLogicalHeightForOffset(logi
calOffset, ExcludePageBoundary); | 7487 LayoutUnit remainingLogicalHeight = pageRemainingLogicalHeightForOffset(logi
calOffset, ExcludePageBoundary); |
7460 | 7488 |
7461 if (remainingLogicalHeight < lineHeight || (shouldBreakAtLineToAvoidWidow()
&& lineBreakToAvoidWidow() == lineBox)) { | 7489 if (remainingLogicalHeight < lineHeight || (shouldBreakAtLineToAvoidWidow()
&& lineBreakToAvoidWidow() == lineBox)) { |
7462 if (shouldBreakAtLineToAvoidWidow() && lineBreakToAvoidWidow() == lineBo
x) | 7490 if (shouldBreakAtLineToAvoidWidow() && lineBreakToAvoidWidow() == lineBo
x) |
7463 clearShouldBreakAtLineToAvoidWidow(); | 7491 clearShouldBreakAtLineToAvoidWidow(); |
7464 // If we have a non-uniform page height, then we have to shift further p
ossibly. | 7492 // If we have a non-uniform page height, then we have to shift further p
ossibly. |
7465 if (!hasUniformPageLogicalHeight && !pushToNextPageWithMinimumLogicalHei
ght(remainingLogicalHeight, logicalOffset, lineHeight)) | 7493 if (!hasUniformPageLogicalHeight && !pushToNextPageWithMinimumLogicalHei
ght(remainingLogicalHeight, logicalOffset, lineHeight)) |
7466 return; | 7494 return; |
7467 if (lineHeight > pageLogicalHeight) { | 7495 if (lineHeight > pageLogicalHeight) { |
7468 // Split the top margin in order to avoid splitting the visible part
of the line. | 7496 // Split the top margin in order to avoid splitting the visible part
of the line. |
7469 remainingLogicalHeight -= min(lineHeight - pageLogicalHeight, max<La
youtUnit>(0, logicalVisualOverflow.y() - lineBox->lineTopWithLeading())); | 7497 remainingLogicalHeight -= min(lineHeight - pageLogicalHeight, max<La
youtUnit>(0, logicalVisualOverflow.y() - lineBox->lineTopWithLeading())); |
7470 } | 7498 } |
7471 LayoutUnit totalLogicalHeight = lineHeight + max<LayoutUnit>(0, logicalO
ffset); | 7499 LayoutUnit totalLogicalHeight = lineHeight + max<LayoutUnit>(0, logicalO
ffset); |
7472 LayoutUnit pageLogicalHeightAtNewOffset = hasUniformPageLogicalHeight ?
pageLogicalHeight : pageLogicalHeightForOffset(logicalOffset + remainingLogicalH
eight); | 7500 LayoutUnit pageLogicalHeightAtNewOffset = hasUniformPageLogicalHeight ?
pageLogicalHeight : pageLogicalHeightForOffset(logicalOffset + remainingLogicalH
eight); |
| 7501 setPageBreak(logicalOffset, lineHeight - remainingLogicalHeight); |
7473 if (((lineBox == firstRootBox() && totalLogicalHeight < pageLogicalHeigh
tAtNewOffset) || (!style()->hasAutoOrphans() && style()->orphans() >= lineCount(
lineBox))) | 7502 if (((lineBox == firstRootBox() && totalLogicalHeight < pageLogicalHeigh
tAtNewOffset) || (!style()->hasAutoOrphans() && style()->orphans() >= lineCount(
lineBox))) |
7474 && !isOutOfFlowPositioned() && !isTableCell()) | 7503 && !isOutOfFlowPositioned() && !isTableCell()) |
7475 setPaginationStrut(remainingLogicalHeight + max<LayoutUnit>(0, logic
alOffset)); | 7504 setPaginationStrut(remainingLogicalHeight + max<LayoutUnit>(0, logic
alOffset)); |
7476 else { | 7505 else { |
7477 delta += remainingLogicalHeight; | 7506 delta += remainingLogicalHeight; |
7478 lineBox->setPaginationStrut(remainingLogicalHeight); | 7507 lineBox->setPaginationStrut(remainingLogicalHeight); |
7479 lineBox->setIsFirstAfterPageBreak(true); | 7508 lineBox->setIsFirstAfterPageBreak(true); |
7480 } | 7509 } |
7481 } else if (remainingLogicalHeight == pageLogicalHeight && lineBox != firstRo
otBox()) | 7510 } else if (remainingLogicalHeight == pageLogicalHeight && lineBox != firstRo
otBox()) |
7482 lineBox->setIsFirstAfterPageBreak(true); | 7511 lineBox->setIsFirstAfterPageBreak(true); |
(...skipping 26 matching lines...) Expand all Loading... |
7509 | 7538 |
7510 // Our guess was wrong. Make the child lay itself out again. | 7539 // Our guess was wrong. Make the child lay itself out again. |
7511 child->layoutIfNeeded(); | 7540 child->layoutIfNeeded(); |
7512 } | 7541 } |
7513 | 7542 |
7514 LayoutUnit oldTop = logicalTopAfterClear; | 7543 LayoutUnit oldTop = logicalTopAfterClear; |
7515 | 7544 |
7516 // If the object has a page or column break value of "before", then we shoul
d shift to the top of the next page. | 7545 // If the object has a page or column break value of "before", then we shoul
d shift to the top of the next page. |
7517 LayoutUnit result = applyBeforeBreak(child, logicalTopAfterClear); | 7546 LayoutUnit result = applyBeforeBreak(child, logicalTopAfterClear); |
7518 | 7547 |
| 7548 if (pageLogicalHeightForOffset(result)) { |
| 7549 LayoutUnit remainingLogicalHeight = pageRemainingLogicalHeightForOffset(
result, ExcludePageBoundary); |
| 7550 LayoutUnit spaceShortage = child->logicalHeight() - remainingLogicalHeig
ht; |
| 7551 if (spaceShortage > 0) { |
| 7552 // If the child crosses a column boundary, report a break, in case n
othing inside it has already |
| 7553 // done so. The column balancer needs to know how much it has to str
etch the columns to make more |
| 7554 // content fit. If no breaks are reported (but do occur), the balanc
er will have no clue. FIXME: |
| 7555 // This should be improved, though, because here we just pretend tha
t the child is |
| 7556 // unsplittable. A splittable child, on the other hand, has break op
portunities at every position |
| 7557 // where there's no child content, border or padding. In other words
, we risk stretching more |
| 7558 // than necessary. |
| 7559 setPageBreak(result, spaceShortage); |
| 7560 } |
| 7561 } |
| 7562 |
7519 // For replaced elements and scrolled elements, we want to shift them to the
next page if they don't fit on the current one. | 7563 // For replaced elements and scrolled elements, we want to shift them to the
next page if they don't fit on the current one. |
7520 LayoutUnit logicalTopBeforeUnsplittableAdjustment = result; | 7564 LayoutUnit logicalTopBeforeUnsplittableAdjustment = result; |
7521 LayoutUnit logicalTopAfterUnsplittableAdjustment = adjustForUnsplittableChil
d(child, result); | 7565 LayoutUnit logicalTopAfterUnsplittableAdjustment = adjustForUnsplittableChil
d(child, result); |
7522 | 7566 |
7523 LayoutUnit paginationStrut = 0; | 7567 LayoutUnit paginationStrut = 0; |
7524 LayoutUnit unsplittableAdjustmentDelta = logicalTopAfterUnsplittableAdjustme
nt - logicalTopBeforeUnsplittableAdjustment; | 7568 LayoutUnit unsplittableAdjustmentDelta = logicalTopAfterUnsplittableAdjustme
nt - logicalTopBeforeUnsplittableAdjustment; |
7525 if (unsplittableAdjustmentDelta) | 7569 if (unsplittableAdjustmentDelta) |
7526 paginationStrut = unsplittableAdjustmentDelta; | 7570 paginationStrut = unsplittableAdjustmentDelta; |
7527 else if (childRenderBlock && childRenderBlock->paginationStrut()) | 7571 else if (childRenderBlock && childRenderBlock->paginationStrut()) |
7528 paginationStrut = childRenderBlock->paginationStrut(); | 7572 paginationStrut = childRenderBlock->paginationStrut(); |
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8104 { | 8148 { |
8105 memoryInstrumentation->addRootObject(gColumnInfoMap, WebCoreMemoryTypes::Ren
deringStructures); | 8149 memoryInstrumentation->addRootObject(gColumnInfoMap, WebCoreMemoryTypes::Ren
deringStructures); |
8106 memoryInstrumentation->addRootObject(gPositionedDescendantsMap, WebCoreMemor
yTypes::RenderingStructures); | 8150 memoryInstrumentation->addRootObject(gPositionedDescendantsMap, WebCoreMemor
yTypes::RenderingStructures); |
8107 memoryInstrumentation->addRootObject(gPercentHeightDescendantsMap, WebCoreMe
moryTypes::RenderingStructures); | 8151 memoryInstrumentation->addRootObject(gPercentHeightDescendantsMap, WebCoreMe
moryTypes::RenderingStructures); |
8108 memoryInstrumentation->addRootObject(gPositionedContainerMap, WebCoreMemoryT
ypes::RenderingStructures); | 8152 memoryInstrumentation->addRootObject(gPositionedContainerMap, WebCoreMemoryT
ypes::RenderingStructures); |
8109 memoryInstrumentation->addRootObject(gPercentHeightContainerMap, WebCoreMemo
ryTypes::RenderingStructures); | 8153 memoryInstrumentation->addRootObject(gPercentHeightContainerMap, WebCoreMemo
ryTypes::RenderingStructures); |
8110 memoryInstrumentation->addRootObject(gDelayedUpdateScrollInfoSet, WebCoreMem
oryTypes::RenderingStructures); | 8154 memoryInstrumentation->addRootObject(gDelayedUpdateScrollInfoSet, WebCoreMem
oryTypes::RenderingStructures); |
8111 } | 8155 } |
8112 | 8156 |
8113 } // namespace WebCore | 8157 } // namespace WebCore |
OLD | NEW |