Defer widget updates in ContainerNode::parserRemoveChild.

ContainerNode::parserRemoveChild is the only consumer of ContainerNode::removeBetween that doesn't defer widget updates during the call. This could potentially lead to problems with scripts running at an inopportune time.

This patch adds a RAII guard that runs deferred widget updates at the end of parserRemoveChild.

BUG=560011

Review URL: https://codereview.chromium.org/1464223002

Cr-Commit-Position: refs/heads/master@{#363154}
diff --git a/third_party/WebKit/Source/core/dom/ContainerNode.cpp b/third_party/WebKit/Source/core/dom/ContainerNode.cpp
index 82cb94c..9ca0fce 100644
--- a/third_party/WebKit/Source/core/dom/ContainerNode.cpp
+++ b/third_party/WebKit/Source/core/dom/ContainerNode.cpp
@@ -638,6 +638,7 @@
     ChildListMutationScope(*this).willRemoveChild(oldChild);
     oldChild.notifyMutationObserversNodeWillDetach();
 
+    HTMLFrameOwnerElement::UpdateSuspendScope suspendWidgetHierarchyUpdates;
     Node* prev = oldChild.previousSibling();
     Node* next = oldChild.nextSibling();
     removeBetween(prev, next, oldChild);