Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(247)

Side by Side Diff: Source/core/dom/CharacterData.h

Issue 16379002: inline WebCore::Node::Node constructor more safely (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | Source/core/dom/ContainerNode.h » ('j') | Source/core/dom/ContainerNode.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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, 2008, 2009 Apple Inc. All rights reserv ed. 4 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Apple Inc. All rights reserv ed.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
11 * This library is distributed in the hope that it will be useful, 11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details. 14 * Library General Public License for more details.
15 * 15 *
16 * You should have received a copy of the GNU Library General Public License 16 * You should have received a copy of the GNU Library General Public License
17 * along with this library; see the file COPYING.LIB. If not, write to 17 * along with this library; see the file COPYING.LIB. If not, write to
18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA. 19 * Boston, MA 02110-1301, USA.
20 * 20 *
21 */ 21 */
22 22
23 #ifndef CharacterData_h 23 #ifndef CharacterData_h
24 #define CharacterData_h 24 #define CharacterData_h
25 25
26 #include "core/dom/Node.h" 26 #include "core/dom/Node.h"
27 #include "core/dom/TreeScope.h"
adamk 2013/06/04 23:08:08 No need for an #include here
Mostyn Bramley-Moore 2013/06/04 23:46:07 Done.
27 #include <wtf/text/WTFString.h> 28 #include <wtf/text/WTFString.h>
28 29
29 namespace WebCore { 30 namespace WebCore {
30 31
31 class CharacterData : public Node { 32 class CharacterData : public Node {
32 public: 33 public:
33 String data() const { return m_data; } 34 String data() const { return m_data; }
34 void setData(const String&, ExceptionCode&); 35 void setData(const String&, ExceptionCode&);
35 unsigned length() const { return m_data.length(); } 36 unsigned length() const { return m_data.length(); }
36 String substringData(unsigned offset, unsigned count, ExceptionCode&); 37 String substringData(unsigned offset, unsigned count, ExceptionCode&);
37 void appendData(const String&, ExceptionCode&); 38 void appendData(const String&, ExceptionCode&);
38 void insertData(unsigned offset, const String&, ExceptionCode&); 39 void insertData(unsigned offset, const String&, ExceptionCode&);
39 void deleteData(unsigned offset, unsigned count, ExceptionCode&); 40 void deleteData(unsigned offset, unsigned count, ExceptionCode&);
40 void replaceData(unsigned offset, unsigned count, const String&, ExceptionCo de&); 41 void replaceData(unsigned offset, unsigned count, const String&, ExceptionCo de&);
41 42
42 bool containsOnlyWhitespace() const; 43 bool containsOnlyWhitespace() const;
43 44
44 StringImpl* dataImpl() { return m_data.impl(); } 45 StringImpl* dataImpl() { return m_data.impl(); }
45 46
46 // Like appendData, but optimized for the parser (e.g., no mutation events). 47 // Like appendData, but optimized for the parser (e.g., no mutation events).
47 // Returns how much could be added before length limit was met. 48 // Returns how much could be added before length limit was met.
48 unsigned parserAppendData(const String& string, unsigned offset, unsigned le ngthLimit); 49 unsigned parserAppendData(const String& string, unsigned offset, unsigned le ngthLimit);
49 50
50 virtual void reportMemoryUsage(MemoryObjectInfo*) const; 51 virtual void reportMemoryUsage(MemoryObjectInfo*) const;
51 52
52 protected: 53 protected:
53 CharacterData(Document* document, const String& text, ConstructionType type) 54 CharacterData(TreeScope* tree_scope, const String& text, ConstructionType ty pe)
adamk 2013/06/04 23:08:08 tree_scope -> treeScope
Mostyn Bramley-Moore 2013/06/04 23:46:07 Done.
54 : Node(document, type) 55 : Node(tree_scope, type)
55 , m_data(!text.isNull() ? text : emptyString()) 56 , m_data(!text.isNull() ? text : emptyString())
56 { 57 {
57 ASSERT(type == CreateOther || type == CreateText || type == CreateEditin gText); 58 ASSERT(type == CreateOther || type == CreateText || type == CreateEditin gText);
58 ScriptWrappable::init(this); 59 ScriptWrappable::init(this);
59 } 60 }
60 61
61 void setDataWithoutUpdate(const String& data) 62 void setDataWithoutUpdate(const String& data)
62 { 63 {
63 ASSERT(!data.isNull()); 64 ASSERT(!data.isNull());
64 m_data = data; 65 m_data = data;
65 } 66 }
66 void dispatchModifiedEvent(const String& oldValue); 67 void dispatchModifiedEvent(const String& oldValue);
67 68
68 private: 69 private:
69 virtual String nodeValue() const OVERRIDE FINAL; 70 virtual String nodeValue() const OVERRIDE FINAL;
70 virtual void setNodeValue(const String&, ExceptionCode&) OVERRIDE FINAL; 71 virtual void setNodeValue(const String&, ExceptionCode&) OVERRIDE FINAL;
71 virtual bool isCharacterDataNode() const OVERRIDE FINAL { return true; } 72 virtual bool isCharacterDataNode() const OVERRIDE FINAL { return true; }
72 virtual int maxCharacterOffset() const OVERRIDE FINAL; 73 virtual int maxCharacterOffset() const OVERRIDE FINAL;
73 virtual bool offsetInCharacters() const OVERRIDE FINAL; 74 virtual bool offsetInCharacters() const OVERRIDE FINAL;
74 void setDataAndUpdate(const String&, unsigned offsetOfReplacedData, unsigned oldLength, unsigned newLength); 75 void setDataAndUpdate(const String&, unsigned offsetOfReplacedData, unsigned oldLength, unsigned newLength);
75 void checkCharDataOperation(unsigned offset, ExceptionCode&); 76 void checkCharDataOperation(unsigned offset, ExceptionCode&);
76 77
77 String m_data; 78 String m_data;
78 }; 79 };
79 80
80 } // namespace WebCore 81 } // namespace WebCore
81 82
82 #endif // CharacterData_h 83 #endif // CharacterData_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/dom/ContainerNode.h » ('j') | Source/core/dom/ContainerNode.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698