OLD | NEW |
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 546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 if (comparePositions(chunkRange.endPosition(), checkRange.endPositio
n()) < 0) | 557 if (comparePositions(chunkRange.endPosition(), checkRange.endPositio
n()) < 0) |
558 checkRangeIterator.advance(TextIterator::rangeLength(chunkRange.
endPosition(), checkRange.endPosition())); | 558 checkRangeIterator.advance(TextIterator::rangeLength(chunkRange.
endPosition(), checkRange.endPosition())); |
559 } | 559 } |
560 } | 560 } |
561 } | 561 } |
562 | 562 |
563 void SpellChecker::markAndReplaceFor(SpellCheckRequest* request, const Vector<Te
xtCheckingResult>& results) | 563 void SpellChecker::markAndReplaceFor(SpellCheckRequest* request, const Vector<Te
xtCheckingResult>& results) |
564 { | 564 { |
565 TRACE_EVENT0("blink", "SpellChecker::markAndReplaceFor"); | 565 TRACE_EVENT0("blink", "SpellChecker::markAndReplaceFor"); |
566 DCHECK(request); | 566 DCHECK(request); |
| 567 if (!frame().selection().isAvailable()) { |
| 568 // "editing/spelling/spellcheck-async-remove-frame.html" reaches here. |
| 569 return; |
| 570 } |
567 if (!request->isValid()) | 571 if (!request->isValid()) |
568 return; | 572 return; |
| 573 if (request->rootEditableElement()->document() != frame().selection().docume
nt()) { |
| 574 // we ignore |request| made for another document. |
| 575 // "editing/spelling/spellcheck-sequencenum.html" and others reach here. |
| 576 return; |
| 577 } |
569 | 578 |
570 TextCheckingTypeMask textCheckingOptions = request->data().mask(); | 579 TextCheckingTypeMask textCheckingOptions = request->data().mask(); |
571 TextCheckingParagraph paragraph(request->checkingRange(), request->paragraph
Range()); | 580 TextCheckingParagraph paragraph(request->checkingRange(), request->paragraph
Range()); |
572 | 581 |
573 bool shouldMarkSpelling = textCheckingOptions & TextCheckingTypeSpelling; | 582 bool shouldMarkSpelling = textCheckingOptions & TextCheckingTypeSpelling; |
574 bool shouldMarkGrammar = textCheckingOptions & TextCheckingTypeGrammar; | 583 bool shouldMarkGrammar = textCheckingOptions & TextCheckingTypeGrammar; |
575 | 584 |
576 // Expand the range to encompass entire paragraphs, since text checking need
s that much context. | 585 // Expand the range to encompass entire paragraphs, since text checking need
s that much context. |
577 int selectionOffset = 0; | 586 int selectionOffset = 0; |
578 int ambiguousBoundaryOffset = -1; | 587 int ambiguousBoundaryOffset = -1; |
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
936 visitor->trace(m_frame); | 945 visitor->trace(m_frame); |
937 visitor->trace(m_spellCheckRequester); | 946 visitor->trace(m_spellCheckRequester); |
938 } | 947 } |
939 | 948 |
940 void SpellChecker::prepareForLeakDetection() | 949 void SpellChecker::prepareForLeakDetection() |
941 { | 950 { |
942 m_spellCheckRequester->prepareForLeakDetection(); | 951 m_spellCheckRequester->prepareForLeakDetection(); |
943 } | 952 } |
944 | 953 |
945 } // namespace blink | 954 } // namespace blink |
OLD | NEW |