void MarkupAccumulator::appendStartMarkup(StringBuilder& result, Node& node, Namespaces* namespaces) { switch (node.nodeType()) { case Node::TEXT_NODE: appendText(result, toText(node)); break; case Node::COMMENT_NODE: appendComment(result, toComment(node).data()); break; case Node::DOCUMENT_NODE: appendXMLDeclaration(result, toDocument(node)); break; case Node::DOCUMENT_FRAGMENT_NODE: break; case Node::DOCUMENT_TYPE_NODE: appendDocumentType(result, toDocumentType(node)); break; case Node::PROCESSING_INSTRUCTION_NODE: appendProcessingInstruction(result, toProcessingInstruction(node).target(), toProcessingInstruction(node).data()); break; case Node::ELEMENT_NODE: appendElement(result, toElement(node), namespaces); break; case Node::CDATA_SECTION_NODE: appendCDATASection(result, toCDATASection(node).data()); break; case Node::ATTRIBUTE_NODE: ASSERT_NOT_REACHED(); break; } }
static inline String expandedNameLocalPart(Node* node) { // The local part of an XPath expanded-name matches DOM local name for most // node types, except for namespace nodes and processing instruction nodes. // But note that Blink does not support namespace nodes. switch (node->getNodeType()) { case Node::kElementNode: return toElement(node)->localName(); case Node::kAttributeNode: return toAttr(node)->localName(); case Node::kProcessingInstructionNode: return toProcessingInstruction(node)->target(); default: return String(); } }
void CharacterData::setDataAndUpdate(const String& newData, unsigned offsetOfReplacedData, unsigned oldLength, unsigned newLength, RecalcStyleBehavior recalcStyleBehavior) { String oldData = m_data; m_data = newData; ASSERT(!renderer() || isTextNode()); if (isTextNode()) toText(this)->updateTextRenderer(offsetOfReplacedData, oldLength, recalcStyleBehavior); if (nodeType() == PROCESSING_INSTRUCTION_NODE) toProcessingInstruction(this)->checkStyleSheet(); if (document().frame()) document().frame()->selection().didUpdateCharacterData(this, offsetOfReplacedData, oldLength, newLength); document().incDOMTreeVersion(); didModifyData(oldData); }
void CharacterData::setDataAndUpdate(const String& newData, unsigned offsetOfReplacedData, unsigned oldLength, unsigned newLength, UpdateSource source, RecalcStyleBehavior recalcStyleBehavior) { String oldData = m_data; m_data = newData; ASSERT(!layoutObject() || isTextNode()); if (isTextNode()) toText(this)->updateTextLayoutObject(offsetOfReplacedData, oldLength, recalcStyleBehavior); if (source != UpdateFromParser) { if (getNodeType() == PROCESSING_INSTRUCTION_NODE) toProcessingInstruction(this)->didAttributeChanged(); if (document().frame()) document().frame()->selection().didUpdateCharacterData(this, offsetOfReplacedData, oldLength, newLength); } document().incDOMTreeVersion(); didModifyData(oldData, source); }