[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:22:54 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit cbf33ef4bbcb0c89dbff475e3f55b1a60397d398
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Jan 30 20:24:32 2003 +0000

    	Fix for 3155954.  Make sure no layers get made for :before,
    	:after or :first-letter.  The only debatable case is whether
    	overflow can apply to generated content.  Included a FIXME
    	to think about that case.
    
            Reviewed by darin
    
            * khtml/rendering/render_container.cpp:
            (RenderContainer::insertPseudoChild):
            * khtml/rendering/render_flow.cpp:
            (RenderFlow::addChildToFlow):
            * khtml/rendering/render_text.cpp:
            (RenderText::nodeAtPoint):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3509 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index a9563c2..338795e 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,19 @@
+2003-01-30  David Hyatt  <hyatt at apple.com>
+
+	Fix for 3155954.  Make sure no layers get made for :before,
+	:after or :first-letter.  The only debatable case is whether
+	overflow can apply to generated content.  Included a FIXME
+	to think about that case.
+	
+        Reviewed by darin
+
+        * khtml/rendering/render_container.cpp:
+        (RenderContainer::insertPseudoChild):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::addChildToFlow):
+        * khtml/rendering/render_text.cpp:
+        (RenderText::nodeAtPoint):
+
 2003-01-30  Darin Adler  <darin at apple.com>
 
         * khtml/html/html_documentimpl.cpp: Updated license.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index a9563c2..338795e 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,19 @@
+2003-01-30  David Hyatt  <hyatt at apple.com>
+
+	Fix for 3155954.  Make sure no layers get made for :before,
+	:after or :first-letter.  The only debatable case is whether
+	overflow can apply to generated content.  Included a FIXME
+	to think about that case.
+	
+        Reviewed by darin
+
+        * khtml/rendering/render_container.cpp:
+        (RenderContainer::insertPseudoChild):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::addChildToFlow):
+        * khtml/rendering/render_text.cpp:
+        (RenderText::nodeAtPoint):
+
 2003-01-30  Darin Adler  <darin at apple.com>
 
         * khtml/html/html_documentimpl.cpp: Updated license.
diff --git a/WebCore/khtml/rendering/render_container.cpp b/WebCore/khtml/rendering/render_container.cpp
index 02ec17a..f326851 100644
--- a/WebCore/khtml/rendering/render_container.cpp
+++ b/WebCore/khtml/rendering/render_container.cpp
@@ -214,18 +214,25 @@ void RenderContainer::insertPseudoChild(RenderStyle::PseudoId type, RenderObject
 
     if (pseudo && pseudo->display() != NONE)
     {
+        // From the CSS2 specification:
+        // User agents must ignore the following properties with :before and :after
+        // pseudo-elements: 'position', 'float', list properties, and table properties.
+        // Basically we need to ensure that no RenderLayer gets made for generated
+        // content.
+        pseudo->setPosition(STATIC);
+        pseudo->setFloating(FNONE);
+        pseudo->setOverflow(OVISIBLE); // FIXME: Glazman's blog does this. Wacky.
+                                       // This property might need to be allowed if the
+                                       // generated content is a block.
+        
         if (pseudo->contentType()==CONTENT_TEXT)
         {
             RenderObject* po = new (renderArena()) RenderFlow(0 /* anonymous box */);
-            po->setParent(this); // Set the parent now, so setStyle will be able to find a renderArena.
             po->setStyle(pseudo);
-            po->setParent(0); // Unset the parent to avoid asserting in addChild.
             addChild(po, beforeChild);
             
             RenderText* t = new (renderArena()) RenderText(0 /*anonymous object */, pseudo->contentText());
-            t->setParent(po); // Set the parent now, so setStyle will be able to find a renderArena.
             t->setStyle(pseudo);
-            t->setParent(0); // Unset the parent to avoid asserting in addChild.
             po->addChild(t);
             
 //            kdDebug() << DOM::DOMString(pseudo->contentText()).string() << endl;
@@ -236,9 +243,7 @@ void RenderContainer::insertPseudoChild(RenderStyle::PseudoId type, RenderObject
         else if (pseudo->contentType()==CONTENT_OBJECT)
         {
             RenderObject* po = new (renderArena()) RenderImage(0);
-            po->setParent(this); // Set the parent now, so setStyle will be able to find a renderArena.
             po->setStyle(pseudo);
-            po->setParent(0); // Unset the parent to avoid asserting in addChild.
             addChild(po, beforeChild);
             po->close();
         }
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index 0e913e4..c92b763 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -2013,10 +2013,10 @@ void RenderFlow::addChildToFlow(RenderObject* newChild, RenderObject* beforeChil
         if ( (pseudoStyle=style()->getPseudoStyle(RenderStyle::FIRST_LETTER)) ) {
             RenderFlow* firstLetter = new (renderArena()) RenderFlow(0 /* anonymous box */);
             pseudoStyle->setDisplay( INLINE );
+            pseudoStyle->setPosition( STATIC ); // CSS2 says first-letter can't be positioned.
             firstLetter->setStyle(pseudoStyle);
-    
             addChild(firstLetter);
-    
+
             DOMStringImpl* oldText = newTextChild->string();
     
             if(oldText->l >= 1) {
@@ -2028,7 +2028,7 @@ void RenderFlow::addChildToFlow(RenderObject* newChild, RenderObject* beforeChil
                 //kdDebug( 6040 ) << "letter= '" << DOMString(oldText->substring(0,length)).string() << "'" << endl;
                 newTextChild->setText(oldText->substring(length,oldText->l-length));
     
-                RenderText* letter = new (renderArena()) RenderText(0 /* anonymous object */, oldText->substring(0,length));
+                RenderText* letter = new (renderArena()) RenderText(newTextChild->element(), oldText->substring(0,length));
                 RenderStyle* newStyle = new RenderStyle();
                 newStyle->inheritFrom(pseudoStyle);
                 letter->setStyle(newStyle);
diff --git a/WebCore/khtml/rendering/render_text.cpp b/WebCore/khtml/rendering/render_text.cpp
index 918b1ff..c6a0515 100644
--- a/WebCore/khtml/rendering/render_text.cpp
+++ b/WebCore/khtml/rendering/render_text.cpp
@@ -470,7 +470,7 @@ bool RenderText::nodeAtPoint(NodeInfo& info, int _x, int _y, int _tx, int _ty, b
 
     setMouseInside(inside);
 
-    if (inside) {
+    if (inside && element()) {
         if (info.innerNode() && info.innerNode()->renderer() && 
             !info.innerNode()->renderer()->isInline()) {
             // Within the same layer, inlines are ALWAYS fully above blocks.  Change inner node.

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list