Chromium Code Reviews| 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 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 493 | 493 |
| 494 bool isDocumentTypeNode() const { return nodeType() == DOCUMENT_TYPE_NODE; } | 494 bool isDocumentTypeNode() const { return nodeType() == DOCUMENT_TYPE_NODE; } |
| 495 virtual bool childTypeAllowed(NodeType) const { return false; } | 495 virtual bool childTypeAllowed(NodeType) const { return false; } |
| 496 unsigned childNodeCount() const; | 496 unsigned childNodeCount() const; |
| 497 Node* childNode(unsigned index) const; | 497 Node* childNode(unsigned index) const; |
| 498 | 498 |
| 499 void checkSetPrefix(const AtomicString& prefix, ExceptionState&); | 499 void checkSetPrefix(const AtomicString& prefix, ExceptionState&); |
| 500 bool isDescendantOf(const Node*) const; | 500 bool isDescendantOf(const Node*) const; |
| 501 bool contains(const Node*) const; | 501 bool contains(const Node*) const; |
| 502 bool containsIncludingShadowDOM(const Node*) const; | 502 bool containsIncludingShadowDOM(const Node*) const; |
| 503 bool containsIncludingHostElements(const Node*) const; | 503 bool containsIncludingHostElements(const Node&) const; |
| 504 | 504 |
| 505 // FIXME: Remove this when crbug.com/265716 cleans up contains semantics. | 505 // FIXME: Remove this when crbug.com/265716 cleans up contains semantics. |
| 506 bool bindingsContains(const Node* node) const { return containsIncludingShad owDOM(node); } | 506 bool bindingsContains(const Node* node) const { return containsIncludingShad owDOM(node); } |
| 507 | 507 |
| 508 // Used to determine whether range offsets use characters or node indices. | 508 // Used to determine whether range offsets use characters or node indices. |
| 509 virtual bool offsetInCharacters() const; | 509 virtual bool offsetInCharacters() const; |
| 510 // Number of DOM 16-bit units contained in node. Note that rendered text len gth can be different - e.g. because of | 510 // Number of DOM 16-bit units contained in node. Note that rendered text len gth can be different - e.g. because of |
| 511 // css-transform:capitalize breaking up precomposed characters and ligatures . | 511 // css-transform:capitalize breaking up precomposed characters and ligatures . |
| 512 virtual int maxCharacterOffset() const; | 512 virtual int maxCharacterOffset() const; |
| 513 | 513 |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 914 return change >= Inherit || node->childNeedsStyleRecalc() || node->needsStyl eRecalc(); | 914 return change >= Inherit || node->childNeedsStyleRecalc() || node->needsStyl eRecalc(); |
| 915 } | 915 } |
| 916 | 916 |
| 917 // Allow equality comparisons of Nodes by reference or pointer, interchangeably. | 917 // Allow equality comparisons of Nodes by reference or pointer, interchangeably. |
| 918 inline bool operator==(const Node& a, const Node& b) { return &a == &b; } | 918 inline bool operator==(const Node& a, const Node& b) { return &a == &b; } |
| 919 inline bool operator==(const Node& a, const Node* b) { return &a == b; } | 919 inline bool operator==(const Node& a, const Node* b) { return &a == b; } |
| 920 inline bool operator==(const Node* a, const Node& b) { return a == &b; } | 920 inline bool operator==(const Node* a, const Node& b) { return a == &b; } |
| 921 inline bool operator!=(const Node& a, const Node& b) { return !(a == b); } | 921 inline bool operator!=(const Node& a, const Node& b) { return !(a == b); } |
| 922 inline bool operator!=(const Node& a, const Node* b) { return !(a == b); } | 922 inline bool operator!=(const Node& a, const Node* b) { return !(a == b); } |
| 923 inline bool operator!=(const Node* a, const Node& b) { return !(a == b); } | 923 inline bool operator!=(const Node* a, const Node& b) { return !(a == b); } |
| 924 inline bool operator==(const RefPtr<Node>& a, const Node& b) { return a.get() == &b; } | 924 inline bool operator==(const PassRefPtr<Node>& a, const Node& b) { return a.get( ) == &b; } |
| 925 inline bool operator==(const Node& a, const RefPtr<Node>& b) { return &a == b.ge t(); } | 925 inline bool operator==(const Node& a, const PassRefPtr<Node>& b) { return &a == b.get(); } |
| 926 inline bool operator!=(const RefPtr<Node>& a, const Node& b) { return !(a == b); } | 926 inline bool operator!=(const PassRefPtr<Node>& a, const Node& b) { return !(a == b); } |
| 927 inline bool operator!=(const Node& a, const RefPtr<Node>& b) { return !(a == b); } | 927 inline bool operator!=(const Node& a, const PassRefPtr<Node>& b) { return !(a == b); } |
|
Inactive
2013/11/01 18:43:18
This one cost me some time debugging. I was doing
adamk
2013/11/01 18:56:50
Yikes! This is why the WebKit style guide always r
Inactive
2013/11/01 19:03:57
Oh, I think we can provide both if you are worried
adamk
2013/11/01 19:07:09
I admit it seems unlikely for the cost to be notic
Inactive
2013/11/01 19:39:01
Sadly it does not build. It is ambiguous according
adamk
2013/11/01 20:10:54
I think I'd actually prefer dropping the PassRefPt
| |
| 928 | 928 |
| 929 | 929 |
| 930 #define DEFINE_NODE_TYPE_CASTS(thisType, predicate) \ | 930 #define DEFINE_NODE_TYPE_CASTS(thisType, predicate) \ |
| 931 template<typename T> inline thisType* to##thisType(const RefPtr<T>& node) { return to##thisType(node.get()); } \ | 931 template<typename T> inline thisType* to##thisType(const RefPtr<T>& node) { return to##thisType(node.get()); } \ |
| 932 DEFINE_TYPE_CASTS(thisType, Node, node, node->predicate, node.predicate) | 932 DEFINE_TYPE_CASTS(thisType, Node, node, node->predicate, node.predicate) |
| 933 | 933 |
| 934 // This requires isClassName(const Node&). | 934 // This requires isClassName(const Node&). |
| 935 #define DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(thisType) \ | 935 #define DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(thisType) \ |
| 936 template<typename T> inline thisType* to##thisType(const RefPtr<T>& node) { return to##thisType(node.get()); } \ | 936 template<typename T> inline thisType* to##thisType(const RefPtr<T>& node) { return to##thisType(node.get()); } \ |
| 937 DEFINE_TYPE_CASTS(thisType, Node, node, is##thisType(*node), is##thisType(no de)) | 937 DEFINE_TYPE_CASTS(thisType, Node, node, is##thisType(*node), is##thisType(no de)) |
| 938 | 938 |
| 939 } // namespace WebCore | 939 } // namespace WebCore |
| 940 | 940 |
| 941 #ifndef NDEBUG | 941 #ifndef NDEBUG |
| 942 // Outside the WebCore namespace for ease of invocation from gdb. | 942 // Outside the WebCore namespace for ease of invocation from gdb. |
| 943 void showTree(const WebCore::Node*); | 943 void showTree(const WebCore::Node*); |
| 944 void showNodePath(const WebCore::Node*); | 944 void showNodePath(const WebCore::Node*); |
| 945 #endif | 945 #endif |
| 946 | 946 |
| 947 #endif | 947 #endif |
| OLD | NEW |