| 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. All rights reserv
ed. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv
ed. |
| 7 * Copyright (C) 2009 Google Inc. All rights reserved. | 7 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 1260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1271 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> jsonObjectForOldAndNewRe
cts(const LayoutRect& oldRect, const LayoutPoint& oldLocation, const LayoutRect&
newRect, const LayoutPoint& newLocation) | 1271 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> jsonObjectForOldAndNewRe
cts(const LayoutRect& oldRect, const LayoutPoint& oldLocation, const LayoutRect&
newRect, const LayoutPoint& newLocation) |
| 1272 { | 1272 { |
| 1273 RefPtr<TracedValue> value = TracedValue::create(); | 1273 RefPtr<TracedValue> value = TracedValue::create(); |
| 1274 addJsonObjectForRect(value.get(), "oldRect", oldRect); | 1274 addJsonObjectForRect(value.get(), "oldRect", oldRect); |
| 1275 addJsonObjectForPoint(value.get(), "oldLocation", oldLocation); | 1275 addJsonObjectForPoint(value.get(), "oldLocation", oldLocation); |
| 1276 addJsonObjectForRect(value.get(), "newRect", newRect); | 1276 addJsonObjectForRect(value.get(), "newRect", newRect); |
| 1277 addJsonObjectForPoint(value.get(), "newLocation", newLocation); | 1277 addJsonObjectForPoint(value.get(), "newLocation", newLocation); |
| 1278 return value; | 1278 return value; |
| 1279 } | 1279 } |
| 1280 | 1280 |
| 1281 void RenderObject::invalidateSelectionIfNeeded(const RenderLayerModelObject& pai
ntInvalidationContainer) |
| 1282 { |
| 1283 if (!shouldInvalidateSelection()) |
| 1284 return; |
| 1285 |
| 1286 LayoutRect selection = selectionRectForPaintInvalidation(&paintInvalidationC
ontainer); |
| 1287 // FIXME: groupedMapping() leaks the squashing abstraction. See RenderBlockS
electionInfo for more details. |
| 1288 if (paintInvalidationContainer.layer()->groupedMapping()) |
| 1289 RenderLayer::mapRectToPaintBackingCoordinates(&paintInvalidationContaine
r, selection); |
| 1290 invalidatePaintUsingContainer(&paintInvalidationContainer, selection, Invali
dationSelection); |
| 1291 } |
| 1292 |
| 1281 InvalidationReason RenderObject::invalidatePaintIfNeeded(const PaintInvalidation
State& paintInvalidationState, const RenderLayerModelObject& paintInvalidationCo
ntainer) | 1293 InvalidationReason RenderObject::invalidatePaintIfNeeded(const PaintInvalidation
State& paintInvalidationState, const RenderLayerModelObject& paintInvalidationCo
ntainer) |
| 1282 { | 1294 { |
| 1283 RenderView* v = view(); | 1295 RenderView* v = view(); |
| 1284 if (v->document().printing()) | 1296 if (v->document().printing()) |
| 1285 return InvalidationNone; // Don't invalidate paints if we're printing. | 1297 return InvalidationNone; // Don't invalidate paints if we're printing. |
| 1286 | 1298 |
| 1287 const LayoutRect oldBounds = previousPaintInvalidationRect(); | 1299 const LayoutRect oldBounds = previousPaintInvalidationRect(); |
| 1288 const LayoutPoint oldLocation = previousPositionFromPaintInvalidationBacking
(); | 1300 const LayoutPoint oldLocation = previousPositionFromPaintInvalidationBacking
(); |
| 1289 const LayoutRect newBounds = boundsRectForPaintInvalidation(&paintInvalidati
onContainer, &paintInvalidationState); | 1301 const LayoutRect newBounds = boundsRectForPaintInvalidation(&paintInvalidati
onContainer, &paintInvalidationState); |
| 1290 const LayoutPoint newLocation = RenderLayer::positionFromPaintInvalidationBa
cking(this, &paintInvalidationContainer, &paintInvalidationState); | 1302 const LayoutPoint newLocation = RenderLayer::positionFromPaintInvalidationBa
cking(this, &paintInvalidationContainer, &paintInvalidationState); |
| 1291 setPreviousPaintInvalidationRect(newBounds); | 1303 setPreviousPaintInvalidationRect(newBounds); |
| 1292 setPreviousPositionFromPaintInvalidationBacking(newLocation); | 1304 setPreviousPositionFromPaintInvalidationBacking(newLocation); |
| 1293 | 1305 |
| 1294 // If we are set to do a full paint invalidation that means the RenderView w
ill issue | 1306 // If we are set to do a full paint invalidation that means the RenderView w
ill issue |
| 1295 // paint invalidations. We can then skip issuing of paint invalidations for
the child | 1307 // paint invalidations. We can then skip issuing of paint invalidations for
the child |
| 1296 // renderers as they'll be covered by the RenderView. | 1308 // renderers as they'll be covered by the RenderView. |
| 1297 if (view()->doingFullPaintInvalidation()) | 1309 if (view()->doingFullPaintInvalidation()) |
| 1298 return InvalidationNone; | 1310 return InvalidationNone; |
| 1299 | 1311 |
| 1300 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("blink.invalidation"), "RenderObject:
:invalidatePaintIfNeeded()", | 1312 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("blink.invalidation"), "RenderObject:
:invalidatePaintIfNeeded()", |
| 1301 "object", this->debugName().ascii(), | 1313 "object", this->debugName().ascii(), |
| 1302 "info", jsonObjectForOldAndNewRects(oldBounds, oldLocation, newBounds, n
ewLocation)); | 1314 "info", jsonObjectForOldAndNewRects(oldBounds, oldLocation, newBounds, n
ewLocation)); |
| 1303 | 1315 |
| 1304 InvalidationReason invalidationReason = getPaintInvalidationReason(paintInva
lidationContainer, oldBounds, oldLocation, newBounds, newLocation); | 1316 InvalidationReason invalidationReason = getPaintInvalidationReason(paintInva
lidationContainer, oldBounds, oldLocation, newBounds, newLocation); |
| 1305 | 1317 |
| 1318 invalidateSelectionIfNeeded(paintInvalidationContainer); |
| 1319 |
| 1306 if (invalidationReason == InvalidationNone) | 1320 if (invalidationReason == InvalidationNone) |
| 1307 return invalidationReason; | 1321 return invalidationReason; |
| 1308 | 1322 |
| 1309 if (invalidationReason == InvalidationIncremental) { | 1323 if (invalidationReason == InvalidationIncremental) { |
| 1310 incrementallyInvalidatePaint(paintInvalidationContainer, oldBounds, newB
ounds, newLocation); | 1324 incrementallyInvalidatePaint(paintInvalidationContainer, oldBounds, newB
ounds, newLocation); |
| 1311 return invalidationReason; | 1325 return invalidationReason; |
| 1312 } | 1326 } |
| 1313 | 1327 |
| 1314 fullyInvalidatePaint(paintInvalidationContainer, invalidationReason, oldBoun
ds, newBounds); | 1328 fullyInvalidatePaint(paintInvalidationContainer, invalidationReason, oldBoun
ds, newBounds); |
| 1315 return invalidationReason; | 1329 return invalidationReason; |
| (...skipping 1790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3106 // paintInvalidationStateIsDirty should be kept in sync with the | 3120 // paintInvalidationStateIsDirty should be kept in sync with the |
| 3107 // booleans that are cleared below. | 3121 // booleans that are cleared below. |
| 3108 ASSERT(paintInvalidationState.forceCheckForPaintInvalidation() || paintInval
idationStateIsDirty()); | 3122 ASSERT(paintInvalidationState.forceCheckForPaintInvalidation() || paintInval
idationStateIsDirty()); |
| 3109 setShouldDoFullPaintInvalidation(false); | 3123 setShouldDoFullPaintInvalidation(false); |
| 3110 setShouldDoFullPaintInvalidationIfSelfPaintingLayer(false); | 3124 setShouldDoFullPaintInvalidationIfSelfPaintingLayer(false); |
| 3111 setOnlyNeededPositionedMovementLayout(false); | 3125 setOnlyNeededPositionedMovementLayout(false); |
| 3112 setNeededLayoutBecauseOfChildren(false); | 3126 setNeededLayoutBecauseOfChildren(false); |
| 3113 setShouldInvalidateOverflowForPaint(false); | 3127 setShouldInvalidateOverflowForPaint(false); |
| 3114 setLayoutDidGetCalled(false); | 3128 setLayoutDidGetCalled(false); |
| 3115 setMayNeedPaintInvalidation(false); | 3129 setMayNeedPaintInvalidation(false); |
| 3130 clearShouldInvalidateSelection(); |
| 3116 } | 3131 } |
| 3117 | 3132 |
| 3118 bool RenderObject::isAllowedToModifyRenderTreeStructure(Document& document) | 3133 bool RenderObject::isAllowedToModifyRenderTreeStructure(Document& document) |
| 3119 { | 3134 { |
| 3120 return DeprecatedDisableModifyRenderTreeStructureAsserts::canModifyRenderTre
eStateInAnyState() | 3135 return DeprecatedDisableModifyRenderTreeStructureAsserts::canModifyRenderTre
eStateInAnyState() |
| 3121 || document.lifecycle().stateAllowsRenderTreeMutations(); | 3136 || document.lifecycle().stateAllowsRenderTreeMutations(); |
| 3122 } | 3137 } |
| 3123 | 3138 |
| 3124 DeprecatedDisableModifyRenderTreeStructureAsserts::DeprecatedDisableModifyRender
TreeStructureAsserts() | 3139 DeprecatedDisableModifyRenderTreeStructureAsserts::DeprecatedDisableModifyRender
TreeStructureAsserts() |
| 3125 : m_disabler(gModifyRenderTreeStructureAnyState, true) | 3140 : m_disabler(gModifyRenderTreeStructureAnyState, true) |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3173 { | 3188 { |
| 3174 if (object1) { | 3189 if (object1) { |
| 3175 const blink::RenderObject* root = object1; | 3190 const blink::RenderObject* root = object1; |
| 3176 while (root->parent()) | 3191 while (root->parent()) |
| 3177 root = root->parent(); | 3192 root = root->parent(); |
| 3178 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); | 3193 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); |
| 3179 } | 3194 } |
| 3180 } | 3195 } |
| 3181 | 3196 |
| 3182 #endif | 3197 #endif |
| OLD | NEW |