[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:20:28 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 061700e7f04b96eb9ec804d2ab80886c42f53fbf
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jan 21 02:35:56 2003 +0000

    	Fix :hover performance regression on wsj.com.  Moving my
    	<a name="foo"> quirk down into the :hover rule  matching code,
    	so that we'll know never to apply :hover to anchorless <a>s.
    
            Reviewed by gramps
    
            * khtml/css/cssstyleselector.cpp:
            * khtml/rendering/render_object.cpp:
            (RenderObject::setHoverAndActive):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3362 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 7899cd0..6bbed14 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,15 @@
+2003-01-20  David Hyatt  <hyatt at apple.com>
+
+	Fix :hover performance regression on wsj.com.  Moving my
+	<a name="foo"> quirk down into the :hover rule  matching code,
+	so that we'll know never to apply :hover to anchorless <a>s.
+	
+        Reviewed by gramps
+
+        * khtml/css/cssstyleselector.cpp:
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::setHoverAndActive):
+
 2003-01-20  Maciej Stachowiak  <mjs at apple.com>
 
         Reviewed by Trey.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 7899cd0..6bbed14 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,15 @@
+2003-01-20  David Hyatt  <hyatt at apple.com>
+
+	Fix :hover performance regression on wsj.com.  Moving my
+	<a name="foo"> quirk down into the :hover rule  matching code,
+	so that we'll know never to apply :hover to anchorless <a>s.
+	
+        Reviewed by gramps
+
+        * khtml/css/cssstyleselector.cpp:
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::setHoverAndActive):
+
 2003-01-20  Maciej Stachowiak  <mjs at apple.com>
 
         Reviewed by Trey.
diff --git a/WebCore/khtml/css/cssstyleselector.cpp b/WebCore/khtml/css/cssstyleselector.cpp
index 1edabdf..79acecf 100644
--- a/WebCore/khtml/css/cssstyleselector.cpp
+++ b/WebCore/khtml/css/cssstyleselector.cpp
@@ -805,16 +805,21 @@ bool CSSStyleSelector::checkOneSelector(DOM::CSSSelector *sel, DOM::ElementImpl
                 if ( pseudoState == PseudoVisited )
                     return true;
                 break;
-            case CSSSelector::PseudoHover:
-                if (element == e)
-                    style->setAffectedByHoverRules(true);
-                if (e->renderer()) {
-                    if (element != e)
-                        e->renderer()->style()->setAffectedByHoverRules(true);
-                    if (e->renderer()->mouseInside())
-                        return true;
+            case CSSSelector::PseudoHover: {
+                // If we're in quirks mode, then hover should never match anchors with no
+                // href.  This is important for sites like wsj.com.
+                if (strictParsing || e->id() != ID_A || e->hasAnchor()) {
+                    if (element == e)
+                        style->setAffectedByHoverRules(true);
+                    if (e->renderer()) {
+                        if (element != e)
+                            e->renderer()->style()->setAffectedByHoverRules(true);
+                        if (e->renderer()->mouseInside())
+                            return true;
+                    }
                 }
                 break;
+            }
             case CSSSelector::PseudoFocus:
                 if (e && e->focused()) {
                     return true;
diff --git a/WebCore/khtml/rendering/render_object.cpp b/WebCore/khtml/rendering/render_object.cpp
index c3ffc92..cad022d 100644
--- a/WebCore/khtml/rendering/render_object.cpp
+++ b/WebCore/khtml/rendering/render_object.cpp
@@ -1136,15 +1136,12 @@ void RenderObject::setHoverAndActive(NodeInfo& info, bool oldinside, bool inside
 {
     DOM::NodeImpl* elt = element();
     if (elt) {
-        bool strictMode = (elt->getDocument()->parseMode() == DocumentImpl::Strict);
-        if (strictMode || elt->id() != ID_A || elt->hasAnchor()) {
-            bool oldactive = elt->active();
-            if (oldactive != (inside && info.active() && elt == info.innerNode()))
-                elt->setActive(inside && info.active() && elt == info.innerNode());
-            if ((oldinside != mouseInside() && style()->affectedByHoverRules()) ||
-                (oldactive != elt->active() && style()->affectedByActiveRules()))
-                elt->setChanged();
-        }
+        bool oldactive = elt->active();
+        if (oldactive != (inside && info.active() && elt == info.innerNode()))
+            elt->setActive(inside && info.active() && elt == info.innerNode());
+        if ((oldinside != mouseInside() && style()->affectedByHoverRules()) ||
+            (oldactive != elt->active() && style()->affectedByActiveRules()))
+            elt->setChanged();
     }
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list