| 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) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. |
| 7 * All rights reserved. | 7 * All rights reserved. |
| 8 * Copyright (C) 2009 Google Inc. All rights reserved. | 8 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. | 9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. |
| 10 * (http://www.torchmobile.com/) | 10 * (http://www.torchmobile.com/) |
| (...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 978 return IntRect(); | 978 return IntRect(); |
| 979 | 979 |
| 980 IntRect result = rects[0]; | 980 IntRect result = rects[0]; |
| 981 for (size_t i = 1; i < n; ++i) | 981 for (size_t i = 1; i < n; ++i) |
| 982 result.unite(rects[i]); | 982 result.unite(rects[i]); |
| 983 return result; | 983 return result; |
| 984 } | 984 } |
| 985 | 985 |
| 986 IntRect LayoutObject::absoluteElementBoundingBoxRect() const { | 986 IntRect LayoutObject::absoluteElementBoundingBoxRect() const { |
| 987 Vector<LayoutRect> rects; | 987 Vector<LayoutRect> rects; |
| 988 const LayoutBoxModelObject* container = enclosingLayer()->layoutObject(); | 988 const LayoutBoxModelObject& container = enclosingLayer()->layoutObject(); |
| 989 addElementVisualOverflowRects( | 989 addElementVisualOverflowRects( |
| 990 rects, LayoutPoint(localToAncestorPoint(FloatPoint(), container))); | 990 rects, LayoutPoint(localToAncestorPoint(FloatPoint(), &container))); |
| 991 return container->localToAbsoluteQuad(FloatQuad(FloatRect(unionRect(rects)))) | 991 return container.localToAbsoluteQuad(FloatQuad(FloatRect(unionRect(rects)))) |
| 992 .enclosingBoundingBox(); | 992 .enclosingBoundingBox(); |
| 993 } | 993 } |
| 994 | 994 |
| 995 FloatRect LayoutObject::absoluteBoundingBoxRectForRange(const Range* range) { | 995 FloatRect LayoutObject::absoluteBoundingBoxRectForRange(const Range* range) { |
| 996 if (!range || !range->startContainer()) | 996 if (!range || !range->startContainer()) |
| 997 return FloatRect(); | 997 return FloatRect(); |
| 998 | 998 |
| 999 range->ownerDocument().updateStyleAndLayout(); | 999 range->ownerDocument().updateStyleAndLayout(); |
| 1000 | 1000 |
| 1001 Vector<FloatQuad> quads; | 1001 Vector<FloatQuad> quads; |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1048 const LayoutBoxModelObject* LayoutObject::enclosingCompositedContainer() const { | 1048 const LayoutBoxModelObject* LayoutObject::enclosingCompositedContainer() const { |
| 1049 LayoutBoxModelObject* container = nullptr; | 1049 LayoutBoxModelObject* container = nullptr; |
| 1050 // FIXME: CompositingState is not necessarily up to date for many callers of | 1050 // FIXME: CompositingState is not necessarily up to date for many callers of |
| 1051 // this function. | 1051 // this function. |
| 1052 DisableCompositingQueryAsserts disabler; | 1052 DisableCompositingQueryAsserts disabler; |
| 1053 | 1053 |
| 1054 if (PaintLayer* paintingLayer = this->paintingLayer()) { | 1054 if (PaintLayer* paintingLayer = this->paintingLayer()) { |
| 1055 if (PaintLayer* compositingLayer = | 1055 if (PaintLayer* compositingLayer = |
| 1056 paintingLayer | 1056 paintingLayer |
| 1057 ->enclosingLayerForPaintInvalidationCrossingFrameBoundaries()) | 1057 ->enclosingLayerForPaintInvalidationCrossingFrameBoundaries()) |
| 1058 container = compositingLayer->layoutObject(); | 1058 container = &compositingLayer->layoutObject(); |
| 1059 } | 1059 } |
| 1060 return container; | 1060 return container; |
| 1061 } | 1061 } |
| 1062 | 1062 |
| 1063 String LayoutObject::decoratedName() const { | 1063 String LayoutObject::decoratedName() const { |
| 1064 StringBuilder name; | 1064 StringBuilder name; |
| 1065 name.append(this->name()); | 1065 name.append(this->name()); |
| 1066 | 1066 |
| 1067 if (isAnonymous()) | 1067 if (isAnonymous()) |
| 1068 name.append(" (anonymous)"); | 1068 name.append(" (anonymous)"); |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1178 mapToVisualRectInAncestorSpace(view(), selectionRect); | 1178 mapToVisualRectInAncestorSpace(view(), selectionRect); |
| 1179 return selectionRect; | 1179 return selectionRect; |
| 1180 } | 1180 } |
| 1181 | 1181 |
| 1182 PaintInvalidationReason LayoutObject::invalidatePaintIfNeeded( | 1182 PaintInvalidationReason LayoutObject::invalidatePaintIfNeeded( |
| 1183 const PaintInvalidationState& paintInvalidationState) { | 1183 const PaintInvalidationState& paintInvalidationState) { |
| 1184 DCHECK(&paintInvalidationState.currentObject() == this); | 1184 DCHECK(&paintInvalidationState.currentObject() == this); |
| 1185 | 1185 |
| 1186 if (styleRef().hasOutline()) { | 1186 if (styleRef().hasOutline()) { |
| 1187 PaintLayer& layer = paintInvalidationState.paintingLayer(); | 1187 PaintLayer& layer = paintInvalidationState.paintingLayer(); |
| 1188 if (layer.layoutObject() != this) | 1188 if (&layer.layoutObject() != this) |
| 1189 layer.setNeedsPaintPhaseDescendantOutlines(); | 1189 layer.setNeedsPaintPhaseDescendantOutlines(); |
| 1190 } | 1190 } |
| 1191 | 1191 |
| 1192 LayoutView* v = view(); | 1192 LayoutView* v = view(); |
| 1193 if (v->document().printing()) | 1193 if (v->document().printing()) |
| 1194 return PaintInvalidationNone; // Don't invalidate paints if we're printing. | 1194 return PaintInvalidationNone; // Don't invalidate paints if we're printing. |
| 1195 | 1195 |
| 1196 PaintInvalidatorContextAdapter context(paintInvalidationState); | 1196 PaintInvalidatorContextAdapter context(paintInvalidationState); |
| 1197 | 1197 |
| 1198 const LayoutBoxModelObject& paintInvalidationContainer = | 1198 const LayoutBoxModelObject& paintInvalidationContainer = |
| (...skipping 1156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2355 // Figure out what layer our container is in. Any offset (or new layer) for | 2355 // Figure out what layer our container is in. Any offset (or new layer) for |
| 2356 // this layoutObject within it's container will be applied in | 2356 // this layoutObject within it's container will be applied in |
| 2357 // addLayerHitTestRects. | 2357 // addLayerHitTestRects. |
| 2358 LayoutPoint layerOffset; | 2358 LayoutPoint layerOffset; |
| 2359 const PaintLayer* currentLayer = nullptr; | 2359 const PaintLayer* currentLayer = nullptr; |
| 2360 | 2360 |
| 2361 if (!hasLayer()) { | 2361 if (!hasLayer()) { |
| 2362 LayoutObject* container = this->container(); | 2362 LayoutObject* container = this->container(); |
| 2363 currentLayer = container->enclosingLayer(); | 2363 currentLayer = container->enclosingLayer(); |
| 2364 if (container && currentLayer->layoutObject() != container) { | 2364 if (container && currentLayer->layoutObject() != container) { |
| 2365 layerOffset.move( | 2365 layerOffset.move(container->offsetFromAncestorContainer( |
| 2366 container->offsetFromAncestorContainer(currentLayer->layoutObject())); | 2366 ¤tLayer->layoutObject())); |
| 2367 // If the layer itself is scrolled, we have to undo the subtraction of its | 2367 // If the layer itself is scrolled, we have to undo the subtraction of its |
| 2368 // scroll offset since we want the offset relative to the scrolling | 2368 // scroll offset since we want the offset relative to the scrolling |
| 2369 // content, not the element itself. | 2369 // content, not the element itself. |
| 2370 if (currentLayer->layoutObject()->hasOverflowClip()) | 2370 if (currentLayer->layoutObject().hasOverflowClip()) |
| 2371 layerOffset.move(currentLayer->layoutBox()->scrolledContentOffset()); | 2371 layerOffset.move(currentLayer->layoutBox()->scrolledContentOffset()); |
| 2372 } | 2372 } |
| 2373 } | 2373 } |
| 2374 | 2374 |
| 2375 this->addLayerHitTestRects(layerRects, currentLayer, layerOffset, | 2375 this->addLayerHitTestRects(layerRects, currentLayer, layerOffset, |
| 2376 LayoutRect()); | 2376 LayoutRect()); |
| 2377 } | 2377 } |
| 2378 | 2378 |
| 2379 void LayoutObject::addLayerHitTestRects(LayerHitTestRects& layerRects, | 2379 void LayoutObject::addLayerHitTestRects(LayerHitTestRects& layerRects, |
| 2380 const PaintLayer* currentLayer, | 2380 const PaintLayer* currentLayer, |
| (...skipping 1114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3495 const blink::LayoutObject* root = object1; | 3495 const blink::LayoutObject* root = object1; |
| 3496 while (root->parent()) | 3496 while (root->parent()) |
| 3497 root = root->parent(); | 3497 root = root->parent(); |
| 3498 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); | 3498 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); |
| 3499 } else { | 3499 } else { |
| 3500 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)"); | 3500 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)"); |
| 3501 } | 3501 } |
| 3502 } | 3502 } |
| 3503 | 3503 |
| 3504 #endif | 3504 #endif |
| OLD | NEW |