[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:45:04 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit ad7516af27a4846609da316ba4fcec83417b12b4
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jun 11 22:57:41 2003 +0000

    	Fix for 3288875, :after/:before content not getting destroyed
    	after printing on alistapart.com.  Make the update method for
    	pseudos smart enough to destroy generated content when it is
    	no longer needed.
    
            Reviewed by darin
    
            * khtml/rendering/render_block.cpp:
    	(RenderBlock::setStyle);
            * khtml/rendering/render_container.cpp:
            (RenderContainer::updatePseudoChild):
            * khtml/rendering/render_container.h:
            * khtml/rendering/render_inline.cpp:
            (RenderInline::setStyle):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4525 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index edb1b0f..bbe1067 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,22 @@
 2003-06-11  David Hyatt  <hyatt at apple.com>
 
+	Fix for 3288875, :after/:before content not getting destroyed
+	after printing on alistapart.com.  Make the update method for
+	pseudos smart enough to destroy generated content when it is
+	no longer needed.
+	
+        Reviewed by darin
+
+        * khtml/rendering/render_block.cpp:
+	(RenderBlock::setStyle);
+        * khtml/rendering/render_container.cpp:
+        (RenderContainer::updatePseudoChild):
+        * khtml/rendering/render_container.h:
+        * khtml/rendering/render_inline.cpp:
+        (RenderInline::setStyle):
+
+2003-06-11  David Hyatt  <hyatt at apple.com>
+
 	Fix for 3288035, the wrong value was being filled in for
 	textfields.  Fixed a bug in QString's assignment operator
 	that made empty strings become null strings upon assignment.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index edb1b0f..bbe1067 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,22 @@
 2003-06-11  David Hyatt  <hyatt at apple.com>
 
+	Fix for 3288875, :after/:before content not getting destroyed
+	after printing on alistapart.com.  Make the update method for
+	pseudos smart enough to destroy generated content when it is
+	no longer needed.
+	
+        Reviewed by darin
+
+        * khtml/rendering/render_block.cpp:
+	(RenderBlock::setStyle);
+        * khtml/rendering/render_container.cpp:
+        (RenderContainer::updatePseudoChild):
+        * khtml/rendering/render_container.h:
+        * khtml/rendering/render_inline.cpp:
+        (RenderInline::setStyle):
+
+2003-06-11  David Hyatt  <hyatt at apple.com>
+
 	Fix for 3288035, the wrong value was being filled in for
 	textfields.  Fixed a bug in QString's assignment operator
 	that made empty strings become null strings upon assignment.
diff --git a/WebCore/khtml/rendering/render_block.cpp b/WebCore/khtml/rendering/render_block.cpp
index 1e67edb..697f3cb 100644
--- a/WebCore/khtml/rendering/render_block.cpp
+++ b/WebCore/khtml/rendering/render_block.cpp
@@ -90,8 +90,8 @@ void RenderBlock::setStyle(RenderStyle* _style)
     }
 
     // Update pseudos for :before and :after now.
-    insertPseudoChild(RenderStyle::BEFORE, firstChild());
-    insertPseudoChild(RenderStyle::AFTER, lastChild());
+    updatePseudoChild(RenderStyle::BEFORE, firstChild());
+    updatePseudoChild(RenderStyle::AFTER, lastChild());
 }
 
 void RenderBlock::addChildToFlow(RenderObject* newChild, RenderObject* beforeChild)
diff --git a/WebCore/khtml/rendering/render_container.cpp b/WebCore/khtml/rendering/render_container.cpp
index 3aa5012..97dda9e 100644
--- a/WebCore/khtml/rendering/render_container.cpp
+++ b/WebCore/khtml/rendering/render_container.cpp
@@ -201,18 +201,21 @@ void RenderContainer::removeChild(RenderObject *oldChild)
     setNeedsLayout(true);
 }
 
-void RenderContainer::insertPseudoChild(RenderStyle::PseudoId type, RenderObject* child)
+void RenderContainer::updatePseudoChild(RenderStyle::PseudoId type, RenderObject* child)
 {
-    // FIXME: This method should really be renamed to "updatePseudoChild" and be capable of
-    // detecting that before/after children need to be deleted as well.
-    
-    if (child && child->style()->styleType() == type)
-        return; // Generated content is already added.  No need to add more.
-    
     RenderStyle* pseudo = style()->getPseudoStyle(type);
-    if (!pseudo || pseudo->display() == NONE)
+    if (!pseudo || pseudo->display() == NONE) {
+        if (child && child->style()->styleType() == type)
+            // The child needs to be removed.
+            removeChild(child);
         return; // If we have no pseudo-style or if the pseudo's display type is NONE, then we
                 // have no generated content.
+    }
+
+    // FIXME: need to detect when :before/:after content has changed, in addition
+    // to detecting addition/removal.
+    if (child && child->style()->styleType() == type)
+        return; // Generated content is already added.  No need to add more.
     
     RenderObject* insertBefore = (type == RenderStyle::BEFORE) ? child : 0;
         
diff --git a/WebCore/khtml/rendering/render_container.h b/WebCore/khtml/rendering/render_container.h
index f587302..e4bd1a9 100644
--- a/WebCore/khtml/rendering/render_container.h
+++ b/WebCore/khtml/rendering/render_container.h
@@ -62,7 +62,7 @@ private:
 
 protected:
 
-    void insertPseudoChild(RenderStyle::PseudoId type, RenderObject* child);
+    void updatePseudoChild(RenderStyle::PseudoId type, RenderObject* child);
 
     RenderObject *m_first;
     RenderObject *m_last;
diff --git a/WebCore/khtml/rendering/render_inline.cpp b/WebCore/khtml/rendering/render_inline.cpp
index 1dbdb3f..33770aa 100644
--- a/WebCore/khtml/rendering/render_inline.cpp
+++ b/WebCore/khtml/rendering/render_inline.cpp
@@ -60,8 +60,8 @@ void RenderInline::setStyle(RenderStyle* _style)
     }
 
     // Update pseudos for :before and :after now.
-    insertPseudoChild(RenderStyle::BEFORE, firstChild());
-    insertPseudoChild(RenderStyle::AFTER, lastChild());
+    updatePseudoChild(RenderStyle::BEFORE, firstChild());
+    updatePseudoChild(RenderStyle::AFTER, lastChild());
 }
 
 void RenderInline::addChildToFlow(RenderObject* newChild, RenderObject* beforeChild)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list