[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