Index: Source/web/WebLocalFrameImpl.cpp |
diff --git a/Source/web/WebLocalFrameImpl.cpp b/Source/web/WebLocalFrameImpl.cpp |
index 5e2b49ed4ad94f60b53136cab1ed99bba2dc580d..7c47db4a1c2964afc7fcda5a912dedc3b8087f8e 100644 |
--- a/Source/web/WebLocalFrameImpl.cpp |
+++ b/Source/web/WebLocalFrameImpl.cpp |
@@ -256,15 +256,16 @@ static void frameContentAsPlainText(size_t maxChars, LocalFrame* frame, StringBu |
// Select the document body. |
RefPtrWillBeRawPtr<Range> range(document->createRange()); |
yosin_UTC9
2015/09/11 07:07:19
Thus, we don't need to use |Range|.
We may want to
sof
2015/09/11 07:11:42
I'm sorry, spaced out completely - we clearly don'
|
- TrackExceptionState exceptionState; |
- range->selectNodeContents(document->body(), exceptionState); |
+ ScopedDisposal<Range> disposeScope(range.get()); |
+ |
+ if (document->body()) { |
+ const EphemeralRange range = EphemeralRange::rangeOfContents(*document->body()); |
- if (!exceptionState.hadException()) { |
// The text iterator will walk nodes giving us text. This is similar to |
// the plainText() function in core/editing/TextIterator.h, but we implement the maximum |
// size and also copy the results directly into a wstring, avoiding the |
// string conversion. |
- for (TextIterator it(range->startPosition(), range->endPosition()); !it.atEnd(); it.advance()) { |
+ for (TextIterator it(range.startPosition(), range.endPosition()); !it.atEnd(); it.advance()) { |
it.text().appendTextToStringBuilder(output, 0, maxChars - output.length()); |
if (output.length() >= maxChars) |
return; // Filled up the buffer. |