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

Side by Side Diff: Source/core/editing/VisibleSelection.cpp

Issue 170603003: Use nullptr_t for RefPtr, PassRefPtr and RawPtr. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Final rebase Created 6 years, 10 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/editing/VisiblePosition.cpp ('k') | Source/core/editing/htmlediting.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 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. All rights reserved. 2 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 125
126 void VisibleSelection::setExtent(const VisiblePosition& visiblePosition) 126 void VisibleSelection::setExtent(const VisiblePosition& visiblePosition)
127 { 127 {
128 m_extent = visiblePosition.deepEquivalent(); 128 m_extent = visiblePosition.deepEquivalent();
129 validate(); 129 validate();
130 } 130 }
131 131
132 PassRefPtr<Range> VisibleSelection::firstRange() const 132 PassRefPtr<Range> VisibleSelection::firstRange() const
133 { 133 {
134 if (isNone()) 134 if (isNone())
135 return 0; 135 return nullptr;
136 Position start = m_start.parentAnchoredEquivalent(); 136 Position start = m_start.parentAnchoredEquivalent();
137 Position end = m_end.parentAnchoredEquivalent(); 137 Position end = m_end.parentAnchoredEquivalent();
138 return Range::create(*start.document(), start, end); 138 return Range::create(*start.document(), start, end);
139 } 139 }
140 140
141 PassRefPtr<Range> VisibleSelection::toNormalizedRange() const 141 PassRefPtr<Range> VisibleSelection::toNormalizedRange() const
142 { 142 {
143 if (isNone()) 143 if (isNone())
144 return 0; 144 return nullptr;
145 145
146 // Make sure we have an updated layout since this function is called 146 // Make sure we have an updated layout since this function is called
147 // in the course of running edit commands which modify the DOM. 147 // in the course of running edit commands which modify the DOM.
148 // Failing to call this can result in equivalentXXXPosition calls returning 148 // Failing to call this can result in equivalentXXXPosition calls returning
149 // incorrect results. 149 // incorrect results.
150 m_start.document()->updateLayout(); 150 m_start.document()->updateLayout();
151 151
152 // Check again, because updating layout can clear the selection. 152 // Check again, because updating layout can clear the selection.
153 if (isNone()) 153 if (isNone())
154 return 0; 154 return nullptr;
155 155
156 Position s, e; 156 Position s, e;
157 if (isCaret()) { 157 if (isCaret()) {
158 // If the selection is a caret, move the range start upstream. This help s us match 158 // If the selection is a caret, move the range start upstream. This help s us match
159 // the conventions of text editors tested, which make style determinatio ns based 159 // the conventions of text editors tested, which make style determinatio ns based
160 // on the character before the caret, if any. 160 // on the character before the caret, if any.
161 s = m_start.upstream().parentAnchoredEquivalent(); 161 s = m_start.upstream().parentAnchoredEquivalent();
162 e = s; 162 e = s;
163 } else { 163 } else {
164 // If the selection is a range, select the minimum range that encompasse s the selection. 164 // If the selection is a range, select the minimum range that encompasse s the selection.
(...skipping 15 matching lines...) Expand all
180 // The end can wind up before the start if collapsed whitespace is t he only thing selected. 180 // The end can wind up before the start if collapsed whitespace is t he only thing selected.
181 Position tmp = s; 181 Position tmp = s;
182 s = e; 182 s = e;
183 e = tmp; 183 e = tmp;
184 } 184 }
185 s = s.parentAnchoredEquivalent(); 185 s = s.parentAnchoredEquivalent();
186 e = e.parentAnchoredEquivalent(); 186 e = e.parentAnchoredEquivalent();
187 } 187 }
188 188
189 if (!s.containerNode() || !e.containerNode()) 189 if (!s.containerNode() || !e.containerNode())
190 return 0; 190 return nullptr;
191 191
192 // VisibleSelections are supposed to always be valid. This constructor will ASSERT 192 // VisibleSelections are supposed to always be valid. This constructor will ASSERT
193 // if a valid range could not be created, which is fine for this callsite. 193 // if a valid range could not be created, which is fine for this callsite.
194 return Range::create(*s.document(), s, e); 194 return Range::create(*s.document(), s, e);
195 } 195 }
196 196
197 bool VisibleSelection::expandUsingGranularity(TextGranularity granularity) 197 bool VisibleSelection::expandUsingGranularity(TextGranularity granularity)
198 { 198 {
199 if (isNone()) 199 if (isNone())
200 return false; 200 return false;
201 201
202 validate(granularity); 202 validate(granularity);
203 return true; 203 return true;
204 } 204 }
205 205
206 static PassRefPtr<Range> makeSearchRange(const Position& pos) 206 static PassRefPtr<Range> makeSearchRange(const Position& pos)
207 { 207 {
208 Node* n = pos.deprecatedNode(); 208 Node* n = pos.deprecatedNode();
209 if (!n) 209 if (!n)
210 return 0; 210 return nullptr;
211 Document& d = n->document(); 211 Document& d = n->document();
212 Node* de = d.documentElement(); 212 Node* de = d.documentElement();
213 if (!de) 213 if (!de)
214 return 0; 214 return nullptr;
215 Node* boundary = n->enclosingBlockFlowElement(); 215 Node* boundary = n->enclosingBlockFlowElement();
216 if (!boundary) 216 if (!boundary)
217 return 0; 217 return nullptr;
218 218
219 RefPtr<Range> searchRange(Range::create(d)); 219 RefPtr<Range> searchRange(Range::create(d));
220 TrackExceptionState exceptionState; 220 TrackExceptionState exceptionState;
221 221
222 Position start(pos.parentAnchoredEquivalent()); 222 Position start(pos.parentAnchoredEquivalent());
223 searchRange->selectNodeContents(boundary, exceptionState); 223 searchRange->selectNodeContents(boundary, exceptionState);
224 searchRange->setStart(start.containerNode(), start.offsetInContainerNode(), exceptionState); 224 searchRange->setStart(start.containerNode(), start.offsetInContainerNode(), exceptionState);
225 225
226 ASSERT(!exceptionState.hadException()); 226 ASSERT(!exceptionState.hadException());
227 if (exceptionState.hadException()) 227 if (exceptionState.hadException())
228 return 0; 228 return nullptr;
229 229
230 return searchRange.release(); 230 return searchRange.release();
231 } 231 }
232 232
233 void VisibleSelection::appendTrailingWhitespace() 233 void VisibleSelection::appendTrailingWhitespace()
234 { 234 {
235 RefPtr<Range> searchRange = makeSearchRange(m_end); 235 RefPtr<Range> searchRange = makeSearchRange(m_end);
236 if (!searchRange) 236 if (!searchRange)
237 return; 237 return;
238 238
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
734 sel.showTreeForThis(); 734 sel.showTreeForThis();
735 } 735 }
736 736
737 void showTree(const WebCore::VisibleSelection* sel) 737 void showTree(const WebCore::VisibleSelection* sel)
738 { 738 {
739 if (sel) 739 if (sel)
740 sel->showTreeForThis(); 740 sel->showTreeForThis();
741 } 741 }
742 742
743 #endif 743 #endif
OLDNEW
« no previous file with comments | « Source/core/editing/VisiblePosition.cpp ('k') | Source/core/editing/htmlediting.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698