LayoutTests:
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Oct 2005 00:16:48 +0000 (00:16 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Oct 2005 00:16:48 +0000 (00:16 +0000)
        - temporarily back out hyatt's recent changes since the tree was closed

        * fast/clip/008-expected.txt:
        * fast/css/acid2-expected.txt:
        * fast/css/acid2-pixel-expected.txt:
        * fast/dom/gc-3.html:
        * fast/table/overflowHidden-expected.txt:

WebCore:

        - temporarily back out hyatt's recent changes since the tree was closed

        * khtml/rendering/render_container.cpp:
        (RenderContainer::destroy):
        (RenderContainer::destroyChildren):
        * khtml/rendering/render_container.h:
        * khtml/rendering/render_flow.cpp:
        (RenderFlow::destroy):
        * khtml/rendering/render_layer.cpp:
        (khtml::RenderLayer::isTransparent):
        (khtml::RenderLayer::paintLayer):
        (khtml::sortByZOrder):
        * khtml/rendering/render_layer.h:

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

12 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/clip/008-expected.txt
LayoutTests/fast/css/acid2-expected.txt
LayoutTests/fast/css/acid2-pixel-expected.txt
LayoutTests/fast/dom/gc-3.html
LayoutTests/fast/table/overflowHidden-expected.txt
WebCore/ChangeLog-2005-12-19
WebCore/khtml/rendering/render_container.cpp
WebCore/khtml/rendering/render_container.h
WebCore/khtml/rendering/render_flow.cpp
WebCore/khtml/rendering/render_layer.cpp
WebCore/khtml/rendering/render_layer.h

index dc51b6c240f02d33b7ed3d34b2c8e48bbf97f61e..c6c706531919f4504ea1a4ac5bbd32183736851b 100644 (file)
@@ -1,3 +1,13 @@
+2005-10-17  Maciej Stachowiak  <mjs@apple.com>
+
+        - temporarily back out hyatt's recent changes since the tree was closed
+
+        * fast/clip/008-expected.txt:
+        * fast/css/acid2-expected.txt:
+        * fast/css/acid2-pixel-expected.txt:
+        * fast/dom/gc-3.html:
+        * fast/table/overflowHidden-expected.txt:
+
 2005-10-13  Eric Seidel  <eseidel@apple.com>
 
         Committed file w/ extra newline by mistake.
index b04da36ebd321f554994529f84652d2f617c0d0b..61f1612eb3d7e77305d766423d68e14ae922fc2e 100644 (file)
@@ -11,9 +11,9 @@ layer at (0,0) size 800x70
         text run at (293,18) width 446: "a containing block model, and that a fixed positioned element inside an"
         text run at (0,36) width 353: "absolute positioned element is not considered overflow. "
       RenderText {TEXT} at (0,0) size 0x0
-layer at (200,200) size 100x100
-  RenderBlock {DIV} at (100,100) size 100x100 [bgcolor=#008000]
 layer at (8,62) size 100x100
   RenderBlock (positioned) {DIV} at (8,62) size 100x100
 layer at (100,100) size 200x200
   RenderBlock (positioned) {DIV} at (100,100) size 100x100
+layer at (200,200) size 100x100
+  RenderBlock {DIV} at (100,100) size 100x100 [bgcolor=#008000]
index 9cf8e3ecbf52733400681f3ca7071c72348fda6f..bcab844ff5dab230d0058a557b31c174ef8f1263 100644 (file)
@@ -45,13 +45,6 @@ layer at (132,108) size 48x18
   RenderBlock (positioned) {P} at (132,108) size 48x18 [bgcolor=#000000] [border: none (6px solid #FFFF00) none]
 layer at (132,144) size 48x15
   RenderBlock (positioned) {P} at (132,144) size 48x15 [bgcolor=#000000] [border: none (3px solid #FF0000) none]
-layer at (48,2842) size 740x10 scrollHeight 276
-  RenderBlock {DIV} at (12,204) size 740x10
-    RenderTable {TABLE} at (0,0) size 64x276
-      RenderTableSection {TBODY} at (0,0) size 0x276
-        RenderTableRow {TR} at (0,0) size 0x0
-          RenderTableCell {TD} at (0,0) size 64x276 [r=0 c=0 rs=1 cs=1]
-            RenderImage {IMG} at (0,152) size 64x64
 layer at (108,2686) size 96x12
   RenderBlock (positioned) {BLOCKQUOTE} at (72,48) size 96x12 [border: none (24px solid #000000) none (24px solid #000000)]
     RenderBlock (floating) {ADDRESS} at (24,0) size 48x12 [bgcolor=#FFFF00]
@@ -70,6 +63,13 @@ layer at (96,2782) size 120x24
     RenderBlock (floating) {SPAN} at (12,0) size 96x12 [border: none (12px solid #00000000) none (12px solid #00000000)]
       RenderBlock (floating) {EM} at (12,0) size 72x24 [border: (12px solid #FFFF00) none (12px solid #000000) none]
         RenderBlock {STRONG} at (0,12) size 72x0
+layer at (48,2842) size 740x10 scrollHeight 276
+  RenderBlock {DIV} at (12,204) size 740x10
+    RenderTable {TABLE} at (0,0) size 64x276
+      RenderTableSection {TBODY} at (0,0) size 0x276
+        RenderTableRow {TR} at (0,0) size 0x0
+          RenderTableCell {TD} at (0,0) size 64x276 [r=0 c=0 rs=1 cs=1]
+            RenderImage {IMG} at (0,152) size 64x64
 layer at (48,84) size 704x82
   RenderBlock (relative positioned) zI: 2 {DIV} at (48,0) size 704x82 [color=#000000] [bgcolor=#FFFFFF] [border: (1px solid #000000)]
     RenderBlock {H1} at (13,13) size 678x28
index 47d03b0ec57ea151a3e7cea9d9677ac1ae200873..320c1037dd0689c1f75b04809c819c4cf7cc3769 100644 (file)
@@ -48,13 +48,6 @@ layer at (132,144) size 48x15
 layer at (108,120) size 96x12
   RenderBlock (positioned) {BLOCKQUOTE} at (72,48) size 96x12 [border: none (24px solid #000000) none (24px solid #000000)]
     RenderBlock (floating) {ADDRESS} at (24,0) size 48x12 [bgcolor=#FFFF00]
-layer at (48,276) size 740x10 scrollHeight 276
-  RenderBlock {DIV} at (12,204) size 740x10
-    RenderTable {TABLE} at (0,0) size 64x276
-      RenderTableSection {TBODY} at (0,0) size 0x276
-        RenderTableRow {TR} at (0,0) size 0x0
-          RenderTableCell {TD} at (0,0) size 64x276 [r=0 c=0 rs=1 cs=1]
-            RenderImage {IMG} at (0,152) size 64x64
 layer at (84,144) size 144x24
   RenderBlock (positioned) {DIV} at (48,72) size 144x24 [bgcolor=#FF0000]
     RenderBlock {DIV} at (0,0) size 144x0
@@ -70,3 +63,10 @@ layer at (96,216) size 120x24
     RenderBlock (floating) {SPAN} at (12,0) size 96x12 [border: none (12px solid #00000000) none (12px solid #00000000)]
       RenderBlock (floating) {EM} at (12,0) size 72x24 [border: (12px solid #FFFF00) none (12px solid #000000) none]
         RenderBlock {STRONG} at (0,12) size 72x0
+layer at (48,276) size 740x10 scrollHeight 276
+  RenderBlock {DIV} at (12,204) size 740x10
+    RenderTable {TABLE} at (0,0) size 64x276
+      RenderTableSection {TBODY} at (0,0) size 0x276
+        RenderTableRow {TR} at (0,0) size 0x0
+          RenderTableCell {TD} at (0,0) size 64x276 [r=0 c=0 rs=1 cs=1]
+            RenderImage {IMG} at (0,152) size 64x64
index 880f45346ff10fa974db177ea27a43bb14451bf3..432ba33394ec359e74a6cd0c7209b4816917f43a 100644 (file)
@@ -2,7 +2,7 @@
 <script>
 function doit()
 {
-    var B = document.getElementById("span-B");
+    B = document.getElementById("span-B");
     B.customProperty = "B";
 
     document.getElementById("div").innerHTML = "<span>replacement content</span>";
index d210232c980062681da52890bea8f0226769db0c..6d40f4c867636d7acf4adf97e0530ca79a6a219c 100644 (file)
@@ -133,12 +133,12 @@ layer at (0,0) size 785x2414
               RenderBlock {DIV} at (1,1) size 100x100 [bgcolor=#800080]
 layer at (12,12) size 302x104 clip at (13,13) size 300x102
   RenderTableCell {TD} at (2,52) size 302x4 [bgcolor=#808080] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
-layer at (12,160) size 604x104 clip at (13,161) size 602x102
-  RenderTableCell {TD} at (2,43) size 604x22 [bgcolor=#808080] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
 layer at (14,90) size 600x18
   RenderBlock (positioned) {DIV} at (14,90) size 600x18 [bgcolor=#00FFFF]
     RenderText {TEXT} at (0,0) size 209x18
       text run at (0,0) width 209: "With absolute positioning on div."
+layer at (12,160) size 604x104 clip at (13,161) size 602x102
+  RenderTableCell {TD} at (2,43) size 604x22 [bgcolor=#808080] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
 layer at (14,203) size 600x18
   RenderBlock {DIV} at (2,2) size 600x18 [bgcolor=#00FFFF]
     RenderText {TEXT} at (0,0) size 129x18
@@ -174,6 +174,10 @@ layer at (318,858) size 304x104 clip at (319,859) size 302x102 scrollWidth 601
           text run at (0,0) width 51: "Reverse"
 layer at (12,1006) size 604x104 clip at (13,1007) size 602x102
   RenderTableCell {TD} at (2,43) size 604x22 [bgcolor=#808080] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
+layer at (14,1049) size 600x18
+  RenderBlock (relative positioned) {DIV} at (2,2) size 600x18 [bgcolor=#FFA500]
+    RenderText {TEXT} at (0,0) size 203x18
+      text run at (0,0) width 203: "With relative positioning on div."
 layer at (12,1154) size 604x104 clip at (13,1155) size 602x102
   RenderTableCell {TD} at (2,43) size 604x22 [bgcolor=#808080] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
     RenderBlock {DIV} at (2,2) size 600x18 [bgcolor=#FFC0CB]
@@ -196,10 +200,6 @@ layer at (8,1582) size 300x100 scrollWidth 600
       RenderBlock {DIV} at (0,0) size 600x18 [bgcolor=#FFA500]
         RenderText {TEXT} at (0,0) size 278x18
           text run at (0,0) width 278: "With display:table-cell + relative positioning"
-layer at (14,1049) size 600x18
-  RenderBlock (relative positioned) {DIV} at (2,2) size 600x18 [bgcolor=#FFA500]
-    RenderText {TEXT} at (0,0) size 203x18
-      text run at (0,0) width 203: "With relative positioning on div."
 layer at (8,1718) size 605x107 clip at (11,1721) size 602x102
   RenderTableCell {TD} at (0,41) size 605x25 [bgcolor=#808080] [border: (3px inset #808080)] [r=0 c=0 rs=1 cs=1]
     RenderBlock {DIV} at (4,4) size 600x18 [bgcolor=#FFFF00]
index 710f20c4cad4dcf194b53452051a694df6203b61..65c881d6a807de6a9c5bbc5a5297cef6f4168dbd 100644 (file)
@@ -1,3 +1,19 @@
+2005-10-17  Maciej Stachowiak  <mjs@apple.com>
+
+        - temporarily back out hyatt's recent changes since the tree was closed
+
+        * khtml/rendering/render_container.cpp:
+        (RenderContainer::destroy):
+        (RenderContainer::destroyChildren):
+        * khtml/rendering/render_container.h:
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::destroy):
+        * khtml/rendering/render_layer.cpp:
+        (khtml::RenderLayer::isTransparent):
+        (khtml::RenderLayer::paintLayer):
+        (khtml::sortByZOrder):
+        * khtml/rendering/render_layer.h:
+
 2005-10-17  David Hyatt  <hyatt@apple.com>
 
        Fix for bugzilla bug 5283.  Make overflow layers lose to other kinds of
index ab52fba897253ff53da85ff93656089852745e66..285a66d4e4e4f2147a0088588f099eb274f7afeb 100644 (file)
@@ -59,15 +59,20 @@ RenderContainer::~RenderContainer()
 
 void RenderContainer::destroy()
 {
-    destroyLeftoverAnonymousChildren();
+    if (m_first)
+        destroyChildren();
+    
     RenderBox::destroy();
 }
 
-void RenderContainer::destroyLeftoverAnonymousChildren()
+void RenderContainer::destroyChildren()
 {
+    if (continuation())
+        continuation()->destroy();
+    
     while (m_first) {
         if (m_first->isListMarker())
-            m_first->remove();  // List markers are owned by their enclosing list and so don't get destroyed by this container.
+            m_first->remove();
         else
             m_first->destroy();
     }
index 33fcda71c7dbde25dad61e59b09170ab37832f65..49623f32f81008ac3d766b64b0bd8372388523ff 100644 (file)
@@ -49,7 +49,7 @@ public:
     virtual void removeChild(RenderObject *oldChild);
 
     virtual void destroy();
-    void destroyLeftoverAnonymousChildren();
+    void destroyChildren();
     
     virtual RenderObject* removeChildNode(RenderObject* child);
     virtual void appendChildNode(RenderObject* child);
index 0a5f7c01ccce7a52ffb0279c88d87407a0cb7663..acb26065340d929184396a48332a5cd646e81744 100644 (file)
@@ -183,13 +183,7 @@ void RenderFlow::deleteLineBoxes()
 
 void RenderFlow::destroy()
 {
-    // Detach our continuation first.
-    if (m_continuation)
-        m_continuation->destroy();
-    
-    // Make sure to destroy anonymous children first while they are still connected to the rest of the tree, so that they will
-    // properly dirty line boxes that they are removed from.  Effects that do :before/:after only on hover could crash otherwise.
-    RenderContainer::destroyLeftoverAnonymousChildren();
+    RenderContainer::destroyChildren();
     
     if (!documentBeingDestroyed()) {
         if (m_firstLineBox) {
index 4c3bea8b9d0dc2ed47ae2c77ede1893e91706a4f..6ada6b7696e0d40626b2a062cce6f0f5c23a51c4 100644 (file)
@@ -297,8 +297,9 @@ RenderLayer::enclosingPositionedAncestor() const
     return curr;
 }
 
+#if APPLE_CHANGES
 bool
-RenderLayer::isTransparent() const
+RenderLayer::isTransparent()
 {
     return m_object->style()->opacity() < 1.0f;
 }
@@ -326,6 +327,8 @@ void RenderLayer::beginTransparencyLayers(QPainter* p)
     }
 }
 
+#endif
+
 void* RenderLayer::operator new(size_t sz, RenderArena* renderArena) throw()
 {
     return renderArena->allocate(sz);
@@ -879,8 +882,10 @@ RenderLayer::paintLayer(RenderLayer* rootLayer, QPainter *p,
     // Ensure our z-order lists are up-to-date.
     updateZOrderLists();
 
+#if APPLE_CHANGES
     if (isTransparent())
         haveTransparency = true;
+#endif
 
     // If this layer's renderer is a child of the paintingRoot, we render unconditionally, which
     // is done by passing a nil paintingRoot down to our renderer (as if no paintingRoot was ever set).
@@ -894,9 +899,11 @@ RenderLayer::paintLayer(RenderLayer* rootLayer, QPainter *p,
     // We want to paint our layer, but only if we intersect the damage rect.
     bool shouldPaint = intersectsDamageRect(layerBounds, damageRect);
     if (shouldPaint && !selectionOnly && !damageRect.isEmpty()) {
+#if APPLE_CHANGES
         // Begin transparency layers lazily now that we know we have to paint something.
         if (haveTransparency)
             beginTransparencyLayers(p);
+#endif
         
         // Paint our background first, before painting any child layers.
         // Establish the clip used to paint our background.
@@ -926,9 +933,11 @@ RenderLayer::paintLayer(RenderLayer* rootLayer, QPainter *p,
     
     // Now establish the appropriate clip and paint our child RenderObjects.
     if (shouldPaint && !clipRectToApply.isEmpty()) {
+#if APPLE_CHANGES
         // Begin transparency layers lazily now that we know we have to paint something.
         if (haveTransparency)
             beginTransparencyLayers(p);
+#endif
 
         // Set up the clip used when painting our children.
         setClip(p, paintDirtyRect, clipRectToApply);
@@ -964,11 +973,13 @@ RenderLayer::paintLayer(RenderLayer* rootLayer, QPainter *p,
         }
     }
     
+#if APPLE_CHANGES
     // End our transparency layer
     if (isTransparent() && m_usedTransparency) {
         p->endTransparencyLayer();
         m_usedTransparency = false;
     }
+#endif
 }
 
 bool
@@ -1312,27 +1323,6 @@ void RenderLayer::updateHoverActiveState(RenderObject::NodeInfo& info)
     }
 }
 
-// Helpers for the sorting of layers by z-index.
-static inline bool isOverflowOnly(const RenderLayer* layer)
-{
-    return layer->renderer()->hasOverflowClip() && 
-           !layer->renderer()->isPositioned() &&
-           !layer->renderer()->isRelPositioned() &&
-           !layer->isTransparent();
-}
-
-static inline bool compare(const RenderLayer* layer1, const RenderLayer* layer2)
-{
-    if (layer1->zIndex() == layer2->zIndex())
-        // Layers that exist solely because of overflow clip do not technically establish a stacking context.
-        // Our creation of RenderLayers for overflow regions is a convenience but is not really correct.  Overflow
-        // content should have just painted where it occurred in the document.  Although we can't do that,
-        // we will at least make sure that overflow layers lose to the other types of layers (positioned, relative positioned
-        // and opacity).
-        return isOverflowOnly(layer1) || !isOverflowOnly(layer2);
-    return layer1->zIndex() < layer2->zIndex();
-}
-
 // Sort the buffer from lowest z-index to highest.  The common scenario will have
 // most z-indices equal, so we optimize for that case (i.e., the list will be mostly
 // sorted already).
@@ -1350,7 +1340,7 @@ static void sortByZOrder(QPtrVector<RenderLayer>* buffer,
             for (uint j = start; j < i; j++) {
                 RenderLayer* elt = buffer->at(j);
                 RenderLayer* elt2 = buffer->at(j+1);
-                if (!compare(elt, elt2)) {
+                if (elt->zIndex() > elt2->zIndex()) {
                     sorted = false;
                     buffer->insert(j, elt2);
                     buffer->insert(j+1, elt);
@@ -1371,7 +1361,7 @@ static void sortByZOrder(QPtrVector<RenderLayer>* buffer,
 
         // Handle the fast common case (of equal z-indices).  The list may already
         // be completely sorted.
-        if (compare(elt, elt2))
+        if (elt->zIndex() <= elt2->zIndex())
             return;
 
         // We have to merge sort.  Ensure our merge buffer is big enough to hold
index 4436785c6ab930a08082dae5a205eb7558e0071c..d893671f93350e8baaa7c18d29e8bbaad4680e3e 100644 (file)
@@ -187,9 +187,11 @@ public:
     Marquee* marquee() const { return m_marquee; }
     void suspendMarquees();
 
-    bool isTransparent() const;
+#if APPLE_CHANGES
+    bool isTransparent();
     RenderLayer* transparentAncestor();
     void beginTransparencyLayers(QPainter* p);
+#endif
     
     RenderLayer* root() {
         RenderLayer* curr = this;