Changeset 107700 in webkit
- Timestamp:
- Feb 14, 2012 3:32:12 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r107698 r107700 1 2012-02-14 Hayato Ito <hayato@chromium.org> 2 3 Make ShadowRoot.nodeType return DOCUMENT_FRAGMENT_NODE. 4 https://bugs.webkit.org/show_bug.cgi?id=77514 5 6 Reviewed by Dimitri Glazkov. 7 8 NodeType.SHADOW_ROOT_NODE type is finally gone. 9 10 * fast/dom/shadow/nodetype-expected.txt: 11 * fast/dom/shadow/nodetype.html: 12 * resources/dump-as-markup.js: 13 (Markup._get): 14 1 15 2012-02-14 Nikolas Zimmermann <nzimmermann@rim.com> 2 16 -
trunk/LayoutTests/fast/dom/shadow/nodetype-expected.txt
r107691 r107700 2 2 This tests the shadow host's and shadow root's nodeType. 3 3 PASS keygen.nodeType is Node.ELEMENT_NODE 4 PASS shadow.nodeType is 144 PASS shadow.nodeType is Node.DOCUMENT_FRAGMENT_NODE 5 5 PASS shadowChild is non-null. 6 PASS shadowChild.nodeType != 14is true6 PASS shadowChild.nodeType != Node.DOCUMENT_FRAGMENT_NODE is true 7 7 PASS successfullyParsed is true 8 8 -
trunk/LayoutTests/fast/dom/shadow/nodetype.html
r107691 r107700 17 17 var shadowChild = shadow.firstChild; 18 18 shouldBe('keygen.nodeType', 'Node.ELEMENT_NODE'); 19 shouldBe('shadow.nodeType', ' 14');19 shouldBe('shadow.nodeType', 'Node.DOCUMENT_FRAGMENT_NODE'); 20 20 shouldBeNonNull('shadowChild'); 21 shouldBeTrue('shadowChild.nodeType != 14');21 shouldBeTrue('shadowChild.nodeType != Node.DOCUMENT_FRAGMENT_NODE'); 22 22 } 23 23 </script> -
trunk/LayoutTests/resources/dump-as-markup.js
r107691 r107700 216 216 217 217 break; 218 case 14: // See SHADOW_ROOT_NODE on Node::NodeType 219 str += "<shadow:root>"; 218 case Node.DOCUMENT_FRAGMENT_NODE: 219 if (node.nodeName == "#shadow-root") 220 str += "<shadow:root>"; 220 221 } 221 222 -
trunk/Source/WebCore/ChangeLog
r107699 r107700 1 2012-02-14 Hayato Ito <hayato@chromium.org> 2 3 Make ShadowRoot.nodeType return DOCUMENT_FRAGMENT_NODE. 4 https://bugs.webkit.org/show_bug.cgi?id=77514 5 6 Reviewed by Dimitri Glazkov. 7 8 NodeType.SHADOW_ROOT_NODE type is finally gone. 9 10 * bindings/js/JSNodeCustom.cpp: 11 (WebCore::createWrapperInline): 12 * bindings/objc/DOM.mm: 13 (kitClass): 14 * bindings/v8/custom/V8NodeCustom.cpp: 15 (WebCore::toV8Slow): 16 * dom/ContainerNode.cpp: 17 (WebCore::collectTargetNodes): 18 (WebCore::ContainerNode::replaceChild): 19 * dom/Document.cpp: 20 (WebCore::Document::importNode): 21 (WebCore::Document::childTypeAllowed): 22 (WebCore::Document::canReplaceChild): 23 * dom/Node.cpp: 24 (WebCore::Node::dumpStatistics): 25 (WebCore::Node::isDefaultNamespace): 26 (WebCore::Node::lookupPrefix): 27 (WebCore::Node::lookupNamespaceURI): 28 (WebCore::appendTextContent): 29 (WebCore::Node::setTextContent): 30 * dom/Node.h: 31 * dom/Range.cpp: 32 (WebCore::lengthOfContentsInNode): 33 (WebCore::Range::processContentsBetweenOffsets): 34 (WebCore::Range::insertNode): 35 (WebCore::Range::checkNodeWOffset): 36 (WebCore::Range::checkNodeBA): 37 (WebCore::Range::selectNode): 38 (WebCore::Range::selectNodeContents): 39 (WebCore::Range::surroundContents): 40 * dom/ShadowRoot.cpp: 41 * dom/ShadowRoot.h: 42 (ShadowRoot): 43 (WebCore::toShadowRoot): 44 * editing/FrameSelection.cpp: 45 (WebCore::nodeIsDetachedFromDocument): 46 (WebCore): 47 (WebCore::FrameSelection::textWillBeReplaced): 48 * editing/MarkupAccumulator.cpp: 49 (WebCore::MarkupAccumulator::appendStartMarkup): 50 * html/parser/HTMLElementStack.cpp: 51 (WebCore::HTMLNames::isRootNode): 52 (WebCore::HTMLElementStack::pushRootNode): 53 * html/parser/HTMLElementStack.h: 54 (WebCore::isInHTMLNamespace): 55 * inspector/InspectorDOMAgent.cpp: 56 (WebCore::InspectorDOMAgent::pushChildNodesToFrontend): 57 (WebCore::InspectorDOMAgent::buildObjectForNode): 58 * xml/XPathUtil.cpp: 59 (WebCore::XPath::isValidContextNode): 60 1 61 2012-02-14 Andreas Kling <awesomekling@apple.com> 2 62 -
trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp
r107691 r107700 257 257 wrapper = CREATE_DOM_WRAPPER(exec, globalObject, DocumentFragment, node); 258 258 break; 259 case Node::SHADOW_ROOT_NODE:260 wrapper = CREATE_DOM_WRAPPER(exec, globalObject, Node, node);261 break;262 259 case Node::ENTITY_REFERENCE_NODE: 263 260 wrapper = CREATE_DOM_WRAPPER(exec, globalObject, EntityReference, node); -
trunk/Source/WebCore/bindings/objc/DOM.mm
r107691 r107700 328 328 // See http://bugs.webkit.org/show_bug.cgi?id=8755 329 329 return nil; 330 case WebCore::Node::SHADOW_ROOT_NODE:331 return [DOMNode class];332 330 } 333 331 ASSERT_NOT_REACHED(); -
trunk/Source/WebCore/bindings/v8/custom/V8NodeCustom.cpp
r107691 r107700 167 167 case Node::NOTATION_NODE: 168 168 return toV8(static_cast<Notation*>(impl), forceNewObject); 169 case Node::SHADOW_ROOT_NODE: // There's no IDL class for ShadowRoot, fall-through to default and use Node instead.170 169 default: break; // XPATH_NAMESPACE_NODE 171 170 } -
trunk/Source/WebCore/dom/ContainerNode.cpp
r107691 r107700 70 70 static void collectTargetNodes(Node* node, NodeVector& nodes) 71 71 { 72 if (node->nodeType() != Node::DOCUMENT_FRAGMENT_NODE ) {72 if (node->nodeType() != Node::DOCUMENT_FRAGMENT_NODE || node->isShadowRoot()) { 73 73 nodes.append(node); 74 74 return; … … 299 299 // writing, there are definitely callers who call that way). 300 300 301 bool isFragment = newChild->nodeType() == DOCUMENT_FRAGMENT_NODE ;301 bool isFragment = newChild->nodeType() == DOCUMENT_FRAGMENT_NODE && !newChild->isShadowRoot(); 302 302 303 303 // Add the new child(ren) -
trunk/Source/WebCore/dom/Document.cpp
r107691 r107700 877 877 return Attr::create(0, this, static_cast<Attr*>(importedNode)->attr()->clone()); 878 878 case DOCUMENT_FRAGMENT_NODE: { 879 if (importedNode->isShadowRoot()) { 880 // ShadowRoot nodes should not be explicitly importable. 881 // Either they are imported along with their host node, or created implicitly. 882 break; 883 } 879 884 DocumentFragment* oldFragment = static_cast<DocumentFragment*>(importedNode); 880 885 RefPtr<DocumentFragment> newFragment = createDocumentFragment(); … … 899 904 case DOCUMENT_TYPE_NODE: 900 905 case XPATH_NAMESPACE_NODE: 901 case SHADOW_ROOT_NODE:902 // ShadowRoot nodes should not be explicitly importable.903 // Either they are imported along with their host node, or created implicitly.904 906 break; 905 907 } … … 2857 2859 case TEXT_NODE: 2858 2860 case XPATH_NAMESPACE_NODE: 2859 case SHADOW_ROOT_NODE:2860 2861 return false; 2861 2862 case COMMENT_NODE: … … 2927 2928 numElements++; 2928 2929 break; 2929 case SHADOW_ROOT_NODE:2930 ASSERT_NOT_REACHED();2931 return false;2932 2930 } 2933 2931 } … … 2943 2941 case TEXT_NODE: 2944 2942 case XPATH_NAMESPACE_NODE: 2945 case SHADOW_ROOT_NODE:2946 2943 return false; 2947 2944 case COMMENT_NODE: -
trunk/Source/WebCore/dom/Node.cpp
r107691 r107700 228 228 } 229 229 case DOCUMENT_FRAGMENT_NODE: { 230 ++fragmentNodes; 230 if (node->isShadowRoot()) 231 ++shadowRootNodes; 232 else 233 ++fragmentNodes; 231 234 break; 232 235 } … … 237 240 case XPATH_NAMESPACE_NODE: { 238 241 ++xpathNSNodes; 239 break;240 }241 case SHADOW_ROOT_NODE: {242 ++shadowRootNodes;243 242 break; 244 243 } … … 1846 1845 case DOCUMENT_TYPE_NODE: 1847 1846 case DOCUMENT_FRAGMENT_NODE: 1848 case SHADOW_ROOT_NODE:1849 1847 return false; 1850 1848 case ATTRIBUTE_NODE: { … … 1880 1878 case DOCUMENT_FRAGMENT_NODE: 1881 1879 case DOCUMENT_TYPE_NODE: 1882 case SHADOW_ROOT_NODE:1883 1880 return String(); 1884 1881 case ATTRIBUTE_NODE: { … … 1939 1936 case DOCUMENT_TYPE_NODE: 1940 1937 case DOCUMENT_FRAGMENT_NODE: 1941 case SHADOW_ROOT_NODE:1942 1938 return String(); 1943 1939 case ATTRIBUTE_NODE: { … … 2007 2003 case Node::ENTITY_REFERENCE_NODE: 2008 2004 case Node::DOCUMENT_FRAGMENT_NODE: 2009 case Node::SHADOW_ROOT_NODE:2010 2005 isNullString = false; 2011 2006 for (Node* child = node->firstChild(); child; child = child->nextSibling()) { … … 2045 2040 case ENTITY_NODE: 2046 2041 case ENTITY_REFERENCE_NODE: 2047 case DOCUMENT_FRAGMENT_NODE: 2048 case SHADOW_ROOT_NODE: { 2042 case DOCUMENT_FRAGMENT_NODE: { 2049 2043 ContainerNode* container = toContainerNode(this); 2050 2044 #if ENABLE(MUTATION_OBSERVERS) -
trunk/Source/WebCore/dom/Node.h
r107691 r107700 123 123 NOTATION_NODE = 12, 124 124 XPATH_NAMESPACE_NODE = 13, 125 SHADOW_ROOT_NODE = 14126 125 }; 127 126 enum DocumentPosition { -
trunk/Source/WebCore/dom/Range.cpp
r107691 r107700 678 678 case Node::NOTATION_NODE: 679 679 case Node::XPATH_NAMESPACE_NODE: 680 case Node::SHADOW_ROOT_NODE:681 680 return node->childNodeCount(); 682 681 } … … 841 840 case Node::NOTATION_NODE: 842 841 case Node::XPATH_NAMESPACE_NODE: 843 case Node::SHADOW_ROOT_NODE:844 842 // FIXME: Should we assert that some nodes never appear here? 845 843 if (action == EXTRACT_CONTENTS || action == CLONE_CONTENTS) { … … 998 996 Node::NodeType newNodeType = newNode->nodeType(); 999 997 int numNewChildren; 1000 if (newNodeType == Node::DOCUMENT_FRAGMENT_NODE ) {998 if (newNodeType == Node::DOCUMENT_FRAGMENT_NODE && !newNode->isShadowRoot()) { 1001 999 // check each child node, not the DocumentFragment itself 1002 1000 numNewChildren = 0; … … 1029 1027 case Node::NOTATION_NODE: 1030 1028 case Node::DOCUMENT_NODE: 1031 case Node::SHADOW_ROOT_NODE:1032 1029 ec = RangeException::INVALID_NODE_TYPE_ERR; 1033 1030 return; 1034 1031 default: 1032 if (newNode->isShadowRoot()) { 1033 ec = RangeException::INVALID_NODE_TYPE_ERR; 1034 return; 1035 } 1035 1036 break; 1036 1037 } … … 1218 1219 case Node::ELEMENT_NODE: 1219 1220 case Node::ENTITY_REFERENCE_NODE: 1220 case Node::XPATH_NAMESPACE_NODE: 1221 case Node::SHADOW_ROOT_NODE: { 1221 case Node::XPATH_NAMESPACE_NODE: { 1222 1222 if (!offset) 1223 1223 return 0; … … 1244 1244 case Node::ENTITY_NODE: 1245 1245 case Node::NOTATION_NODE: 1246 case Node::SHADOW_ROOT_NODE:1247 1246 ec = RangeException::INVALID_NODE_TYPE_ERR; 1248 1247 return; … … 1266 1265 case Node::DOCUMENT_NODE: 1267 1266 case Node::DOCUMENT_FRAGMENT_NODE: 1268 case Node::SHADOW_ROOT_NODE:1269 1267 break; 1270 1268 case Node::CDATA_SECTION_NODE: … … 1398 1396 case Node::TEXT_NODE: 1399 1397 case Node::XPATH_NAMESPACE_NODE: 1400 case Node::SHADOW_ROOT_NODE:1401 1398 break; 1402 1399 case Node::DOCUMENT_TYPE_NODE: … … 1423 1420 case Node::ENTITY_NODE: 1424 1421 case Node::NOTATION_NODE: 1425 case Node::SHADOW_ROOT_NODE:1426 1422 ec = RangeException::INVALID_NODE_TYPE_ERR; 1427 1423 return; … … 1464 1460 case Node::TEXT_NODE: 1465 1461 case Node::XPATH_NAMESPACE_NODE: 1466 case Node::SHADOW_ROOT_NODE:1467 1462 break; 1468 1463 case Node::DOCUMENT_TYPE_NODE: … … 1513 1508 case Node::TEXT_NODE: 1514 1509 case Node::XPATH_NAMESPACE_NODE: 1515 case Node::SHADOW_ROOT_NODE:1516 1510 break; 1517 1511 } -
trunk/Source/WebCore/dom/ShadowRoot.cpp
r107691 r107700 126 126 } 127 127 128 Node::NodeType ShadowRoot::nodeType() const129 {130 return SHADOW_ROOT_NODE;131 }132 133 128 PassRefPtr<Node> ShadowRoot::cloneNode(bool) 134 129 { -
trunk/Source/WebCore/dom/ShadowRoot.h
r107691 r107700 84 84 85 85 virtual String nodeName() const; 86 virtual NodeType nodeType() const;87 86 virtual PassRefPtr<Node> cloneNode(bool deep); 88 87 virtual bool childTypeAllowed(NodeType) const; … … 114 113 inline ShadowRoot* toShadowRoot(Node* node) 115 114 { 116 ASSERT(!node || node-> nodeType() == Node::SHADOW_ROOT_NODE);115 ASSERT(!node || node->isShadowRoot()); 117 116 return static_cast<ShadowRoot*>(node); 118 117 } -
trunk/Source/WebCore/editing/FrameSelection.cpp
r107691 r107700 426 426 } 427 427 428 static inline bool nodeIsDetachedFromDocument(Node* node) 429 { 430 ASSERT(node); 431 Node* highest = highestAncestor(node); 432 return highest->nodeType() == Node::DOCUMENT_FRAGMENT_NODE && !highest->isShadowRoot(); 433 } 434 428 435 void FrameSelection::textWillBeReplaced(CharacterData* node, unsigned offset, unsigned oldLength, unsigned newLength) 429 436 { 430 437 // The fragment check is a performance optimization. See http://trac.webkit.org/changeset/30062. 431 if (isNone() || !node || highestAncestor(node)->nodeType() == Node::DOCUMENT_FRAGMENT_NODE)438 if (isNone() || !node || nodeIsDetachedFromDocument(node)) 432 439 return; 433 440 -
trunk/Source/WebCore/editing/MarkupAccumulator.cpp
r107691 r107700 445 445 case Node::NOTATION_NODE: 446 446 case Node::XPATH_NAMESPACE_NODE: 447 case Node::SHADOW_ROOT_NODE:448 447 ASSERT_NOT_REACHED(); 449 448 break; -
trunk/Source/WebCore/html/parser/HTMLElementStack.cpp
r107691 r107700 54 54 { 55 55 return node->nodeType() == Node::DOCUMENT_FRAGMENT_NODE 56 || node->nodeType() == Node::SHADOW_ROOT_NODE57 56 || node->hasTagName(htmlTag); 58 57 } … … 311 310 void HTMLElementStack::pushRootNode(PassRefPtr<ContainerNode> rootNode) 312 311 { 313 ASSERT(rootNode->nodeType() == Node::DOCUMENT_FRAGMENT_NODE || rootNode->nodeType() == Node::SHADOW_ROOT_NODE);312 ASSERT(rootNode->nodeType() == Node::DOCUMENT_FRAGMENT_NODE); 314 313 pushRootNodeCommon(rootNode); 315 314 } -
trunk/Source/WebCore/html/parser/HTMLElementStack.h
r107691 r107700 181 181 // fragments and should be considered in the HTML namespace. 182 182 return node->namespaceURI() == HTMLNames::xhtmlNamespaceURI 183 || node->nodeType() == Node::DOCUMENT_FRAGMENT_NODE 184 || node->nodeType() == Node::SHADOW_ROOT_NODE; // FIXME: Does this also apply to ShadowRoot? 183 || node->nodeType() == Node::DOCUMENT_FRAGMENT_NODE; // FIXME: Does this also apply to ShadowRoot? 185 184 } 186 185 -
trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp
r107691 r107700 403 403 { 404 404 Node* node = nodeForId(nodeId); 405 if (!node || (node->nodeType() != Node::ELEMENT_NODE && node->nodeType() != Node::DOCUMENT_NODE && node->nodeType() != Node::DOCUMENT_FRAGMENT_NODE) )405 if (!node || (node->nodeType() != Node::ELEMENT_NODE && node->nodeType() != Node::DOCUMENT_NODE && node->nodeType() != Node::DOCUMENT_FRAGMENT_NODE) || node->isShadowRoot()) 406 406 return; 407 407 if (m_childrenRequested.contains(nodeId)) … … 1161 1161 break; 1162 1162 case Node::DOCUMENT_FRAGMENT_NODE: 1163 break; 1163 if (!node->isShadowRoot()) 1164 break; 1165 // Fall through 1164 1166 case Node::DOCUMENT_NODE: 1165 1167 case Node::ELEMENT_NODE: -
trunk/Source/WebCore/xml/XPathUtil.cpp
r107691 r107700 86 86 case Node::ENTITY_REFERENCE_NODE: 87 87 case Node::NOTATION_NODE: 88 case Node::SHADOW_ROOT_NODE:89 88 return false; 90 89 case Node::TEXT_NODE: -
trunk/Source/WebKit/chromium/ChangeLog
r107695 r107700 1 2012-02-14 Hayato Ito <hayato@chromium.org> 2 3 Make ShadowRoot.nodeType return DOCUMENT_FRAGMENT_NODE. 4 https://bugs.webkit.org/show_bug.cgi?id=77514 5 6 Reviewed by Dimitri Glazkov. 7 8 NodeType.SHADOW_ROOT_NODE type is finally gone. 9 10 * src/WebPageSerializerImpl.cpp: 11 (WebKit::WebPageSerializerImpl::buildContentForNode): 12 1 13 2012-02-14 David Reveman <reveman@chromium.org> 2 14 -
trunk/Source/WebKit/chromium/src/WebPageSerializerImpl.cpp
r107691 r107700 418 418 case Node::DOCUMENT_NODE: 419 419 case Node::DOCUMENT_FRAGMENT_NODE: 420 case Node::SHADOW_ROOT_NODE:421 420 // Should not exist. 422 421 ASSERT_NOT_REACHED();
Note: See TracChangeset
for help on using the changeset viewer.