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

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

Issue 753573003: Copy and paste sometimes removes spaces between words. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years 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
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 29 matching lines...) Expand all
40 enum TextIteratorBehavior { 40 enum TextIteratorBehavior {
41 TextIteratorDefaultBehavior = 0, 41 TextIteratorDefaultBehavior = 0,
42 TextIteratorEmitsCharactersBetweenAllVisiblePositions = 1 << 0, 42 TextIteratorEmitsCharactersBetweenAllVisiblePositions = 1 << 0,
43 TextIteratorEntersTextControls = 1 << 1, 43 TextIteratorEntersTextControls = 1 << 1,
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 TextIteratorDoesNotBreakAtReplacedElement = 1 << 8 50 TextIteratorDoesNotBreakAtReplacedElement = 1 << 8,
51 TextIteratorBehavesAsIfNodesFollowing = 1 << 9,
51 }; 52 };
52 typedef unsigned TextIteratorBehaviorFlags; 53 typedef unsigned TextIteratorBehaviorFlags;
53 54
54 String plainText(const Range*, TextIteratorBehaviorFlags = TextIteratorDefaultBe havior); 55 String plainText(const Range*, TextIteratorBehaviorFlags = TextIteratorDefaultBe havior);
55 String plainText(const Position& start, const Position& end, TextIteratorBehavio rFlags = TextIteratorDefaultBehavior); 56 String plainText(const Position& start, const Position& end, TextIteratorBehavio rFlags = TextIteratorDefaultBehavior);
56 PassRefPtrWillBeRawPtr<Range> findPlainText(const Range*, const String&, FindOpt ions); 57 PassRefPtrWillBeRawPtr<Range> findPlainText(const Range*, const String&, FindOpt ions);
57 void findPlainText(const Position& inputStart, const Position& inputEnd, const S tring&, FindOptions, Position& resultStart, Position& resultEnd); 58 void findPlainText(const Position& inputStart, const Position& inputEnd, const S tring&, FindOptions, Position& resultStart, Position& resultEnd);
58 59
59 class BitStack { 60 class BitStack {
60 public: 61 public:
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 // Used when m_stopsOnFormControls is set to determine if the iterator shoul d keep advancing. 227 // Used when m_stopsOnFormControls is set to determine if the iterator shoul d keep advancing.
227 bool m_shouldStop; 228 bool m_shouldStop;
228 229
229 bool m_emitsImageAltText; 230 bool m_emitsImageAltText;
230 231
231 bool m_entersAuthorShadowRoots; 232 bool m_entersAuthorShadowRoots;
232 233
233 bool m_emitsObjectReplacementCharacter; 234 bool m_emitsObjectReplacementCharacter;
234 235
235 bool m_breaksAtReplacedElement; 236 bool m_breaksAtReplacedElement;
237
238 bool m_hasNodesFollowing;
236 }; 239 };
237 240
238 // Iterates through the DOM range, returning all the text, and 0-length boundari es 241 // Iterates through the DOM range, returning all the text, and 0-length boundari es
239 // at points where replaced elements break up the text flow. The text comes back in 242 // at points where replaced elements break up the text flow. The text comes back in
240 // chunks so as to optimize for performance of the iteration. 243 // chunks so as to optimize for performance of the iteration.
241 class SimplifiedBackwardsTextIterator { 244 class SimplifiedBackwardsTextIterator {
242 STACK_ALLOCATED(); 245 STACK_ALLOCATED();
243 public: 246 public:
244 explicit SimplifiedBackwardsTextIterator(const Range*, TextIteratorBehaviorF lags = TextIteratorDefaultBehavior); 247 explicit SimplifiedBackwardsTextIterator(const Range*, TextIteratorBehaviorF lags = TextIteratorDefaultBehavior);
245 SimplifiedBackwardsTextIterator(const Position& start, const Position& end, TextIteratorBehaviorFlags = TextIteratorDefaultBehavior); 248 SimplifiedBackwardsTextIterator(const Position& start, const Position& end, TextIteratorBehaviorFlags = TextIteratorDefaultBehavior);
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 private: 405 private:
403 Vector<UChar> m_buffer; 406 Vector<UChar> m_buffer;
404 // Did we have to look ahead in the textIterator to confirm the current chun k? 407 // Did we have to look ahead in the textIterator to confirm the current chun k?
405 bool m_didLookAhead; 408 bool m_didLookAhead;
406 TextIterator m_textIterator; 409 TextIterator m_textIterator;
407 }; 410 };
408 411
409 } 412 }
410 413
411 #endif 414 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698