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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights | 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights |
5 * reserved. | 5 * reserved. |
6 * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org> | 6 * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org> |
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 |
11 * version 2 of the License, or (at your option) any later version. | 11 * version 2 of the License, or (at your option) any later version. |
12 * | 12 * |
13 * This library is distributed in the hope that it will be useful, | 13 * This library is distributed in the hope that it will be useful, |
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
16 * Library General Public License for more details. | 16 * Library General Public License for more details. |
17 * | 17 * |
18 * You should have received a copy of the GNU Library General Public License | 18 * You should have received a copy of the GNU Library General Public License |
19 * along with this library; see the file COPYING.LIB. If not, write to | 19 * along with this library; see the file COPYING.LIB. If not, write to |
20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
21 * Boston, MA 02110-1301, USA. | 21 * Boston, MA 02110-1301, USA. |
22 * | 22 * |
23 */ | 23 */ |
24 | 24 |
25 #ifndef HTMLScriptElement_h | 25 #ifndef HTMLScriptElement_h |
26 #define HTMLScriptElement_h | 26 #define HTMLScriptElement_h |
27 | 27 |
28 #include "core/CoreExport.h" | 28 #include "core/CoreExport.h" |
| 29 #include "core/dom/ScriptElementBase.h" |
29 #include "core/dom/ScriptLoader.h" | 30 #include "core/dom/ScriptLoader.h" |
30 #include "core/dom/ScriptLoaderClient.h" | |
31 #include "core/html/HTMLElement.h" | 31 #include "core/html/HTMLElement.h" |
32 | 32 |
33 namespace blink { | 33 namespace blink { |
34 | 34 |
35 class CORE_EXPORT HTMLScriptElement final : public HTMLElement, | 35 class CORE_EXPORT HTMLScriptElement final : public HTMLElement, |
36 public ScriptLoaderClient { | 36 public ScriptElementBase { |
37 DEFINE_WRAPPERTYPEINFO(); | 37 DEFINE_WRAPPERTYPEINFO(); |
| 38 USING_GARBAGE_COLLECTED_MIXIN(HTMLScriptElement); |
38 | 39 |
39 public: | 40 public: |
40 static HTMLScriptElement* create(Document&, | 41 static HTMLScriptElement* create(Document&, |
41 bool wasInsertedByParser, | 42 bool wasInsertedByParser, |
42 bool alreadyStarted = false, | 43 bool alreadyStarted = false, |
43 bool createdDuringDocumentWrite = false); | 44 bool createdDuringDocumentWrite = false); |
44 | 45 |
45 String text() { return textFromChildren(); } | 46 String text() { return textFromChildren(); } |
46 void setText(const String&); | 47 void setText(const String&); |
47 | 48 |
48 KURL src() const; | 49 KURL src() const; |
49 | 50 |
50 void setAsync(bool); | 51 void setAsync(bool); |
51 bool async() const; | 52 bool async() const; |
52 | 53 |
53 ScriptLoader* loader() const { return m_loader.get(); } | 54 ScriptLoader* loader() const { return m_loader.get(); } |
54 | 55 |
| 56 bool isScriptElement() const override { return true; } |
| 57 Document& document() const override; |
| 58 |
55 DECLARE_VIRTUAL_TRACE(); | 59 DECLARE_VIRTUAL_TRACE(); |
56 | 60 |
57 private: | 61 private: |
58 HTMLScriptElement(Document&, | 62 HTMLScriptElement(Document&, |
59 bool wasInsertedByParser, | 63 bool wasInsertedByParser, |
60 bool alreadyStarted, | 64 bool alreadyStarted, |
61 bool createdDuringDocumentWrite); | 65 bool createdDuringDocumentWrite); |
62 | 66 |
63 void parseAttribute(const AttributeModificationParams&) override; | 67 void parseAttribute(const AttributeModificationParams&) override; |
64 InsertionNotificationRequest insertedInto(ContainerNode*) override; | 68 InsertionNotificationRequest insertedInto(ContainerNode*) override; |
65 void didNotifySubtreeInsertionsToDocument() override; | 69 void didNotifySubtreeInsertionsToDocument() override; |
66 void childrenChanged(const ChildrenChange&) override; | 70 void childrenChanged(const ChildrenChange&) override; |
67 void didMoveToNewDocument(Document& oldDocument) override; | 71 void didMoveToNewDocument(Document& oldDocument) override; |
68 | 72 |
69 bool isURLAttribute(const Attribute&) const override; | 73 bool isURLAttribute(const Attribute&) const override; |
70 bool hasLegalLinkAttribute(const QualifiedName&) const override; | 74 bool hasLegalLinkAttribute(const QualifiedName&) const override; |
71 const QualifiedName& subResourceAttributeName() const override; | 75 const QualifiedName& subResourceAttributeName() const override; |
72 | 76 |
| 77 // ScriptElementBase overrides: |
73 String sourceAttributeValue() const override; | 78 String sourceAttributeValue() const override; |
74 String charsetAttributeValue() const override; | 79 String charsetAttributeValue() const override; |
75 String typeAttributeValue() const override; | 80 String typeAttributeValue() const override; |
76 String languageAttributeValue() const override; | 81 String languageAttributeValue() const override; |
77 String forAttributeValue() const override; | 82 String forAttributeValue() const override; |
78 String eventAttributeValue() const override; | 83 String eventAttributeValue() const override; |
| 84 String crossOriginAttributeValue() const override; |
| 85 String integrityAttributeValue() const override; |
| 86 String textFromChildren() override; |
| 87 String textContent() const override; |
79 bool asyncAttributeValue() const override; | 88 bool asyncAttributeValue() const override; |
80 bool deferAttributeValue() const override; | 89 bool deferAttributeValue() const override; |
81 bool hasSourceAttribute() const override; | 90 bool hasSourceAttribute() const override; |
82 | 91 bool isConnected() const override; |
| 92 bool hasChildren() const override; |
| 93 bool isNonceableElement() const override; |
| 94 bool allowInlineScriptForCSP(const AtomicString& nonce, |
| 95 const WTF::OrdinalNumber&, |
| 96 const String& scriptContent) override; |
| 97 AtomicString initiatorName() const override; |
83 void dispatchLoadEvent() override; | 98 void dispatchLoadEvent() override; |
| 99 void dispatchErrorEvent() override; |
| 100 void setScriptElementForBinding( |
| 101 HTMLScriptElementOrSVGScriptElement&) override; |
84 | 102 |
85 Element* cloneElementWithoutAttributesAndChildren() override; | 103 Element* cloneElementWithoutAttributesAndChildren() override; |
86 | |
87 Member<ScriptLoader> m_loader; | |
88 }; | 104 }; |
89 | 105 |
90 } // namespace blink | 106 } // namespace blink |
91 | 107 |
92 #endif // HTMLScriptElement_h | 108 #endif // HTMLScriptElement_h |
OLD | NEW |