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

Side by Side Diff: Source/core/editing/spellcheck/TextCheckingHelper.cpp

Issue 1317053004: Make VisiblePosition constructor private (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 2015-09-02T12:44:47 Rebase Created 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 misspelling.replacement = client.getAutoCorrectSuggestionForMisspell edWord(String(text + misspelling.location, misspelling.length)); 94 misspelling.replacement = client.getAutoCorrectSuggestionForMisspell edWord(String(text + misspelling.location, misspelling.length));
95 results.append(misspelling); 95 results.append(misspelling);
96 } 96 }
97 97
98 wordStart = wordEnd; 98 wordStart = wordEnd;
99 } 99 }
100 } 100 }
101 101
102 void expandRangeToSentenceBoundary(Range& range) 102 void expandRangeToSentenceBoundary(Range& range)
103 { 103 {
104 range.setStart(startOfSentence(VisiblePosition(range.startPosition())).deepE quivalent()); 104 range.setStart(startOfSentence(createVisiblePosition(range.startPosition())) .deepEquivalent());
105 range.setEnd(endOfSentence(VisiblePosition(range.endPosition())).deepEquival ent()); 105 range.setEnd(endOfSentence(createVisiblePosition(range.endPosition())).deepE quivalent());
106 } 106 }
107 107
108 static PassRefPtrWillBeRawPtr<Range> expandToParagraphBoundary(PassRefPtrWillBeR awPtr<Range> range) 108 static PassRefPtrWillBeRawPtr<Range> expandToParagraphBoundary(PassRefPtrWillBeR awPtr<Range> range)
109 { 109 {
110 RefPtrWillBeRawPtr<Range> paragraphRange = range->cloneRange(); 110 RefPtrWillBeRawPtr<Range> paragraphRange = range->cloneRange();
111 paragraphRange->setStart(startOfParagraph(VisiblePosition(range->startPositi on())).deepEquivalent()); 111 paragraphRange->setStart(startOfParagraph(createVisiblePosition(range->start Position())).deepEquivalent());
112 paragraphRange->setEnd(endOfParagraph(VisiblePosition(range->endPosition())) .deepEquivalent()); 112 paragraphRange->setEnd(endOfParagraph(createVisiblePosition(range->endPositi on())).deepEquivalent());
113 return paragraphRange; 113 return paragraphRange;
114 } 114 }
115 115
116 TextCheckingParagraph::TextCheckingParagraph(PassRefPtrWillBeRawPtr<Range> check ingRange) 116 TextCheckingParagraph::TextCheckingParagraph(PassRefPtrWillBeRawPtr<Range> check ingRange)
117 : m_checkingRange(checkingRange) 117 : m_checkingRange(checkingRange)
118 , m_checkingStart(-1) 118 , m_checkingStart(-1)
119 , m_checkingEnd(-1) 119 , m_checkingEnd(-1)
120 , m_checkingLength(-1) 120 , m_checkingLength(-1)
121 { 121 {
122 } 122 }
123 123
124 TextCheckingParagraph::TextCheckingParagraph(PassRefPtrWillBeRawPtr<Range> check ingRange, PassRefPtrWillBeRawPtr<Range> paragraphRange) 124 TextCheckingParagraph::TextCheckingParagraph(PassRefPtrWillBeRawPtr<Range> check ingRange, PassRefPtrWillBeRawPtr<Range> paragraphRange)
125 : m_checkingRange(checkingRange) 125 : m_checkingRange(checkingRange)
126 , m_paragraphRange(paragraphRange) 126 , m_paragraphRange(paragraphRange)
127 , m_checkingStart(-1) 127 , m_checkingStart(-1)
128 , m_checkingEnd(-1) 128 , m_checkingEnd(-1)
129 , m_checkingLength(-1) 129 , m_checkingLength(-1)
130 { 130 {
131 } 131 }
132 132
133 TextCheckingParagraph::~TextCheckingParagraph() 133 TextCheckingParagraph::~TextCheckingParagraph()
134 { 134 {
135 } 135 }
136 136
137 void TextCheckingParagraph::expandRangeToNextEnd() 137 void TextCheckingParagraph::expandRangeToNextEnd()
138 { 138 {
139 ASSERT(m_checkingRange); 139 ASSERT(m_checkingRange);
140 paragraphRange()->setEnd(endOfParagraph(startOfNextParagraph(VisiblePosition (paragraphRange()->startPosition()))).deepEquivalent()); 140 paragraphRange()->setEnd(endOfParagraph(startOfNextParagraph(createVisiblePo sition(paragraphRange()->startPosition()))).deepEquivalent());
141 invalidateParagraphRangeValues(); 141 invalidateParagraphRangeValues();
142 } 142 }
143 143
144 void TextCheckingParagraph::invalidateParagraphRangeValues() 144 void TextCheckingParagraph::invalidateParagraphRangeValues()
145 { 145 {
146 m_checkingStart = m_checkingEnd = -1; 146 m_checkingStart = m_checkingEnd = -1;
147 m_offsetAsRange = nullptr; 147 m_offsetAsRange = nullptr;
148 m_text = String(); 148 m_text = String();
149 } 149 }
150 150
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 outIsSpelling = true; 306 outIsSpelling = true;
307 outFirstFoundOffset = 0; 307 outFirstFoundOffset = 0;
308 outGrammarDetail.location = -1; 308 outGrammarDetail.location = -1;
309 outGrammarDetail.length = 0; 309 outGrammarDetail.length = 0;
310 outGrammarDetail.guesses.clear(); 310 outGrammarDetail.guesses.clear();
311 outGrammarDetail.userDescription = ""; 311 outGrammarDetail.userDescription = "";
312 312
313 // Expand the search range to encompass entire paragraphs, since text checki ng needs that much context. 313 // Expand the search range to encompass entire paragraphs, since text checki ng needs that much context.
314 // Determine the character offset from the start of the paragraph to the sta rt of the original search range, 314 // Determine the character offset from the start of the paragraph to the sta rt of the original search range,
315 // since we will want to ignore results in this area. 315 // since we will want to ignore results in this area.
316 Position paragraphStart = startOfParagraph(VisiblePosition(m_start)).toParen tAnchoredPosition(); 316 Position paragraphStart = startOfParagraph(createVisiblePosition(m_start)).t oParentAnchoredPosition();
317 Position paragraphEnd = m_end; 317 Position paragraphEnd = m_end;
318 int totalRangeLength = TextIterator::rangeLength(paragraphStart, paragraphEn d); 318 int totalRangeLength = TextIterator::rangeLength(paragraphStart, paragraphEn d);
319 paragraphEnd = endOfParagraph(VisiblePosition(m_start)).toParentAnchoredPosi tion(); 319 paragraphEnd = endOfParagraph(createVisiblePosition(m_start)).toParentAnchor edPosition();
320 320
321 int rangeStartOffset = TextIterator::rangeLength(paragraphStart, m_start); 321 int rangeStartOffset = TextIterator::rangeLength(paragraphStart, m_start);
322 int totalLengthProcessed = 0; 322 int totalLengthProcessed = 0;
323 323
324 bool firstIteration = true; 324 bool firstIteration = true;
325 bool lastIteration = false; 325 bool lastIteration = false;
326 while (totalLengthProcessed < totalRangeLength) { 326 while (totalLengthProcessed < totalRangeLength) {
327 // Iterate through the search range by paragraphs, checking each one for spelling and grammar. 327 // Iterate through the search range by paragraphs, checking each one for spelling and grammar.
328 int currentLength = TextIterator::rangeLength(paragraphStart, paragraphE nd); 328 int currentLength = TextIterator::rangeLength(paragraphStart, paragraphE nd);
329 int currentStartOffset = firstIteration ? rangeStartOffset : 0; 329 int currentStartOffset = firstIteration ? rangeStartOffset : 0;
330 int currentEndOffset = currentLength; 330 int currentEndOffset = currentLength;
331 if (inSameParagraph(VisiblePosition(paragraphStart), VisiblePosition(m_e nd))) { 331 if (inSameParagraph(createVisiblePosition(paragraphStart), createVisible Position(m_end))) {
332 // Determine the character offset from the end of the original searc h range to the end of the paragraph, 332 // Determine the character offset from the end of the original searc h range to the end of the paragraph,
333 // since we will want to ignore results in this area. 333 // since we will want to ignore results in this area.
334 currentEndOffset = TextIterator::rangeLength(paragraphStart, m_end); 334 currentEndOffset = TextIterator::rangeLength(paragraphStart, m_end);
335 lastIteration = true; 335 lastIteration = true;
336 } 336 }
337 if (currentStartOffset < currentEndOffset) { 337 if (currentStartOffset < currentEndOffset) {
338 String paragraphString = plainText(EphemeralRange(paragraphStart, pa ragraphEnd)); 338 String paragraphString = plainText(EphemeralRange(paragraphStart, pa ragraphEnd));
339 if (paragraphString.length() > 0) { 339 if (paragraphString.length() > 0) {
340 bool foundGrammar = false; 340 bool foundGrammar = false;
341 int spellingLocation = 0; 341 int spellingLocation = 0;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 grammarPhraseOffset += TextIterator::rangeLength(m_start , paragraphStart); 395 grammarPhraseOffset += TextIterator::rangeLength(m_start , paragraphStart);
396 outIsSpelling = false; 396 outIsSpelling = false;
397 outFirstFoundOffset = grammarPhraseOffset; 397 outFirstFoundOffset = grammarPhraseOffset;
398 firstFoundItem = badGrammarPhrase; 398 firstFoundItem = badGrammarPhrase;
399 break; 399 break;
400 } 400 }
401 } 401 }
402 } 402 }
403 if (lastIteration || totalLengthProcessed + currentLength >= totalRangeL ength) 403 if (lastIteration || totalLengthProcessed + currentLength >= totalRangeL ength)
404 break; 404 break;
405 VisiblePosition newParagraphStart = startOfNextParagraph(VisiblePosition (paragraphEnd)); 405 VisiblePosition newParagraphStart = startOfNextParagraph(createVisiblePo sition(paragraphEnd));
406 paragraphStart = newParagraphStart.toParentAnchoredPosition(); 406 paragraphStart = newParagraphStart.toParentAnchoredPosition();
407 paragraphEnd = endOfParagraph(newParagraphStart).toParentAnchoredPositio n(); 407 paragraphEnd = endOfParagraph(newParagraphStart).toParentAnchoredPositio n();
408 firstIteration = false; 408 firstIteration = false;
409 totalLengthProcessed += currentLength; 409 totalLengthProcessed += currentLength;
410 } 410 }
411 return firstFoundItem; 411 return firstFoundItem;
412 } 412 }
413 413
414 int TextCheckingHelper::findFirstGrammarDetail(const Vector<GrammarDetail>& gram marDetails, int badGrammarPhraseLocation, int startOffset, int endOffset, bool m arkAll) const 414 int TextCheckingHelper::findFirstGrammarDetail(const Vector<GrammarDetail>& gram marDetails, int badGrammarPhraseLocation, int startOffset, int endOffset, bool m arkAll) const
415 { 415 {
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 return false; 568 return false;
569 569
570 const Settings* settings = frame->settings(); 570 const Settings* settings = frame->settings();
571 if (!settings) 571 if (!settings)
572 return false; 572 return false;
573 573
574 return settings->unifiedTextCheckerEnabled(); 574 return settings->unifiedTextCheckerEnabled();
575 } 575 }
576 576
577 } 577 }
OLDNEW
« no previous file with comments | « Source/core/editing/spellcheck/SpellChecker.cpp ('k') | Source/core/html/HTMLTextFormControlElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698