| Index: third_party/WebKit/Source/core/editing/FrameSelection.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.cpp b/third_party/WebKit/Source/core/editing/FrameSelection.cpp
|
| index 0e7844a5cf73ab49bf0caa7457ae240c5f0f24fc..640ef906d0bcba14e48e5c56267935d6899ce6ed 100644
|
| --- a/third_party/WebKit/Source/core/editing/FrameSelection.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/FrameSelection.cpp
|
| @@ -250,7 +250,7 @@ void FrameSelection::setNonDirectionalSelectionIfNeededAlgorithm(const VisibleSe
|
| bool isDirectional = shouldAlwaysUseDirectionalSelection(m_frame) || newSelection.isDirectional();
|
|
|
| const PositionTemplate<Strategy> basePosition = this->originalBase<Strategy>().deepEquivalent();
|
| - const VisiblePositionTemplate<Strategy> originalBase = basePosition.inShadowIncludingDocument() ? createVisiblePosition(basePosition) : VisiblePositionTemplate<Strategy>();
|
| + const VisiblePositionTemplate<Strategy> originalBase = basePosition.isConnected() ? createVisiblePosition(basePosition) : VisiblePositionTemplate<Strategy>();
|
| const VisiblePositionTemplate<Strategy> base = originalBase.isNotNull() ? originalBase : createVisiblePosition(newSelection.base());
|
| VisiblePositionTemplate<Strategy> newBase = base;
|
| const VisiblePositionTemplate<Strategy> extent = createVisiblePosition(newSelection.extent());
|
| @@ -525,7 +525,7 @@ static Position updatePositionAfterAdoptingTextReplacement(const Position& posit
|
| void FrameSelection::didUpdateCharacterData(CharacterData* node, unsigned offset, unsigned oldLength, unsigned newLength)
|
| {
|
| // The fragment check is a performance optimization. See http://trac.webkit.org/changeset/30062.
|
| - if (isNone() || !node || !node->inShadowIncludingDocument())
|
| + if (isNone() || !node || !node->isConnected())
|
| return;
|
|
|
| Position base = updatePositionAfterAdoptingTextReplacement(selection().base(), node, offset, oldLength, newLength);
|
| @@ -554,7 +554,7 @@ static Position updatePostionAfterAdoptingTextNodesMerged(const Position& positi
|
|
|
| void FrameSelection::didMergeTextNodes(const Text& oldNode, unsigned offset)
|
| {
|
| - if (isNone() || !oldNode.inShadowIncludingDocument())
|
| + if (isNone() || !oldNode.isConnected())
|
| return;
|
| Position base = updatePostionAfterAdoptingTextNodesMerged(selection().base(), oldNode, offset);
|
| Position extent = updatePostionAfterAdoptingTextNodesMerged(selection().extent(), oldNode, offset);
|
| @@ -578,7 +578,7 @@ static Position updatePostionAfterAdoptingTextNodeSplit(const Position& position
|
|
|
| void FrameSelection::didSplitTextNode(const Text& oldNode)
|
| {
|
| - if (isNone() || !oldNode.inShadowIncludingDocument())
|
| + if (isNone() || !oldNode.isConnected())
|
| return;
|
| Position base = updatePostionAfterAdoptingTextNodeSplit(selection().base(), oldNode);
|
| Position extent = updatePostionAfterAdoptingTextNodeSplit(selection().extent(), oldNode);
|
| @@ -854,7 +854,7 @@ void FrameSelection::selectAll()
|
| if (selectStartTarget->dispatchEvent(Event::createCancelableBubble(EventTypeNames::selectstart)) != DispatchEventResult::NotCanceled)
|
| return;
|
| // |root| may be detached due to selectstart event.
|
| - if (!root->inShadowIncludingDocument() || expectedDocument != root->document())
|
| + if (!root->isConnected() || expectedDocument != root->document())
|
| return;
|
| }
|
|
|
| @@ -866,7 +866,7 @@ void FrameSelection::selectAll()
|
|
|
| bool FrameSelection::setSelectedRange(Range* range, TextAffinity affinity, SelectionDirectionalMode directional, SetSelectionOptions options)
|
| {
|
| - if (!range || !range->inShadowIncludingDocument())
|
| + if (!range || !range->isConnected())
|
| return false;
|
| DCHECK_EQ(range->startContainer()->document(), range->endContainer()->document());
|
| return setSelectedRange(EphemeralRange(range), affinity, directional, options);
|
|
|