| Index: third_party/WebKit/Source/core/editing/LayoutSelection.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/LayoutSelection.cpp b/third_party/WebKit/Source/core/editing/LayoutSelection.cpp
|
| index 94e940e64aafc89983658ae60cd20f2586b09209..540146afea59317b2f41c95f2de8b3f74415c3f7 100644
|
| --- a/third_party/WebKit/Source/core/editing/LayoutSelection.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/LayoutSelection.cpp
|
| @@ -32,7 +32,12 @@
|
| namespace blink {
|
|
|
| LayoutSelection::LayoutSelection(FrameSelection& frame_selection)
|
| - : frame_selection_(&frame_selection), has_pending_selection_(false) {}
|
| + : frame_selection_(&frame_selection),
|
| + has_pending_selection_(false),
|
| + selection_start_(nullptr),
|
| + selection_end_(nullptr),
|
| + selection_start_pos_(-1),
|
| + selection_end_pos_(-1) {}
|
|
|
| const VisibleSelection& LayoutSelection::GetVisibleSelection() const {
|
| return frame_selection_->ComputeVisibleSelectionInDOMTree();
|
| @@ -127,7 +132,7 @@ void LayoutSelection::Commit(LayoutView& layout_view) {
|
| CreateVisibleSelection(CalcVisibleSelection(original_selection));
|
|
|
| if (!selection.IsRange()) {
|
| - layout_view.ClearSelection();
|
| + ClearSelection();
|
| return;
|
| }
|
|
|
| @@ -159,9 +164,16 @@ void LayoutSelection::Commit(LayoutView& layout_view) {
|
| return;
|
| DCHECK(layout_view == start_layout_object->View());
|
| DCHECK(layout_view == end_layout_object->View());
|
| - layout_view.SetSelection(start_layout_object,
|
| - start_pos.ComputeEditingOffset(), end_layout_object,
|
| - end_pos.ComputeEditingOffset());
|
| + SetSelection(start_layout_object, start_pos.ComputeEditingOffset(),
|
| + end_layout_object, end_pos.ComputeEditingOffset());
|
| +}
|
| +
|
| +void LayoutSelection::OnDocumentShutdown() {
|
| + has_pending_selection_ = false;
|
| + selection_start_ = nullptr;
|
| + selection_end_ = nullptr;
|
| + selection_start_pos_ = -1;
|
| + selection_end_pos_ = -1;
|
| }
|
|
|
| DEFINE_TRACE(LayoutSelection) {
|
|
|