| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights |
| 3 * reserved. | 3 * reserved. |
| 4 * | 4 * |
| 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
| 6 * | 6 * |
| 7 * Other contributors: | 7 * Other contributors: |
| 8 * Robert O'Callahan <roc+@cs.cmu.edu> | 8 * Robert O'Callahan <roc+@cs.cmu.edu> |
| 9 * David Baron <dbaron@fas.harvard.edu> | 9 * David Baron <dbaron@fas.harvard.edu> |
| 10 * Christian Biesinger <cbiesinger@web.de> | 10 * Christian Biesinger <cbiesinger@web.de> |
| (...skipping 2409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2420 if (layerBounds.intersects(damageRect)) | 2420 if (layerBounds.intersects(damageRect)) |
| 2421 return true; | 2421 return true; |
| 2422 } | 2422 } |
| 2423 | 2423 |
| 2424 // Otherwise we need to compute the bounding box of this single layer and see | 2424 // Otherwise we need to compute the bounding box of this single layer and see |
| 2425 // if it intersects the damage rect. | 2425 // if it intersects the damage rect. |
| 2426 return physicalBoundingBox(offsetFromRoot).intersects(damageRect); | 2426 return physicalBoundingBox(offsetFromRoot).intersects(damageRect); |
| 2427 } | 2427 } |
| 2428 | 2428 |
| 2429 LayoutRect PaintLayer::logicalBoundingBox() const { | 2429 LayoutRect PaintLayer::logicalBoundingBox() const { |
| 2430 return layoutObject()->visualOverflowRect(); | 2430 LayoutRect rect = layoutObject()->visualOverflowRect(); |
| 2431 |
| 2432 if (isRootLayer()) { |
| 2433 rect.unite( |
| 2434 LayoutRect(rect.location(), layoutObject()->view()->viewRect().size())); |
| 2435 } |
| 2436 |
| 2437 return rect; |
| 2431 } | 2438 } |
| 2432 | 2439 |
| 2433 static inline LayoutRect flippedLogicalBoundingBox( | 2440 static inline LayoutRect flippedLogicalBoundingBox( |
| 2434 LayoutRect boundingBox, | 2441 LayoutRect boundingBox, |
| 2435 LayoutObject* layoutObjects) { | 2442 LayoutObject* layoutObjects) { |
| 2436 LayoutRect result = boundingBox; | 2443 LayoutRect result = boundingBox; |
| 2437 if (layoutObjects->isBox()) | 2444 if (layoutObjects->isBox()) |
| 2438 toLayoutBox(layoutObjects)->flipForWritingMode(result); | 2445 toLayoutBox(layoutObjects)->flipForWritingMode(result); |
| 2439 else | 2446 else |
| 2440 layoutObjects->containingBlock()->flipForWritingMode(result); | 2447 layoutObjects->containingBlock()->flipForWritingMode(result); |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2534 | 2541 |
| 2535 if (!ancestorLayer) | 2542 if (!ancestorLayer) |
| 2536 ancestorLayer = this; | 2543 ancestorLayer = this; |
| 2537 | 2544 |
| 2538 // FIXME: This could be improved to do a check like | 2545 // FIXME: This could be improved to do a check like |
| 2539 // hasVisibleNonCompositingDescendantLayers() (bug 92580). | 2546 // hasVisibleNonCompositingDescendantLayers() (bug 92580). |
| 2540 if (this != ancestorLayer && !hasVisibleContent() && !hasVisibleDescendant()) | 2547 if (this != ancestorLayer && !hasVisibleContent() && !hasVisibleDescendant()) |
| 2541 return LayoutRect(); | 2548 return LayoutRect(); |
| 2542 | 2549 |
| 2543 // Without composited scrolling, the root layer is the size of the document. | 2550 // Without composited scrolling, the root layer is the size of the document. |
| 2544 if (isRootLayer() && !needsCompositedScrolling()) | 2551 if (isRootLayer() && !needsCompositedScrolling()) { |
| 2545 return LayoutRect(m_layoutObject->view()->documentRect()); | 2552 IntRect documentRect = layoutObject()->view()->documentRect(); |
| 2553 |
| 2554 if (FrameView* frameView = layoutObject()->document().view()) { |
| 2555 documentRect.unite(IntRect(IntPoint(), frameView->visibleContentSize())); |
| 2556 } |
| 2557 |
| 2558 return LayoutRect(documentRect); |
| 2559 } |
| 2546 | 2560 |
| 2547 // The layer created for the LayoutFlowThread is just a helper for painting | 2561 // The layer created for the LayoutFlowThread is just a helper for painting |
| 2548 // and hit-testing, and should not contribute to the bounding box. The | 2562 // and hit-testing, and should not contribute to the bounding box. The |
| 2549 // LayoutMultiColumnSets will contribute the correct size for the layout | 2563 // LayoutMultiColumnSets will contribute the correct size for the layout |
| 2550 // content of the multicol container. | 2564 // content of the multicol container. |
| 2551 if (layoutObject()->isLayoutFlowThread()) | 2565 if (layoutObject()->isLayoutFlowThread()) |
| 2552 return LayoutRect(); | 2566 return LayoutRect(); |
| 2553 | 2567 |
| 2554 // If there is a clip applied by an ancestor to this PaintLayer but below or | 2568 // If there is a clip applied by an ancestor to this PaintLayer but below or |
| 2555 // equal to |ancestorLayer|, use that clip as the bounds rather than the | 2569 // equal to |ancestorLayer|, use that clip as the bounds rather than the |
| (...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3250 } | 3264 } |
| 3251 | 3265 |
| 3252 void showLayerTree(const blink::LayoutObject* layoutObject) { | 3266 void showLayerTree(const blink::LayoutObject* layoutObject) { |
| 3253 if (!layoutObject) { | 3267 if (!layoutObject) { |
| 3254 LOG(INFO) << "Cannot showLayerTree. Root is (nil)"; | 3268 LOG(INFO) << "Cannot showLayerTree. Root is (nil)"; |
| 3255 return; | 3269 return; |
| 3256 } | 3270 } |
| 3257 showLayerTree(layoutObject->enclosingLayer()); | 3271 showLayerTree(layoutObject->enclosingLayer()); |
| 3258 } | 3272 } |
| 3259 #endif | 3273 #endif |
| OLD | NEW |