Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Side by Side Diff: Source/core/rendering/RenderObject.cpp

Issue 498193003: Add |GraphicsLayerDebugInfo::getAnnotatedInvalidationRects| (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: use TRACE_EVENT Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 #ifndef NDEBUG 92 #ifndef NDEBUG
93 #include <stdio.h> 93 #include <stdio.h>
94 #endif 94 #endif
95 95
96 namespace blink { 96 namespace blink {
97 97
98 namespace { 98 namespace {
99 99
100 static bool gModifyRenderTreeStructureAnyState = false; 100 static bool gModifyRenderTreeStructureAnyState = false;
101 101
102 bool firstPaintInvalidationTrackingEnabled()
103 {
104 bool isEnabled;
105 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("blink.invalida tion"), &isEnabled);
106 return isEnabled;
107 }
108
109 typedef WillBeHeapHashSet<RawPtrWillBeWeakMember<const RenderObject> > RenderObj ectWeakSet;
110 RenderObjectWeakSet& renderObjectNeverHadPaintInvalidationSet()
111 {
112 DEFINE_STATIC_LOCAL(RenderObjectWeakSet, set, ());
113 return set;
114 }
115
102 } // namespace 116 } // namespace
103 117
104 using namespace HTMLNames; 118 using namespace HTMLNames;
105 119
106 #if ENABLE(ASSERT) 120 #if ENABLE(ASSERT)
107 121
108 RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope(Rende rObject& renderObject) 122 RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope(Rende rObject& renderObject)
109 : m_renderObject(renderObject) 123 : m_renderObject(renderObject)
110 , m_preexistingForbidden(m_renderObject.isSetNeedsLayoutForbidden()) 124 , m_preexistingForbidden(m_renderObject.isSetNeedsLayoutForbidden())
111 { 125 {
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 , m_next(nullptr) 240 , m_next(nullptr)
227 #if ENABLE(ASSERT) 241 #if ENABLE(ASSERT)
228 , m_hasAXObject(false) 242 , m_hasAXObject(false)
229 , m_setNeedsLayoutForbidden(false) 243 , m_setNeedsLayoutForbidden(false)
230 #if ENABLE(OILPAN) 244 #if ENABLE(OILPAN)
231 , m_didCallDestroy(false) 245 , m_didCallDestroy(false)
232 #endif 246 #endif
233 #endif 247 #endif
234 , m_bitfields(node) 248 , m_bitfields(node)
235 { 249 {
250 if (firstPaintInvalidationTrackingEnabled())
251 renderObjectNeverHadPaintInvalidationSet().add(this);
252
236 #ifndef NDEBUG 253 #ifndef NDEBUG
237 renderObjectCounter.increment(); 254 renderObjectCounter.increment();
238 #endif 255 #endif
239 ++s_instanceCount; 256 ++s_instanceCount;
240 } 257 }
241 258
242 RenderObject::~RenderObject() 259 RenderObject::~RenderObject()
243 { 260 {
261 if (firstPaintInvalidationTrackingEnabled())
262 renderObjectNeverHadPaintInvalidationSet().remove(this);
263
244 ASSERT(!m_hasAXObject); 264 ASSERT(!m_hasAXObject);
245 #if ENABLE(OILPAN) 265 #if ENABLE(OILPAN)
246 ASSERT(m_didCallDestroy); 266 ASSERT(m_didCallDestroy);
247 #endif 267 #endif
248 #ifndef NDEBUG 268 #ifndef NDEBUG
249 renderObjectCounter.decrement(); 269 renderObjectCounter.decrement();
250 #endif 270 #endif
251 --s_instanceCount; 271 --s_instanceCount;
252 } 272 }
253 273
(...skipping 1151 matching lines...) Expand 10 before | Expand all | Expand 10 after
1405 topLevelRect = result; 1425 topLevelRect = result;
1406 for (RenderObject* current = slowFirstChild(); current; current = current->n extSibling()) 1426 for (RenderObject* current = slowFirstChild(); current; current = current->n extSibling())
1407 current->addAbsoluteRectForLayer(result); 1427 current->addAbsoluteRectForLayer(result);
1408 return result; 1428 return result;
1409 } 1429 }
1410 1430
1411 void RenderObject::paint(PaintInfo&, const LayoutPoint&) 1431 void RenderObject::paint(PaintInfo&, const LayoutPoint&)
1412 { 1432 {
1413 } 1433 }
1414 1434
1435 void RenderObject::setHadPaintInvalidation()
1436 {
1437 if (firstPaintInvalidationTrackingEnabled())
1438 renderObjectNeverHadPaintInvalidationSet().remove(this);
1439 }
1440
1441 bool RenderObject::hadPaintInvalidation() const
1442 {
1443 if (firstPaintInvalidationTrackingEnabled())
1444 return true;
1445
1446 return !renderObjectNeverHadPaintInvalidationSet().contains(this);
1447 }
1448
1415 const RenderLayerModelObject* RenderObject::containerForPaintInvalidation() cons t 1449 const RenderLayerModelObject* RenderObject::containerForPaintInvalidation() cons t
1416 { 1450 {
1417 if (!isRooted()) 1451 if (!isRooted())
1418 return 0; 1452 return 0;
1419 1453
1420 return adjustCompositedContainerForSpecialAncestors(enclosingCompositedConta iner()); 1454 return adjustCompositedContainerForSpecialAncestors(enclosingCompositedConta iner());
1421 } 1455 }
1422 1456
1423 const RenderLayerModelObject* RenderObject::enclosingCompositedContainer() const 1457 const RenderLayerModelObject* RenderObject::enclosingCompositedContainer() const
1424 { 1458 {
(...skipping 2029 matching lines...) Expand 10 before | Expand all | Expand 10 after
3454 { 3488 {
3455 if (object1) { 3489 if (object1) {
3456 const blink::RenderObject* root = object1; 3490 const blink::RenderObject* root = object1;
3457 while (root->parent()) 3491 while (root->parent())
3458 root = root->parent(); 3492 root = root->parent();
3459 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); 3493 root->showRenderTreeAndMark(object1, "*", object2, "-", 0);
3460 } 3494 }
3461 } 3495 }
3462 3496
3463 #endif 3497 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698