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 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r
ights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r
ights reserved. |
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 #include "core/css/StyleSheetContents.h" | 53 #include "core/css/StyleSheetContents.h" |
54 #include "core/css/StyleSheetList.h" | 54 #include "core/css/StyleSheetList.h" |
55 #include "core/css/invalidation/StyleInvalidator.h" | 55 #include "core/css/invalidation/StyleInvalidator.h" |
56 #include "core/css/parser/CSSParser.h" | 56 #include "core/css/parser/CSSParser.h" |
57 #include "core/css/resolver/FontBuilder.h" | 57 #include "core/css/resolver/FontBuilder.h" |
58 #include "core/css/resolver/StyleResolver.h" | 58 #include "core/css/resolver/StyleResolver.h" |
59 #include "core/css/resolver/StyleResolverStats.h" | 59 #include "core/css/resolver/StyleResolverStats.h" |
60 #include "core/dom/AXObjectCache.h" | 60 #include "core/dom/AXObjectCache.h" |
61 #include "core/dom/AddConsoleMessageTask.h" | 61 #include "core/dom/AddConsoleMessageTask.h" |
62 #include "core/dom/Attr.h" | 62 #include "core/dom/Attr.h" |
63 #include "core/dom/CDATASection.h" | |
64 #include "core/dom/ClientRect.h" | 63 #include "core/dom/ClientRect.h" |
65 #include "core/dom/Comment.h" | 64 #include "core/dom/Comment.h" |
66 #include "core/dom/ContextFeatures.h" | 65 #include "core/dom/ContextFeatures.h" |
67 #include "core/dom/DOMImplementation.h" | 66 #include "core/dom/DOMImplementation.h" |
68 #include "core/dom/DocumentFragment.h" | 67 #include "core/dom/DocumentFragment.h" |
69 #include "core/dom/DocumentLifecycleNotifier.h" | 68 #include "core/dom/DocumentLifecycleNotifier.h" |
70 #include "core/dom/DocumentLifecycleObserver.h" | 69 #include "core/dom/DocumentLifecycleObserver.h" |
71 #include "core/dom/DocumentMarkerController.h" | 70 #include "core/dom/DocumentMarkerController.h" |
72 #include "core/dom/DocumentType.h" | 71 #include "core/dom/DocumentType.h" |
73 #include "core/dom/Element.h" | 72 #include "core/dom/Element.h" |
(...skipping 13 matching lines...) Expand all Loading... |
87 #include "core/dom/NodeRenderingTraversal.h" | 86 #include "core/dom/NodeRenderingTraversal.h" |
88 #include "core/dom/NodeTraversal.h" | 87 #include "core/dom/NodeTraversal.h" |
89 #include "core/dom/NodeWithIndex.h" | 88 #include "core/dom/NodeWithIndex.h" |
90 #include "core/dom/ProcessingInstruction.h" | 89 #include "core/dom/ProcessingInstruction.h" |
91 #include "core/dom/RequestAnimationFrameCallback.h" | 90 #include "core/dom/RequestAnimationFrameCallback.h" |
92 #include "core/dom/ScriptRunner.h" | 91 #include "core/dom/ScriptRunner.h" |
93 #include "core/dom/ScriptedAnimationController.h" | 92 #include "core/dom/ScriptedAnimationController.h" |
94 #include "core/dom/SelectorQuery.h" | 93 #include "core/dom/SelectorQuery.h" |
95 #include "core/dom/StaticNodeList.h" | 94 #include "core/dom/StaticNodeList.h" |
96 #include "core/dom/StyleEngine.h" | 95 #include "core/dom/StyleEngine.h" |
| 96 #include "core/dom/Text.h" |
97 #include "core/dom/TouchList.h" | 97 #include "core/dom/TouchList.h" |
98 #include "core/dom/TransformSource.h" | 98 #include "core/dom/TransformSource.h" |
99 #include "core/dom/TreeWalker.h" | 99 #include "core/dom/TreeWalker.h" |
100 #include "core/dom/VisitedLinkState.h" | 100 #include "core/dom/VisitedLinkState.h" |
101 #include "core/dom/XMLDocument.h" | 101 #include "core/dom/XMLDocument.h" |
102 #include "core/dom/custom/CustomElementMicrotaskRunQueue.h" | 102 #include "core/dom/custom/CustomElementMicrotaskRunQueue.h" |
103 #include "core/dom/custom/CustomElementRegistrationContext.h" | 103 #include "core/dom/custom/CustomElementRegistrationContext.h" |
104 #include "core/dom/shadow/ElementShadow.h" | 104 #include "core/dom/shadow/ElementShadow.h" |
105 #include "core/dom/shadow/ShadowRoot.h" | 105 #include "core/dom/shadow/ShadowRoot.h" |
106 #include "core/editing/Editor.h" | 106 #include "core/editing/Editor.h" |
(...skipping 771 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
878 PassRefPtrWillBeRawPtr<Text> Document::createTextNode(const String& data) | 878 PassRefPtrWillBeRawPtr<Text> Document::createTextNode(const String& data) |
879 { | 879 { |
880 return Text::create(*this, data); | 880 return Text::create(*this, data); |
881 } | 881 } |
882 | 882 |
883 PassRefPtrWillBeRawPtr<Comment> Document::createComment(const String& data) | 883 PassRefPtrWillBeRawPtr<Comment> Document::createComment(const String& data) |
884 { | 884 { |
885 return Comment::create(*this, data); | 885 return Comment::create(*this, data); |
886 } | 886 } |
887 | 887 |
888 PassRefPtrWillBeRawPtr<CDATASection> Document::createCDATASection(const String&
data, ExceptionState& exceptionState) | |
889 { | |
890 if (isHTMLDocument()) { | |
891 exceptionState.throwDOMException(NotSupportedError, "This operation is n
ot supported for HTML documents."); | |
892 return nullptr; | |
893 } | |
894 if (data.contains("]]>")) { | |
895 exceptionState.throwDOMException(InvalidCharacterError, "String cannot c
ontain ']]>' since that is the end delimiter of a CData section."); | |
896 return nullptr; | |
897 } | |
898 return CDATASection::create(*this, data); | |
899 } | |
900 | |
901 PassRefPtrWillBeRawPtr<ProcessingInstruction> Document::createProcessingInstruct
ion(const String& target, const String& data, ExceptionState& exceptionState) | 888 PassRefPtrWillBeRawPtr<ProcessingInstruction> Document::createProcessingInstruct
ion(const String& target, const String& data, ExceptionState& exceptionState) |
902 { | 889 { |
903 if (!isValidName(target)) { | 890 if (!isValidName(target)) { |
904 exceptionState.throwDOMException(InvalidCharacterError, "The target prov
ided ('" + target + "') is not a valid name."); | 891 exceptionState.throwDOMException(InvalidCharacterError, "The target prov
ided ('" + target + "') is not a valid name."); |
905 return nullptr; | 892 return nullptr; |
906 } | 893 } |
907 if (data.contains("?>")) { | 894 if (data.contains("?>")) { |
908 exceptionState.throwDOMException(InvalidCharacterError, "The data provid
ed ('" + data + "') contains '?>'."); | 895 exceptionState.throwDOMException(InvalidCharacterError, "The data provid
ed ('" + data + "') contains '?>'."); |
909 return nullptr; | 896 return nullptr; |
910 } | 897 } |
(...skipping 17 matching lines...) Expand all Loading... |
928 } | 915 } |
929 | 916 |
930 return true; | 917 return true; |
931 } | 918 } |
932 | 919 |
933 PassRefPtrWillBeRawPtr<Node> Document::importNode(Node* importedNode, bool deep,
ExceptionState& exceptionState) | 920 PassRefPtrWillBeRawPtr<Node> Document::importNode(Node* importedNode, bool deep,
ExceptionState& exceptionState) |
934 { | 921 { |
935 switch (importedNode->nodeType()) { | 922 switch (importedNode->nodeType()) { |
936 case TEXT_NODE: | 923 case TEXT_NODE: |
937 return createTextNode(importedNode->nodeValue()); | 924 return createTextNode(importedNode->nodeValue()); |
938 case CDATA_SECTION_NODE: | |
939 return CDATASection::create(*this, importedNode->nodeValue()); | |
940 case PROCESSING_INSTRUCTION_NODE: | 925 case PROCESSING_INSTRUCTION_NODE: |
941 return createProcessingInstruction(importedNode->nodeName(), importedNod
e->nodeValue(), exceptionState); | 926 return createProcessingInstruction(importedNode->nodeName(), importedNod
e->nodeValue(), exceptionState); |
942 case COMMENT_NODE: | 927 case COMMENT_NODE: |
943 return createComment(importedNode->nodeValue()); | 928 return createComment(importedNode->nodeValue()); |
944 case DOCUMENT_TYPE_NODE: { | 929 case DOCUMENT_TYPE_NODE: { |
945 DocumentType* doctype = toDocumentType(importedNode); | 930 DocumentType* doctype = toDocumentType(importedNode); |
946 return DocumentType::create(this, doctype->name(), doctype->publicId(),
doctype->systemId()); | 931 return DocumentType::create(this, doctype->name(), doctype->publicId(),
doctype->systemId()); |
947 } | 932 } |
948 case ELEMENT_NODE: { | 933 case ELEMENT_NODE: { |
949 Element* oldElement = toElement(importedNode); | 934 Element* oldElement = toElement(importedNode); |
(...skipping 2191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3141 updateHoverActiveState(request, result.innerElement(), &event); | 3126 updateHoverActiveState(request, result.innerElement(), &event); |
3142 | 3127 |
3143 return MouseEventWithHitTestResults(event, result); | 3128 return MouseEventWithHitTestResults(event, result); |
3144 } | 3129 } |
3145 | 3130 |
3146 // DOM Section 1.1.1 | 3131 // DOM Section 1.1.1 |
3147 bool Document::childTypeAllowed(NodeType type) const | 3132 bool Document::childTypeAllowed(NodeType type) const |
3148 { | 3133 { |
3149 switch (type) { | 3134 switch (type) { |
3150 case ATTRIBUTE_NODE: | 3135 case ATTRIBUTE_NODE: |
3151 case CDATA_SECTION_NODE: | |
3152 case DOCUMENT_FRAGMENT_NODE: | 3136 case DOCUMENT_FRAGMENT_NODE: |
3153 case DOCUMENT_NODE: | 3137 case DOCUMENT_NODE: |
3154 case TEXT_NODE: | 3138 case TEXT_NODE: |
3155 return false; | 3139 return false; |
3156 case COMMENT_NODE: | 3140 case COMMENT_NODE: |
3157 case PROCESSING_INSTRUCTION_NODE: | 3141 case PROCESSING_INSTRUCTION_NODE: |
3158 return true; | 3142 return true; |
3159 case DOCUMENT_TYPE_NODE: | 3143 case DOCUMENT_TYPE_NODE: |
3160 case ELEMENT_NODE: | 3144 case ELEMENT_NODE: |
3161 // Documents may contain no more than one of each of these. | 3145 // Documents may contain no more than one of each of these. |
(...skipping 30 matching lines...) Expand all Loading... |
3192 default: | 3176 default: |
3193 break; | 3177 break; |
3194 } | 3178 } |
3195 } | 3179 } |
3196 | 3180 |
3197 // Then, see how many doctypes and elements might be added by the new child. | 3181 // Then, see how many doctypes and elements might be added by the new child. |
3198 if (newChild.isDocumentFragment()) { | 3182 if (newChild.isDocumentFragment()) { |
3199 for (Node& child : NodeTraversal::childrenOf(toDocumentFragment(newChild
))) { | 3183 for (Node& child : NodeTraversal::childrenOf(toDocumentFragment(newChild
))) { |
3200 switch (child.nodeType()) { | 3184 switch (child.nodeType()) { |
3201 case ATTRIBUTE_NODE: | 3185 case ATTRIBUTE_NODE: |
3202 case CDATA_SECTION_NODE: | |
3203 case DOCUMENT_FRAGMENT_NODE: | 3186 case DOCUMENT_FRAGMENT_NODE: |
3204 case DOCUMENT_NODE: | 3187 case DOCUMENT_NODE: |
3205 case TEXT_NODE: | 3188 case TEXT_NODE: |
3206 exceptionState.throwDOMException(HierarchyRequestError, "Nodes o
f type '" + newChild.nodeName() + | 3189 exceptionState.throwDOMException(HierarchyRequestError, "Nodes o
f type '" + newChild.nodeName() + |
3207 "' may not be inserted inside nodes of type '#document'."); | 3190 "' may not be inserted inside nodes of type '#document'."); |
3208 return false; | 3191 return false; |
3209 case COMMENT_NODE: | 3192 case COMMENT_NODE: |
3210 case PROCESSING_INSTRUCTION_NODE: | 3193 case PROCESSING_INSTRUCTION_NODE: |
3211 break; | 3194 break; |
3212 case DOCUMENT_TYPE_NODE: | 3195 case DOCUMENT_TYPE_NODE: |
3213 numDoctypes++; | 3196 numDoctypes++; |
3214 break; | 3197 break; |
3215 case ELEMENT_NODE: | 3198 case ELEMENT_NODE: |
3216 numElements++; | 3199 numElements++; |
3217 break; | 3200 break; |
3218 } | 3201 } |
3219 } | 3202 } |
3220 } else { | 3203 } else { |
3221 switch (newChild.nodeType()) { | 3204 switch (newChild.nodeType()) { |
3222 case ATTRIBUTE_NODE: | 3205 case ATTRIBUTE_NODE: |
3223 case CDATA_SECTION_NODE: | |
3224 case DOCUMENT_FRAGMENT_NODE: | 3206 case DOCUMENT_FRAGMENT_NODE: |
3225 case DOCUMENT_NODE: | 3207 case DOCUMENT_NODE: |
3226 case TEXT_NODE: | 3208 case TEXT_NODE: |
3227 exceptionState.throwDOMException(HierarchyRequestError, "Nodes of ty
pe '" + newChild.nodeName() + | 3209 exceptionState.throwDOMException(HierarchyRequestError, "Nodes of ty
pe '" + newChild.nodeName() + |
3228 "' may not be inserted inside nodes of type '#document'."); | 3210 "' may not be inserted inside nodes of type '#document'."); |
3229 return false; | 3211 return false; |
3230 case COMMENT_NODE: | 3212 case COMMENT_NODE: |
3231 case PROCESSING_INSTRUCTION_NODE: | 3213 case PROCESSING_INSTRUCTION_NODE: |
3232 return true; | 3214 return true; |
3233 case DOCUMENT_TYPE_NODE: | 3215 case DOCUMENT_TYPE_NODE: |
(...skipping 2539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5773 #ifndef NDEBUG | 5755 #ifndef NDEBUG |
5774 using namespace blink; | 5756 using namespace blink; |
5775 void showLiveDocumentInstances() | 5757 void showLiveDocumentInstances() |
5776 { | 5758 { |
5777 WeakDocumentSet& set = liveDocumentSet(); | 5759 WeakDocumentSet& set = liveDocumentSet(); |
5778 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); | 5760 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); |
5779 for (Document* document : set) | 5761 for (Document* document : set) |
5780 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().str
ing().utf8().data()); | 5762 fprintf(stderr, "- Document %p URL: %s\n", document, document->url().str
ing().utf8().data()); |
5781 } | 5763 } |
5782 #endif | 5764 #endif |
OLD | NEW |