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) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 | 86 |
87 const int nodeStyleChangeShift = 14; | 87 const int nodeStyleChangeShift = 14; |
88 | 88 |
89 enum StyleChangeType { | 89 enum StyleChangeType { |
90 NoStyleChange = 0, | 90 NoStyleChange = 0, |
91 LocalStyleChange = 1 << nodeStyleChangeShift, | 91 LocalStyleChange = 1 << nodeStyleChangeShift, |
92 SubtreeStyleChange = 2 << nodeStyleChangeShift, | 92 SubtreeStyleChange = 2 << nodeStyleChangeShift, |
93 NeedsReattachStyleChange = 3 << nodeStyleChangeShift, | 93 NeedsReattachStyleChange = 3 << nodeStyleChangeShift, |
94 }; | 94 }; |
95 | 95 |
96 // If the style change is from the renderer then we'll call setStyle on the | |
97 // renderer even if the style computed from CSS is identical. | |
98 enum StyleChangeSource { | |
99 StyleChangeFromCSS, | |
100 StyleChangeFromRenderer | |
101 }; | |
102 | |
103 class NodeRareDataBase { | 96 class NodeRareDataBase { |
104 public: | 97 public: |
105 RenderObject* renderer() const { return m_renderer; } | 98 RenderObject* renderer() const { return m_renderer; } |
106 void setRenderer(RenderObject* renderer) { m_renderer = renderer; } | 99 void setRenderer(RenderObject* renderer) { m_renderer = renderer; } |
107 | 100 |
108 protected: | 101 protected: |
109 NodeRareDataBase(RenderObject* renderer) | 102 NodeRareDataBase(RenderObject* renderer) |
110 : m_renderer(renderer) | 103 : m_renderer(renderer) |
111 { } | 104 { } |
112 | 105 |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 bool needsStyleRecalc() const { return styleChangeType() != NoStyleChange; } | 343 bool needsStyleRecalc() const { return styleChangeType() != NoStyleChange; } |
351 StyleChangeType styleChangeType() const { return static_cast<StyleChangeType
>(m_nodeFlags & StyleChangeMask); } | 344 StyleChangeType styleChangeType() const { return static_cast<StyleChangeType
>(m_nodeFlags & StyleChangeMask); } |
352 bool childNeedsStyleRecalc() const { return getFlag(ChildNeedsStyleRecalcFla
g); } | 345 bool childNeedsStyleRecalc() const { return getFlag(ChildNeedsStyleRecalcFla
g); } |
353 bool isLink() const { return getFlag(IsLinkFlag); } | 346 bool isLink() const { return getFlag(IsLinkFlag); } |
354 bool isEditingText() const { return isTextNode() && getFlag(HasNameOrIsEditi
ngTextFlag); } | 347 bool isEditingText() const { return isTextNode() && getFlag(HasNameOrIsEditi
ngTextFlag); } |
355 | 348 |
356 void setHasName(bool f) { ASSERT(!isTextNode()); setFlag(f, HasNameOrIsEditi
ngTextFlag); } | 349 void setHasName(bool f) { ASSERT(!isTextNode()); setFlag(f, HasNameOrIsEditi
ngTextFlag); } |
357 void setChildNeedsStyleRecalc() { setFlag(ChildNeedsStyleRecalcFlag); } | 350 void setChildNeedsStyleRecalc() { setFlag(ChildNeedsStyleRecalcFlag); } |
358 void clearChildNeedsStyleRecalc() { clearFlag(ChildNeedsStyleRecalcFlag); } | 351 void clearChildNeedsStyleRecalc() { clearFlag(ChildNeedsStyleRecalcFlag); } |
359 | 352 |
360 void setNeedsStyleRecalc(StyleChangeType, StyleChangeSource = StyleChangeFro
mCSS); | 353 void setNeedsStyleRecalc(StyleChangeType); |
361 void clearNeedsStyleRecalc(); | 354 void clearNeedsStyleRecalc(); |
362 | 355 |
363 bool childNeedsDistributionRecalc() const { return getFlag(ChildNeedsDistrib
utionRecalc); } | 356 bool childNeedsDistributionRecalc() const { return getFlag(ChildNeedsDistrib
utionRecalc); } |
364 void setChildNeedsDistributionRecalc() { setFlag(ChildNeedsDistributionReca
lc); } | 357 void setChildNeedsDistributionRecalc() { setFlag(ChildNeedsDistributionReca
lc); } |
365 void clearChildNeedsDistributionRecalc() { clearFlag(ChildNeedsDistribution
Recalc); } | 358 void clearChildNeedsDistributionRecalc() { clearFlag(ChildNeedsDistribution
Recalc); } |
366 void markAncestorsWithChildNeedsDistributionRecalc(); | 359 void markAncestorsWithChildNeedsDistributionRecalc(); |
367 | 360 |
368 bool childNeedsStyleInvalidation() const { return getFlag(ChildNeedsStyleInv
alidation); } | 361 bool childNeedsStyleInvalidation() const { return getFlag(ChildNeedsStyleInv
alidation); } |
369 void setChildNeedsStyleInvalidation() { setFlag(ChildNeedsStyleInvalidation
); } | 362 void setChildNeedsStyleInvalidation() { setFlag(ChildNeedsStyleInvalidation
); } |
370 void clearChildNeedsStyleInvalidation() { clearFlag(ChildNeedsStyleInvalida
tion); } | 363 void clearChildNeedsStyleInvalidation() { clearFlag(ChildNeedsStyleInvalida
tion); } |
371 void markAncestorsWithChildNeedsStyleInvalidation(); | 364 void markAncestorsWithChildNeedsStyleInvalidation(); |
372 bool needsStyleInvalidation() { return getFlag(NeedsStyleInvalidation); } | 365 bool needsStyleInvalidation() { return getFlag(NeedsStyleInvalidation); } |
373 void clearNeedsStyleInvalidation() { clearFlag(NeedsStyleInvalidation); } | 366 void clearNeedsStyleInvalidation() { clearFlag(NeedsStyleInvalidation); } |
374 void setNeedsStyleInvalidation(); | 367 void setNeedsStyleInvalidation(); |
375 | 368 |
376 void recalcDistribution(); | 369 void recalcDistribution(); |
377 | 370 |
378 bool shouldNotifyRendererWithIdenticalStyles() const { return getFlag(Notify
RendererWithIdenticalStyles); } | 371 bool needsLayerUpdate() const { return getFlag(NeedsLayerUpdateFlag); } |
| 372 void setNeedsLayerUpdate() { setFlag(NeedsLayerUpdateFlag); } |
| 373 void clearNeedsLayerUpdate() { clearFlag(NeedsLayerUpdateFlag); } |
379 | 374 |
380 void setIsLink(bool f); | 375 void setIsLink(bool f); |
381 | 376 |
382 bool hasScopedHTMLStyleChild() const { return getFlag(HasScopedHTMLStyleChil
dFlag); } | 377 bool hasScopedHTMLStyleChild() const { return getFlag(HasScopedHTMLStyleChil
dFlag); } |
383 void setHasScopedHTMLStyleChild(bool flag) { setFlag(flag, HasScopedHTMLStyl
eChildFlag); } | 378 void setHasScopedHTMLStyleChild(bool flag) { setFlag(flag, HasScopedHTMLStyl
eChildFlag); } |
384 | 379 |
385 bool hasEventTargetData() const { return getFlag(HasEventTargetDataFlag); } | 380 bool hasEventTargetData() const { return getFlag(HasEventTargetDataFlag); } |
386 void setHasEventTargetData(bool flag) { setFlag(flag, HasEventTargetDataFlag
); } | 381 void setHasEventTargetData(bool flag) { setFlag(flag, HasEventTargetDataFlag
); } |
387 | 382 |
388 bool isV8CollectableDuringMinorGC() const { return getFlag(V8CollectableDuri
ngMinorGCFlag); } | 383 bool isV8CollectableDuringMinorGC() const { return getFlag(V8CollectableDuri
ngMinorGCFlag); } |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
705 // Bit 18 is available | 700 // Bit 18 is available |
706 | 701 |
707 HasSyntheticAttrChildNodesFlag = 1 << 19, | 702 HasSyntheticAttrChildNodesFlag = 1 << 19, |
708 HasCustomStyleCallbacksFlag = 1 << 20, | 703 HasCustomStyleCallbacksFlag = 1 << 20, |
709 HasScopedHTMLStyleChildFlag = 1 << 21, | 704 HasScopedHTMLStyleChildFlag = 1 << 21, |
710 HasEventTargetDataFlag = 1 << 22, | 705 HasEventTargetDataFlag = 1 << 22, |
711 V8CollectableDuringMinorGCFlag = 1 << 23, | 706 V8CollectableDuringMinorGCFlag = 1 << 23, |
712 IsInsertionPointFlag = 1 << 24, | 707 IsInsertionPointFlag = 1 << 24, |
713 IsInShadowTreeFlag = 1 << 25, | 708 IsInShadowTreeFlag = 1 << 25, |
714 | 709 |
715 NotifyRendererWithIdenticalStyles = 1 << 26, | 710 NeedsLayerUpdateFlag = 1 << 26, |
716 | 711 |
717 CustomElement = 1 << 27, | 712 CustomElement = 1 << 27, |
718 CustomElementUpgraded = 1 << 28, | 713 CustomElementUpgraded = 1 << 28, |
719 | 714 |
720 ChildNeedsStyleInvalidation = 1 << 29, | 715 ChildNeedsStyleInvalidation = 1 << 29, |
721 NeedsStyleInvalidation = 1 << 30, | 716 NeedsStyleInvalidation = 1 << 30, |
722 | 717 |
723 DefaultNodeFlags = IsFinishedParsingChildrenFlag | ChildNeedsStyleRecalc
Flag | NeedsReattachStyleChange | 718 DefaultNodeFlags = IsFinishedParsingChildrenFlag | ChildNeedsStyleRecalc
Flag | NeedsReattachStyleChange |
724 }; | 719 }; |
725 | 720 |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
908 } // namespace WebCore | 903 } // namespace WebCore |
909 | 904 |
910 #ifndef NDEBUG | 905 #ifndef NDEBUG |
911 // Outside the WebCore namespace for ease of invocation from gdb. | 906 // Outside the WebCore namespace for ease of invocation from gdb. |
912 void showNode(const WebCore::Node*); | 907 void showNode(const WebCore::Node*); |
913 void showTree(const WebCore::Node*); | 908 void showTree(const WebCore::Node*); |
914 void showNodePath(const WebCore::Node*); | 909 void showNodePath(const WebCore::Node*); |
915 #endif | 910 #endif |
916 | 911 |
917 #endif | 912 #endif |
OLD | NEW |