Remove unused attachChildrenLazily method and make attach/detachChildren private
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 29 Jun 2013 00:01:37 +0000 (00:01 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 29 Jun 2013 00:01:37 +0000 (00:01 +0000)
https://bugs.webkit.org/show_bug.cgi?id=118016

Reviewed by Darin Adler.

Merge https://chromium.googlesource.com/chromium/blink/+/009520dc31c9458e0cf71cf212fa5688c4ca68b0

No one should be manually trying to attach or detach all their children so there's
no reason for these methods to be public.

In doing this I realized that attachChildrenLazily is not used and can be removed.

I also realized that we were detaching all our children before the ShadowRoots which
is sad since the InsertionPoints will call detach() on them as well, and then when we
call ContainerNode::detach at the end of Element::detach we'll go detach them again!
This patch makes it so we only go through and detach them twice instead of three times.
In the future we should figure out a way to only do this once.

* dom/ContainerNode.h:
* dom/Element.cpp:
(WebCore::Element::detach):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@152197 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/dom/ContainerNode.h
Source/WebCore/dom/Element.cpp

index e4d5ca7f9025b3acc3f3c18355ddb48799800be5..a8666fb56d0d230219028e133101089d023d889b 100644 (file)
@@ -1,3 +1,27 @@
+2013-06-28  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Remove unused attachChildrenLazily method and make attach/detachChildren private
+        https://bugs.webkit.org/show_bug.cgi?id=118016
+
+        Reviewed by Darin Adler.
+
+        Merge https://chromium.googlesource.com/chromium/blink/+/009520dc31c9458e0cf71cf212fa5688c4ca68b0
+
+        No one should be manually trying to attach or detach all their children so there's
+        no reason for these methods to be public.
+        
+        In doing this I realized that attachChildrenLazily is not used and can be removed.
+        
+        I also realized that we were detaching all our children before the ShadowRoots which
+        is sad since the InsertionPoints will call detach() on them as well, and then when we
+        call ContainerNode::detach at the end of Element::detach we'll go detach them again!
+        This patch makes it so we only go through and detach them twice instead of three times.
+        In the future we should figure out a way to only do this once.
+
+        * dom/ContainerNode.h:
+        * dom/Element.cpp:
+        (WebCore::Element::detach):
+
 2013-06-28  Alexey Proskuryakov  <ap@apple.com>
 
         [Mac] Crash when loading is stopped from -didReceiveResponse
index 5da477e1a193801b1ad8476ef842f4dc95102014..adc2f4e256796d4aa6886bb07e95ec76b5672ae4 100644 (file)
@@ -118,11 +118,6 @@ public:
     // node that is of the type CDATA_SECTION_NODE, TEXT_NODE or COMMENT_NODE has changed its value.
     virtual void childrenChanged(bool createdByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
 
-    void attachChildren(const AttachContext& = AttachContext());
-    void attachChildrenLazily();
-    void detachChildren(const AttachContext& = AttachContext());
-    void detachChildrenIfNeeded(const AttachContext& = AttachContext());
-
     void disconnectDescendantFrames();
 
     virtual bool childShouldCreateRenderer(const NodeRenderingContext&) const { return true; }
@@ -147,6 +142,9 @@ private:
     void removeBetween(Node* previousChild, Node* nextChild, Node* oldChild);
     void insertBeforeCommon(Node* nextChild, Node* oldChild);
 
+    void attachChildren(const AttachContext& = AttachContext());
+    void detachChildren(const AttachContext& = AttachContext());
+
     static void dispatchPostAttachCallbacks();
     void suspendPostAttachCallbacks();
     void resumePostAttachCallbacks();
@@ -196,24 +194,6 @@ inline void ContainerNode::attachChildren(const AttachContext& context)
     }
 }
 
-inline void ContainerNode::attachChildrenLazily()
-{
-    for (Node* child = firstChild(); child; child = child->nextSibling())
-        if (!child->attached())
-            child->lazyAttach();
-}
-
-inline void ContainerNode::detachChildrenIfNeeded(const AttachContext& context)
-{
-    AttachContext childrenContext(context);
-    childrenContext.resolvedStyle = 0;
-
-    for (Node* child = firstChild(); child; child = child->nextSibling()) {
-        if (child->attached())
-            child->detach(childrenContext);
-    }
-}
-
 inline void ContainerNode::detachChildren(const AttachContext& context)
 {
     AttachContext childrenContext(context);
index acf76ddfaa1f5f97ccb55f3905bc85051fe21e7e..d01ef7dfbee4e9c510175bd1d639a3921ddefff9 100644 (file)
@@ -1478,10 +1478,8 @@ void Element::detach(const AttachContext& context)
         data->resetDynamicRestyleObservations();
     }
 
-    if (ElementShadow* shadow = this->shadow()) {
-        detachChildrenIfNeeded(context);
+    if (ElementShadow* shadow = this->shadow())
         shadow->detach(context);
-    }
 
     // Do not remove the element's hovered and active status
     // if performing a reattach.