 Chromium Code Reviews
 Chromium Code Reviews Issue 181283002:
  Fixing a crash in InsertListCommand.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/blink.git@master
    
  
    Issue 181283002:
  Fixing a crash in InsertListCommand.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/blink.git@master| Index: Source/core/dom/Range.cpp | 
| diff --git a/Source/core/dom/Range.cpp b/Source/core/dom/Range.cpp | 
| index 85906a831541882178e89be7e9c85b864e07bc3a..315ef3bda3229e3f98788ea089f5ed519b606a3a 100644 | 
| --- a/Source/core/dom/Range.cpp | 
| +++ b/Source/core/dom/Range.cpp | 
| @@ -901,6 +901,11 @@ PassRefPtr<Node> Range::processAncestorsAndTheirSiblings(ActionType action, Node | 
| Node* child = it->get(); | 
| switch (action) { | 
| case DELETE_CONTENTS: | 
| + // ancestor->removeChild(<child before this child>) might cause the tree change | 
| + // because removeChild might call dispatchSubtreeModifiedEvent. | 
| + // Then we should validate again. | 
| 
Yuta Kitamura
2014/02/26 10:41:16
nit: The first sentence sounds a little bit strang
 
yoichio
2014/02/27 04:00:03
Done.
 | 
| + if (ancestor != child->parentNode()) | 
| 
Yuta Kitamura
2014/02/26 10:41:16
Ideally, we could have bulk-removal functionality
 
yoichio
2014/02/27 04:00:03
Done.
 | 
| + break; | 
| ancestor->removeChild(child, exceptionState); | 
| break; | 
| case EXTRACT_CONTENTS: // will remove child from ancestor |