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

Side by Side Diff: third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp

Issue 2909923005: Expand TextCheckingParagraph::OffsetTo() into SelectionController::MarkAndReplaceFor() (Closed)
Patch Set: 2017-05-30T18:54:14 Created 3 years, 6 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/editing/spellcheck/TextCheckingParagraph.h » ('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) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2011 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 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 // "editing/spelling/spellcheck-async-mutation.html" reaches here. 597 // "editing/spelling/spellcheck-async-mutation.html" reaches here.
598 return; 598 return;
599 } 599 }
600 600
601 TextCheckingParagraph paragraph(checking_range, checking_range); 601 TextCheckingParagraph paragraph(checking_range, checking_range);
602 602
603 // TODO(xiaochengh): The following comment does not match the current behavior 603 // TODO(xiaochengh): The following comment does not match the current behavior
604 // and should be rewritten. 604 // and should be rewritten.
605 // Expand the range to encompass entire paragraphs, since text checking needs 605 // Expand the range to encompass entire paragraphs, since text checking needs
606 // that much context. 606 // that much context.
607 int selection_offset = 0;
608 int ambiguous_boundary_offset = -1; 607 int ambiguous_boundary_offset = -1;
609 608
610 if (GetFrame().Selection().ComputeVisibleSelectionInDOMTree().IsCaret()) { 609 if (GetFrame().Selection().ComputeVisibleSelectionInDOMTree().IsCaret()) {
611 // TODO(xiaochengh): The following comment does not match the current 610 // TODO(xiaochengh): The following comment does not match the current
612 // behavior and should be rewritten. 611 // behavior and should be rewritten.
613 // Attempt to save the caret position so we can restore it later if needed 612 // Attempt to save the caret position so we can restore it later if needed
614 const Position& caret_position = 613 const Position& caret_position =
615 GetFrame().Selection().ComputeVisibleSelectionInDOMTree().end(); 614 GetFrame().Selection().ComputeVisibleSelectionInDOMTree().end();
616 selection_offset = paragraph.OffsetTo(caret_position); 615 const Position& paragraph_start = checking_range.StartPosition();
616 const int selection_offset =
617 paragraph_start < caret_position
618 ? TextIterator::RangeLength(paragraph_start, caret_position)
619 : 0;
617 if (selection_offset > 0 && 620 if (selection_offset > 0 &&
618 static_cast<unsigned>(selection_offset) <= 621 static_cast<unsigned>(selection_offset) <=
619 paragraph.GetText().length() && 622 paragraph.GetText().length() &&
620 IsAmbiguousBoundaryCharacter( 623 IsAmbiguousBoundaryCharacter(
621 paragraph.TextCharAt(selection_offset - 1))) { 624 paragraph.TextCharAt(selection_offset - 1))) {
622 ambiguous_boundary_offset = selection_offset - 1; 625 ambiguous_boundary_offset = selection_offset - 1;
623 } 626 }
624 } 627 }
625 628
626 const int spelling_range_end_offset = paragraph.CheckingEnd(); 629 const int spelling_range_end_offset = paragraph.CheckingEnd();
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after
1232 if (!input.IsFocusedElementInDocument()) 1235 if (!input.IsFocusedElementInDocument())
1233 return false; 1236 return false;
1234 } 1237 }
1235 } 1238 }
1236 HTMLElement* element = 1239 HTMLElement* element =
1237 Traversal<HTMLElement>::FirstAncestorOrSelf(*position.AnchorNode()); 1240 Traversal<HTMLElement>::FirstAncestorOrSelf(*position.AnchorNode());
1238 return element && element->IsSpellCheckingEnabled(); 1241 return element && element->IsSpellCheckingEnabled();
1239 } 1242 }
1240 1243
1241 } // namespace blink 1244 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/editing/spellcheck/TextCheckingParagraph.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698