| 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-2011, 2014 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004-2011, 2014 Apple Inc. All rights reserved. |
| 6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
| 7 * (http://www.torchmobile.com/) | 7 * (http://www.torchmobile.com/) |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 #define Node_h | 27 #define Node_h |
| 28 | 28 |
| 29 #include "bindings/core/v8/ExceptionState.h" | 29 #include "bindings/core/v8/ExceptionState.h" |
| 30 #include "bindings/core/v8/TraceWrapperMember.h" | 30 #include "bindings/core/v8/TraceWrapperMember.h" |
| 31 #include "core/CoreExport.h" | 31 #include "core/CoreExport.h" |
| 32 #include "core/dom/MutationObserver.h" | 32 #include "core/dom/MutationObserver.h" |
| 33 #include "core/dom/SimulatedClickOptions.h" | 33 #include "core/dom/SimulatedClickOptions.h" |
| 34 #include "core/dom/TreeScope.h" | 34 #include "core/dom/TreeScope.h" |
| 35 #include "core/editing/EditingBoundary.h" | 35 #include "core/editing/EditingBoundary.h" |
| 36 #include "core/events/EventTarget.h" | 36 #include "core/events/EventTarget.h" |
| 37 #include "core/style/ComputedStyle.h" |
| 37 #include "core/style/ComputedStyleConstants.h" | 38 #include "core/style/ComputedStyleConstants.h" |
| 38 #include "platform/geometry/LayoutRect.h" | 39 #include "platform/geometry/LayoutRect.h" |
| 39 #include "public/platform/WebFocusType.h" | 40 #include "public/platform/WebFocusType.h" |
| 40 | 41 |
| 41 // This needs to be here because Element.cpp also depends on it. | 42 // This needs to be here because Element.cpp also depends on it. |
| 42 #define DUMP_NODE_STATISTICS 0 | 43 #define DUMP_NODE_STATISTICS 0 |
| 43 | 44 |
| 44 namespace blink { | 45 namespace blink { |
| 45 | 46 |
| 46 class ContainerNode; | 47 class ContainerNode; |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 kNotDefinedFlag = 2 << kNodeCustomElementShift, | 95 kNotDefinedFlag = 2 << kNodeCustomElementShift, |
| 95 }; | 96 }; |
| 96 | 97 |
| 97 enum class SlotChangeType { | 98 enum class SlotChangeType { |
| 98 kInitial, | 99 kInitial, |
| 99 kChained, | 100 kChained, |
| 100 }; | 101 }; |
| 101 | 102 |
| 102 class NodeLayoutData { | 103 class NodeLayoutData { |
| 103 public: | 104 public: |
| 104 explicit NodeLayoutData(LayoutObject* layout_object) | 105 explicit NodeLayoutData(LayoutObject* layout_object, |
| 105 : layout_object_(layout_object) {} | 106 RefPtr<ComputedStyle> non_attached_style) |
| 107 : layout_object_(layout_object), |
| 108 non_attached_style_(non_attached_style) {} |
| 106 ~NodeLayoutData() { CHECK(!layout_object_); } | 109 ~NodeLayoutData() { CHECK(!layout_object_); } |
| 107 | 110 |
| 108 LayoutObject* GetLayoutObject() const { return layout_object_; } | 111 LayoutObject* GetLayoutObject() const { return layout_object_; } |
| 109 void SetLayoutObject(LayoutObject* layout_object) { | 112 void SetLayoutObject(LayoutObject* layout_object) { |
| 110 DCHECK_NE(&SharedEmptyData(), this); | 113 DCHECK_NE(&SharedEmptyData(), this); |
| 111 layout_object_ = layout_object; | 114 layout_object_ = layout_object; |
| 112 } | 115 } |
| 116 |
| 117 ComputedStyle* GetNonAttachedStyle() const { |
| 118 return non_attached_style_.Get(); |
| 119 } |
| 120 void SetNonAttachedStyle(RefPtr<ComputedStyle> non_attached_style) { |
| 121 DCHECK_NE(&SharedEmptyData(), this); |
| 122 non_attached_style_ = non_attached_style; |
| 123 } |
| 124 |
| 113 static NodeLayoutData& SharedEmptyData() { | 125 static NodeLayoutData& SharedEmptyData() { |
| 114 DEFINE_STATIC_LOCAL(NodeLayoutData, shared_empty_data, (nullptr)); | 126 DEFINE_STATIC_LOCAL(NodeLayoutData, shared_empty_data, (nullptr, nullptr)); |
| 115 return shared_empty_data; | 127 return shared_empty_data; |
| 116 } | 128 } |
| 117 bool IsSharedEmptyData() { return this == &SharedEmptyData(); } | 129 bool IsSharedEmptyData() { return this == &SharedEmptyData(); } |
| 118 | 130 |
| 119 private: | 131 private: |
| 120 LayoutObject* layout_object_; | 132 LayoutObject* layout_object_; |
| 133 RefPtr<ComputedStyle> non_attached_style_; |
| 121 }; | 134 }; |
| 122 | 135 |
| 123 class NodeRareDataBase { | 136 class NodeRareDataBase { |
| 124 public: | 137 public: |
| 125 NodeLayoutData* GetNodeLayoutData() const { return node_layout_data_; } | 138 NodeLayoutData* GetNodeLayoutData() const { return node_layout_data_; } |
| 126 void SetNodeLayoutData(NodeLayoutData* node_layout_data) { | 139 void SetNodeLayoutData(NodeLayoutData* node_layout_data) { |
| 127 DCHECK(node_layout_data); | 140 DCHECK(node_layout_data); |
| 128 node_layout_data_ = node_layout_data; | 141 node_layout_data_ = node_layout_data; |
| 129 } | 142 } |
| 130 | 143 |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 bool isSameNode(const Node* other) const { return this == other; } | 270 bool isSameNode(const Node* other) const { return this == other; } |
| 258 bool isDefaultNamespace(const AtomicString& namespace_uri) const; | 271 bool isDefaultNamespace(const AtomicString& namespace_uri) const; |
| 259 const AtomicString& lookupPrefix(const AtomicString& namespace_uri) const; | 272 const AtomicString& lookupPrefix(const AtomicString& namespace_uri) const; |
| 260 const AtomicString& lookupNamespaceURI(const String& prefix) const; | 273 const AtomicString& lookupNamespaceURI(const String& prefix) const; |
| 261 | 274 |
| 262 String textContent(bool convert_brs_to_newlines = false) const; | 275 String textContent(bool convert_brs_to_newlines = false) const; |
| 263 void setTextContent(const String&); | 276 void setTextContent(const String&); |
| 264 | 277 |
| 265 bool SupportsAltText(); | 278 bool SupportsAltText(); |
| 266 | 279 |
| 280 void SetNonAttachedStyle(RefPtr<ComputedStyle> non_attached_style); |
| 281 |
| 282 ComputedStyle* GetNonAttachedStyle() const { |
| 283 return HasRareData() |
| 284 ? data_.rare_data_->GetNodeLayoutData()->GetNonAttachedStyle() |
| 285 : data_.node_layout_data_->GetNonAttachedStyle(); |
| 286 } |
| 287 |
| 267 // Other methods (not part of DOM) | 288 // Other methods (not part of DOM) |
| 268 | 289 |
| 269 bool IsElementNode() const { return GetFlag(kIsElementFlag); } | 290 bool IsElementNode() const { return GetFlag(kIsElementFlag); } |
| 270 bool IsContainerNode() const { return GetFlag(kIsContainerFlag); } | 291 bool IsContainerNode() const { return GetFlag(kIsContainerFlag); } |
| 271 bool IsTextNode() const { return GetFlag(kIsTextFlag); } | 292 bool IsTextNode() const { return GetFlag(kIsTextFlag); } |
| 272 bool IsHTMLElement() const { return GetFlag(kIsHTMLFlag); } | 293 bool IsHTMLElement() const { return GetFlag(kIsHTMLFlag); } |
| 273 bool IsSVGElement() const { return GetFlag(kIsSVGFlag); } | 294 bool IsSVGElement() const { return GetFlag(kIsSVGFlag); } |
| 274 | 295 |
| 275 DISABLE_CFI_PERF bool IsPseudoElement() const { | 296 DISABLE_CFI_PERF bool IsPseudoElement() const { |
| 276 return GetPseudoId() != kPseudoIdNone; | 297 return GetPseudoId() != kPseudoIdNone; |
| (...skipping 743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1020 } // namespace blink | 1041 } // namespace blink |
| 1021 | 1042 |
| 1022 #ifndef NDEBUG | 1043 #ifndef NDEBUG |
| 1023 // Outside the WebCore namespace for ease of invocation from gdb. | 1044 // Outside the WebCore namespace for ease of invocation from gdb. |
| 1024 void showNode(const blink::Node*); | 1045 void showNode(const blink::Node*); |
| 1025 void showTree(const blink::Node*); | 1046 void showTree(const blink::Node*); |
| 1026 void showNodePath(const blink::Node*); | 1047 void showNodePath(const blink::Node*); |
| 1027 #endif | 1048 #endif |
| 1028 | 1049 |
| 1029 #endif // Node_h | 1050 #endif // Node_h |
| OLD | NEW |