| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All Rights Reserved. | 2 * Copyright (C) 2011 Google Inc. All Rights Reserved. |
| 3 * Copyright (C) 2012 Apple Inc. All rights reserved. | 3 * Copyright (C) 2012 Apple Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 #include "wtf/Vector.h" | 52 #include "wtf/Vector.h" |
| 53 | 53 |
| 54 namespace WebCore { | 54 namespace WebCore { |
| 55 | 55 |
| 56 using namespace HTMLNames; | 56 using namespace HTMLNames; |
| 57 | 57 |
| 58 TreeScope::TreeScope(ContainerNode& rootNode, Document& document) | 58 TreeScope::TreeScope(ContainerNode& rootNode, Document& document) |
| 59 : m_rootNode(rootNode) | 59 : m_rootNode(rootNode) |
| 60 , m_document(&document) | 60 , m_document(&document) |
| 61 , m_parentTreeScope(&document) | 61 , m_parentTreeScope(&document) |
| 62 #if !ENABLE(OILPAN) |
| 62 , m_guardRefCount(0) | 63 , m_guardRefCount(0) |
| 64 #endif |
| 63 , m_idTargetObserverRegistry(IdTargetObserverRegistry::create()) | 65 , m_idTargetObserverRegistry(IdTargetObserverRegistry::create()) |
| 64 { | 66 { |
| 65 ASSERT(rootNode != document); | 67 ASSERT(rootNode != document); |
| 68 #if !ENABLE(OILPAN) |
| 66 m_parentTreeScope->guardRef(); | 69 m_parentTreeScope->guardRef(); |
| 70 #endif |
| 67 m_rootNode.setTreeScope(this); | 71 m_rootNode.setTreeScope(this); |
| 68 } | 72 } |
| 69 | 73 |
| 70 TreeScope::TreeScope(Document& document) | 74 TreeScope::TreeScope(Document& document) |
| 71 : m_rootNode(document) | 75 : m_rootNode(document) |
| 72 , m_document(&document) | 76 , m_document(&document) |
| 73 , m_parentTreeScope(0) | 77 , m_parentTreeScope(nullptr) |
| 78 #if !ENABLE(OILPAN) |
| 74 , m_guardRefCount(0) | 79 , m_guardRefCount(0) |
| 80 #endif |
| 75 , m_idTargetObserverRegistry(IdTargetObserverRegistry::create()) | 81 , m_idTargetObserverRegistry(IdTargetObserverRegistry::create()) |
| 76 { | 82 { |
| 77 m_rootNode.setTreeScope(this); | 83 m_rootNode.setTreeScope(this); |
| 78 } | 84 } |
| 79 | 85 |
| 80 TreeScope::~TreeScope() | 86 TreeScope::~TreeScope() |
| 81 { | 87 { |
| 88 #if !ENABLE(OILPAN) |
| 82 ASSERT(!m_guardRefCount); | 89 ASSERT(!m_guardRefCount); |
| 90 #endif |
| 83 m_rootNode.setTreeScope(0); | 91 m_rootNode.setTreeScope(0); |
| 84 | 92 |
| 93 #if !ENABLE(OILPAN) |
| 85 if (m_selection) { | 94 if (m_selection) { |
| 86 m_selection->clearTreeScope(); | 95 m_selection->clearTreeScope(); |
| 87 m_selection = nullptr; | 96 m_selection = nullptr; |
| 88 } | 97 } |
| 89 | 98 |
| 90 if (m_parentTreeScope) | 99 if (m_parentTreeScope) |
| 91 m_parentTreeScope->guardDeref(); | 100 m_parentTreeScope->guardDeref(); |
| 101 #endif |
| 92 } | 102 } |
| 93 | 103 |
| 94 TreeScope* TreeScope::olderShadowRootOrParentTreeScope() const | 104 TreeScope* TreeScope::olderShadowRootOrParentTreeScope() const |
| 95 { | 105 { |
| 96 if (rootNode().isShadowRoot()) { | 106 if (rootNode().isShadowRoot()) { |
| 97 if (ShadowRoot* olderShadowRoot = toShadowRoot(rootNode()).olderShadowRo
ot()) | 107 if (ShadowRoot* olderShadowRoot = toShadowRoot(rootNode()).olderShadowRo
ot()) |
| 98 return olderShadowRoot; | 108 return olderShadowRoot; |
| 99 } | 109 } |
| 100 return parentTreeScope(); | 110 return parentTreeScope(); |
| 101 } | 111 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 119 m_elementsById.clear(); | 129 m_elementsById.clear(); |
| 120 m_imageMapsByName.clear(); | 130 m_imageMapsByName.clear(); |
| 121 m_labelsByForAttribute.clear(); | 131 m_labelsByForAttribute.clear(); |
| 122 } | 132 } |
| 123 | 133 |
| 124 void TreeScope::setParentTreeScope(TreeScope& newParentScope) | 134 void TreeScope::setParentTreeScope(TreeScope& newParentScope) |
| 125 { | 135 { |
| 126 // A document node cannot be re-parented. | 136 // A document node cannot be re-parented. |
| 127 ASSERT(!rootNode().isDocumentNode()); | 137 ASSERT(!rootNode().isDocumentNode()); |
| 128 | 138 |
| 139 #if !ENABLE(OILPAN) |
| 129 newParentScope.guardRef(); | 140 newParentScope.guardRef(); |
| 130 if (m_parentTreeScope) | 141 if (m_parentTreeScope) |
| 131 m_parentTreeScope->guardDeref(); | 142 m_parentTreeScope->guardDeref(); |
| 143 #endif |
| 132 m_parentTreeScope = &newParentScope; | 144 m_parentTreeScope = &newParentScope; |
| 133 setDocument(newParentScope.document()); | 145 setDocument(newParentScope.document()); |
| 134 } | 146 } |
| 135 | 147 |
| 136 Element* TreeScope::getElementById(const AtomicString& elementId) const | 148 Element* TreeScope::getElementById(const AtomicString& elementId) const |
| 137 { | 149 { |
| 138 if (elementId.isEmpty()) | 150 if (elementId.isEmpty()) |
| 139 return 0; | 151 return 0; |
| 140 if (!m_elementsById) | 152 if (!m_elementsById) |
| 141 return 0; | 153 return 0; |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 { | 526 { |
| 515 for (Element* element = ElementTraversal::firstWithin(rootNode()); element;
element = ElementTraversal::nextIncludingPseudo(*element)) { | 527 for (Element* element = ElementTraversal::firstWithin(rootNode()); element;
element = ElementTraversal::nextIncludingPseudo(*element)) { |
| 516 for (ShadowRoot* root = element->youngestShadowRoot(); root; root = root
->olderShadowRoot()) | 528 for (ShadowRoot* root = element->youngestShadowRoot(); root; root = root
->olderShadowRoot()) |
| 517 root->setNeedsStyleRecalcForViewportUnits(); | 529 root->setNeedsStyleRecalcForViewportUnits(); |
| 518 RenderStyle* style = element->renderStyle(); | 530 RenderStyle* style = element->renderStyle(); |
| 519 if (style && style->hasViewportUnits()) | 531 if (style && style->hasViewportUnits()) |
| 520 element->setNeedsStyleRecalc(LocalStyleChange); | 532 element->setNeedsStyleRecalc(LocalStyleChange); |
| 521 } | 533 } |
| 522 } | 534 } |
| 523 | 535 |
| 536 void TreeScope::trace(Visitor* visitor) |
| 537 { |
| 538 visitor->trace(m_parentTreeScope); |
| 539 visitor->trace(m_selection); |
| 540 } |
| 541 |
| 524 } // namespace WebCore | 542 } // namespace WebCore |
| OLD | NEW |