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

Side by Side Diff: Source/core/editing/TextIterator.h

Issue 576073003: Removal of more temporary Range objects. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix build; accidentally removed .get() call Created 6 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/editing/TextCheckingHelper.cpp ('k') | Source/core/editing/TextIterator.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, 2006, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2006, 2009 Apple 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 TextIteratorIgnoresStyleVisibility = 1 << 2, 44 TextIteratorIgnoresStyleVisibility = 1 << 2,
45 TextIteratorEmitsOriginalText = 1 << 3, 45 TextIteratorEmitsOriginalText = 1 << 3,
46 TextIteratorStopsOnFormControls = 1 << 4, 46 TextIteratorStopsOnFormControls = 1 << 4,
47 TextIteratorEmitsImageAltText = 1 << 5, 47 TextIteratorEmitsImageAltText = 1 << 5,
48 TextIteratorEntersAuthorShadowRoots = 1 << 6, 48 TextIteratorEntersAuthorShadowRoots = 1 << 6,
49 TextIteratorEmitsObjectReplacementCharacter = 1 << 7 49 TextIteratorEmitsObjectReplacementCharacter = 1 << 7
50 }; 50 };
51 typedef unsigned TextIteratorBehaviorFlags; 51 typedef unsigned TextIteratorBehaviorFlags;
52 52
53 String plainText(const Range*, TextIteratorBehaviorFlags = TextIteratorDefaultBe havior); 53 String plainText(const Range*, TextIteratorBehaviorFlags = TextIteratorDefaultBe havior);
54 String plainText(const Position& start, const Position& end, TextIteratorBehavio rFlags = TextIteratorDefaultBehavior);
54 PassRefPtrWillBeRawPtr<Range> findPlainText(const Range*, const String&, FindOpt ions); 55 PassRefPtrWillBeRawPtr<Range> findPlainText(const Range*, const String&, FindOpt ions);
55 void findPlainText(const Position& inputStart, const Position& inputEnd, const S tring&, FindOptions, Position& resultStart, Position& resultEnd); 56 void findPlainText(const Position& inputStart, const Position& inputEnd, const S tring&, FindOptions, Position& resultStart, Position& resultEnd);
56 57
57 class BitStack { 58 class BitStack {
58 public: 59 public:
59 BitStack(); 60 BitStack();
60 ~BitStack(); 61 ~BitStack();
61 62
62 void push(bool); 63 void push(bool);
63 void pop(); 64 void pop();
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 int endOffset() const; 118 int endOffset() const;
118 Position startPosition() const; 119 Position startPosition() const;
119 Position endPosition() const; 120 Position endPosition() const;
120 121
121 // Computes the length of the given range using a text iterator. The default 122 // Computes the length of the given range using a text iterator. The default
122 // iteration behavior is to always emit object replacement characters for 123 // iteration behavior is to always emit object replacement characters for
123 // replaced elements. When |forSelectionPreservation| is set to true, it 124 // replaced elements. When |forSelectionPreservation| is set to true, it
124 // also emits spaces for other non-text nodes using the 125 // also emits spaces for other non-text nodes using the
125 // |TextIteratorEmitsCharactersBetweenAllVisiblePosition| mode. 126 // |TextIteratorEmitsCharactersBetweenAllVisiblePosition| mode.
126 static int rangeLength(const Range*, bool forSelectionPreservation = false); 127 static int rangeLength(const Range*, bool forSelectionPreservation = false);
128 static int rangeLength(const Position& start, const Position& end, bool forS electionPreservation = false);
127 static PassRefPtrWillBeRawPtr<Range> subrange(Range* entireRange, int charac terOffset, int characterCount); 129 static PassRefPtrWillBeRawPtr<Range> subrange(Range* entireRange, int charac terOffset, int characterCount);
130 static void subrange(Position& start, Position& end, int characterOffset, in t characterCount);
128 131
129 private: 132 private:
130 enum IterationProgress { 133 enum IterationProgress {
131 HandledNone, 134 HandledNone,
132 HandledAuthorShadowRoots, 135 HandledAuthorShadowRoots,
133 HandledUserAgentShadowRoot, 136 HandledUserAgentShadowRoot,
134 HandledNode, 137 HandledNode,
135 HandledChildren 138 HandledChildren
136 }; 139 };
137 140
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 bool m_atBreak; 377 bool m_atBreak;
375 378
376 SimplifiedBackwardsTextIterator m_textIterator; 379 SimplifiedBackwardsTextIterator m_textIterator;
377 }; 380 };
378 381
379 // Very similar to the TextIterator, except that the chunks of text returned are "well behaved", 382 // Very similar to the TextIterator, except that the chunks of text returned are "well behaved",
380 // meaning they never end split up a word. This is useful for spellcheck or (pe rhaps one day) searching. 383 // meaning they never end split up a word. This is useful for spellcheck or (pe rhaps one day) searching.
381 class WordAwareIterator { 384 class WordAwareIterator {
382 STACK_ALLOCATED(); 385 STACK_ALLOCATED();
383 public: 386 public:
384 explicit WordAwareIterator(const Range*); 387 explicit WordAwareIterator(const Position& start, const Position& end);
385 ~WordAwareIterator(); 388 ~WordAwareIterator();
386 389
387 bool atEnd() const { return !m_didLookAhead && m_textIterator.atEnd(); } 390 bool atEnd() const { return !m_didLookAhead && m_textIterator.atEnd(); }
388 void advance(); 391 void advance();
389 392
390 String substring(unsigned position, unsigned length) const; 393 String substring(unsigned position, unsigned length) const;
391 UChar characterAt(unsigned index) const; 394 UChar characterAt(unsigned index) const;
392 int length() const; 395 int length() const;
393 396
394 private: 397 private:
395 Vector<UChar> m_buffer; 398 Vector<UChar> m_buffer;
396 // Did we have to look ahead in the textIterator to confirm the current chun k? 399 // Did we have to look ahead in the textIterator to confirm the current chun k?
397 bool m_didLookAhead; 400 bool m_didLookAhead;
398 TextIterator m_textIterator; 401 TextIterator m_textIterator;
399 }; 402 };
400 403
401 } 404 }
402 405
403 #endif 406 #endif
OLDNEW
« no previous file with comments | « Source/core/editing/TextCheckingHelper.cpp ('k') | Source/core/editing/TextIterator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698