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

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

Issue 23467007: Have Range constructor take a Document reference in argument (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/dom/Node.cpp ('k') | Source/core/dom/Range.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * (C) 1999 Lars Knoll (knoll@kde.org) 2 * (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Gunnstein Lye (gunnstein@netcom.no) 3 * (C) 2000 Gunnstein Lye (gunnstein@netcom.no)
4 * (C) 2000 Frederik Holljen (frederik.holljen@hig.no) 4 * (C) 2000 Frederik Holljen (frederik.holljen@hig.no)
5 * (C) 2001 Peter Kelly (pmk@post.com) 5 * (C) 2001 Peter Kelly (pmk@post.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
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
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 class Document; 42 class Document;
43 class DocumentFragment; 43 class DocumentFragment;
44 class ExceptionState; 44 class ExceptionState;
45 class FloatQuad; 45 class FloatQuad;
46 class Node; 46 class Node;
47 class NodeWithIndex; 47 class NodeWithIndex;
48 class Text; 48 class Text;
49 49
50 class Range : public RefCounted<Range>, public ScriptWrappable { 50 class Range : public RefCounted<Range>, public ScriptWrappable {
51 public: 51 public:
52 static PassRefPtr<Range> create(Document*); 52 static PassRefPtr<Range> create(Document&);
53 static PassRefPtr<Range> create(Document*, Node* startContainer, int startOf fset, Node* endContainer, int endOffset); 53 static PassRefPtr<Range> create(Document&, Node* startContainer, int startOf fset, Node* endContainer, int endOffset);
54 static PassRefPtr<Range> create(Document*, const Position&, const Position&) ; 54 static PassRefPtr<Range> create(Document&, const Position&, const Position&) ;
55 ~Range(); 55 ~Range();
56 56
57 Document* ownerDocument() const { return m_ownerDocument.get(); } 57 Document& ownerDocument() const { ASSERT(m_ownerDocument); return *m_ownerDo cument.get(); }
58 Node* startContainer() const { return m_start.container(); } 58 Node* startContainer() const { return m_start.container(); }
59 int startOffset() const { return m_start.offset(); } 59 int startOffset() const { return m_start.offset(); }
60 Node* endContainer() const { return m_end.container(); } 60 Node* endContainer() const { return m_end.container(); }
61 int endOffset() const { return m_end.offset(); } 61 int endOffset() const { return m_end.offset(); }
62 62
63 Node* startContainer(ExceptionState&) const; 63 Node* startContainer(ExceptionState&) const;
64 int startOffset(ExceptionState&) const; 64 int startOffset(ExceptionState&) const;
65 Node* endContainer(ExceptionState&) const; 65 Node* endContainer(ExceptionState&) const;
66 int endOffset(ExceptionState&) const; 66 int endOffset(ExceptionState&) const;
67 bool collapsed(ExceptionState&) const; 67 bool collapsed(ExceptionState&) const;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 void expand(const String&, ExceptionState&); 143 void expand(const String&, ExceptionState&);
144 144
145 PassRefPtr<ClientRectList> getClientRects() const; 145 PassRefPtr<ClientRectList> getClientRects() const;
146 PassRefPtr<ClientRect> getBoundingClientRect() const; 146 PassRefPtr<ClientRect> getBoundingClientRect() const;
147 147
148 #ifndef NDEBUG 148 #ifndef NDEBUG
149 void formatForDebugger(char* buffer, unsigned length) const; 149 void formatForDebugger(char* buffer, unsigned length) const;
150 #endif 150 #endif
151 151
152 private: 152 private:
153 explicit Range(Document*); 153 explicit Range(Document&);
154 Range(Document*, Node* startContainer, int startOffset, Node* endContainer, int endOffset); 154 Range(Document&, Node* startContainer, int startOffset, Node* endContainer, int endOffset);
155 155
156 void setDocument(Document*); 156 void setDocument(Document&);
157 157
158 Node* checkNodeWOffset(Node*, int offset, ExceptionState&) const; 158 Node* checkNodeWOffset(Node*, int offset, ExceptionState&) const;
159 void checkNodeBA(Node*, ExceptionState&, const char* methodName) const; 159 void checkNodeBA(Node*, ExceptionState&, const char* methodName) const;
160 void checkDeleteExtract(ExceptionState&); 160 void checkDeleteExtract(ExceptionState&);
161 int maxStartOffset() const; 161 int maxStartOffset() const;
162 int maxEndOffset() const; 162 int maxEndOffset() const;
163 163
164 enum ActionType { DELETE_CONTENTS, EXTRACT_CONTENTS, CLONE_CONTENTS }; 164 enum ActionType { DELETE_CONTENTS, EXTRACT_CONTENTS, CLONE_CONTENTS };
165 PassRefPtr<DocumentFragment> processContents(ActionType, ExceptionState&); 165 PassRefPtr<DocumentFragment> processContents(ActionType, ExceptionState&);
166 static PassRefPtr<Node> processContentsBetweenOffsets(ActionType, PassRefPtr <DocumentFragment>, Node*, unsigned startOffset, unsigned endOffset, ExceptionSt ate&); 166 static PassRefPtr<Node> processContentsBetweenOffsets(ActionType, PassRefPtr <DocumentFragment>, Node*, unsigned startOffset, unsigned endOffset, ExceptionSt ate&);
167 static void processNodes(ActionType, Vector<RefPtr<Node> >&, PassRefPtr<Node > oldContainer, PassRefPtr<Node> newContainer, ExceptionState&); 167 static void processNodes(ActionType, Vector<RefPtr<Node> >&, PassRefPtr<Node > oldContainer, PassRefPtr<Node> newContainer, ExceptionState&);
168 enum ContentsProcessDirection { ProcessContentsForward, ProcessContentsBackw ard }; 168 enum ContentsProcessDirection { ProcessContentsForward, ProcessContentsBackw ard };
169 static PassRefPtr<Node> processAncestorsAndTheirSiblings(ActionType, Node* c ontainer, ContentsProcessDirection, PassRefPtr<Node> clonedContainer, Node* comm onRoot, ExceptionState&); 169 static PassRefPtr<Node> processAncestorsAndTheirSiblings(ActionType, Node* c ontainer, ContentsProcessDirection, PassRefPtr<Node> clonedContainer, Node* comm onRoot, ExceptionState&);
170 170
171 RefPtr<Document> m_ownerDocument; 171 RefPtr<Document> m_ownerDocument; // Cannot be null.
do-not-use 2013/09/03 15:43:22 BTW, a Reference-flavoured smart pointer class wou
172 RangeBoundaryPoint m_start; 172 RangeBoundaryPoint m_start;
173 RangeBoundaryPoint m_end; 173 RangeBoundaryPoint m_end;
174 }; 174 };
175 175
176 PassRefPtr<Range> rangeOfContents(Node*); 176 PassRefPtr<Range> rangeOfContents(Node*);
177 177
178 bool areRangesEqual(const Range*, const Range*); 178 bool areRangesEqual(const Range*, const Range*);
179 179
180 } // namespace 180 } // namespace
181 181
182 #ifndef NDEBUG 182 #ifndef NDEBUG
183 // Outside the WebCore namespace for ease of invocation from gdb. 183 // Outside the WebCore namespace for ease of invocation from gdb.
184 void showTree(const WebCore::Range*); 184 void showTree(const WebCore::Range*);
185 #endif 185 #endif
186 186
187 #endif 187 #endif
OLDNEW
« no previous file with comments | « Source/core/dom/Node.cpp ('k') | Source/core/dom/Range.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698