Diff
Modified: trunk/Source/WebCore/ChangeLog (154540 => 154541)
--- trunk/Source/WebCore/ChangeLog 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/ChangeLog 2013-08-24 11:09:26 UTC (rev 154541)
@@ -1,3 +1,64 @@
+2013-08-24 Antti Koivisto <[email protected]>
+
+ Tighten before/after pseudo element accessors
+ https://bugs.webkit.org/show_bug.cgi?id=120204
+
+ Reviewed by Andreas Kling.
+
+ We have generic looking Element::pseudoElement(PseudoID) which only returns before/after pseudo elements.
+
+ Switch to Element::before/afterPseudoElement(), similarly for setters.
+
+ * WebCore.exp.in:
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::ComputedStyleExtractor::styledNode):
+ * dom/Element.cpp:
+ (WebCore::Element::~Element):
+ (WebCore::beforeOrAfterPseudeoElement):
+ (WebCore::Element::computedStyle):
+ (WebCore::Element::updatePseudoElement):
+ (WebCore::Element::createPseudoElementIfNeeded):
+ (WebCore::Element::updateBeforePseudoElement):
+ (WebCore::Element::updateAfterPseudoElement):
+ (WebCore::Element::beforePseudoElement):
+ (WebCore::Element::afterPseudoElement):
+ (WebCore::Element::setBeforePseudoElement):
+ (WebCore::Element::setAfterPseudoElement):
+ (WebCore::disconnectPseudoElement):
+ (WebCore::Element::clearBeforePseudoElement):
+ (WebCore::Element::clearAfterPseudoElement):
+ (WebCore::Element::clearStyleDerivedDataBeforeDetachingRenderer):
+ * dom/Element.h:
+ * dom/ElementRareData.h:
+ (WebCore::ElementRareData::beforePseudoElement):
+ (WebCore::ElementRareData::afterPseudoElement):
+ (WebCore::ElementRareData::hasPseudoElements):
+ (WebCore::ElementRareData::~ElementRareData):
+ (WebCore::ElementRareData::clearBeforePseudoElement):
+ (WebCore::ElementRareData::clearAfterPseudoElement):
+ (WebCore::ElementRareData::setBeforePseudoElement):
+ (WebCore::ElementRareData::setAfterPseudoElement):
+
+ Move detach logic to Element. ElementRareData should not implement semantics.
+
+ * dom/Node.cpp:
+ (WebCore::Node::pseudoAwarePreviousSibling):
+ (WebCore::Node::pseudoAwareNextSibling):
+ (WebCore::Node::pseudoAwareFirstChild):
+ (WebCore::Node::pseudoAwareLastChild):
+ * dom/NodeRenderingTraversal.cpp:
+ (WebCore::NodeRenderingTraversal::nextSiblingSlow):
+ (WebCore::NodeRenderingTraversal::previousSiblingSlow):
+ * rendering/RenderTreeAsText.cpp:
+ (WebCore::writeCounterValuesFromChildren):
+ (WebCore::counterValueForElement):
+ * style/StyleResolveTree.cpp:
+ (WebCore::Style::attachRenderTree):
+ (WebCore::Style::resolveTree):
+ * testing/Internals.cpp:
+ (WebCore::Internals::pauseAnimationAtTimeOnPseudoElement):
+ (WebCore::Internals::pauseTransitionAtTimeOnPseudoElement):
+
2013-08-23 Simon Fraser <[email protected]>
Improve scrolling behavior in iTunes
Modified: trunk/Source/WebCore/WebCore.exp.in (154540 => 154541)
--- trunk/Source/WebCore/WebCore.exp.in 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/WebCore.exp.in 2013-08-24 11:09:26 UTC (rev 154541)
@@ -1641,7 +1641,8 @@
__ZNK7WebCore7Element12getAttributeERKN3WTF12AtomicStringE
__ZNK7WebCore7Element12getAttributeERKNS_13QualifiedNameE
__ZNK7WebCore7Element12hasAttributeERKN3WTF12AtomicStringE
-__ZNK7WebCore7Element13pseudoElementENS_8PseudoIdE
+__ZNK7WebCore7Element18afterPseudoElementEv
+__ZNK7WebCore7Element19beforePseudoElementEv
__ZNK7WebCore7IntRect10intersectsERKS0_
__ZNK7WebCore7IntRect8containsERKS0_
__ZNK7WebCore7IntRectcv6CGRectEv
Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (154540 => 154541)
--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp 2013-08-24 11:09:26 UTC (rev 154541)
@@ -1634,11 +1634,15 @@
{
if (!m_node)
return 0;
- if (m_node->isElementNode()) {
- if (PseudoElement* element = toElement(m_node.get())->pseudoElement(m_pseudoElementSpecifier))
- return element;
- }
- return m_node.get();
+ if (!m_node->isElementNode())
+ return m_node.get();
+ Element* element = toElement(m_node.get());
+ PseudoElement* pseudoElement;
+ if (m_pseudoElementSpecifier == BEFORE && (pseudoElement = element->beforePseudoElement()))
+ return pseudoElement;
+ if (m_pseudoElementSpecifier == AFTER && (pseudoElement = element->afterPseudoElement()))
+ return pseudoElement;
+ return element;
}
PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(CSSPropertyID propertyID, EUpdateLayout updateLayout) const
Modified: trunk/Source/WebCore/dom/Element.cpp (154540 => 154541)
--- trunk/Source/WebCore/dom/Element.cpp 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/dom/Element.cpp 2013-08-24 11:09:26 UTC (rev 154541)
@@ -170,13 +170,11 @@
}
#endif
- if (hasRareData()) {
- ElementRareData* data = ""
- data->setPseudoElement(BEFORE, 0);
- data->setPseudoElement(AFTER, 0);
- removeShadowRoot();
- }
+ ASSERT(!beforePseudoElement());
+ ASSERT(!afterPseudoElement());
+ removeShadowRoot();
+
if (hasSyntheticAttrChildNodes())
detachAllAttrNodesFromElement();
@@ -2064,10 +2062,22 @@
ensureElementRareData().setMinimumSizeForResizing(size);
}
+static PseudoElement* beforeOrAfterPseudoElement(Element* host, PseudoId pseudoElementSpecifier)
+{
+ switch (pseudoElementSpecifier) {
+ case BEFORE:
+ return host->beforePseudoElement();
+ case AFTER:
+ return host->afterPseudoElement();
+ default:
+ return 0;
+ }
+}
+
RenderStyle* Element::computedStyle(PseudoId pseudoElementSpecifier)
{
- if (PseudoElement* element = pseudoElement(pseudoElementSpecifier))
- return element->computedStyle();
+ if (PseudoElement* pseudoElement = beforeOrAfterPseudoElement(this, pseudoElementSpecifier))
+ return pseudoElement->computedStyle();
// FIXME: Find and use the renderer from the pseudo element instead of the actual element so that the 'length'
// properties, which are only known by the renderer because it did the layout, will be correct and so that the
@@ -2302,66 +2312,105 @@
}
}
-void Element::updatePseudoElement(PseudoId pseudoId, Style::Change change)
+bool Element::updateExistingPseudoElement(PseudoElement* existingPseudoElement, Style::Change change)
{
- PseudoElement* existing = pseudoElement(pseudoId);
- if (existing) {
- // PseudoElement styles hang off their parent element's style so if we needed
- // a style recalc we should Force one on the pseudo.
- Style::resolveTree(existing, needsStyleRecalc() ? Style::Force : change);
+ // PseudoElement styles hang off their parent element's style so if we needed
+ // a style recalc we should Force one on the pseudo.
+ Style::resolveTree(existingPseudoElement, needsStyleRecalc() ? Style::Force : change);
- // Wait until our parent is not displayed or pseudoElementRendererIsNeeded
- // is false, otherwise we could continously create and destroy PseudoElements
- // when RenderObject::isChildAllowed on our parent returns false for the
- // PseudoElement's renderer for each style recalc.
- if (!renderer() || !pseudoElementRendererIsNeeded(renderer()->getCachedPseudoStyle(pseudoId)))
- setPseudoElement(pseudoId, 0);
- } else if (RefPtr<PseudoElement> element = createPseudoElementIfNeeded(pseudoId)) {
- Style::attachRenderTree(element.get());
- setPseudoElement(pseudoId, element.release());
- }
+ // FIXME: This is silly.
+ // Wait until our parent is not displayed or pseudoElementRendererIsNeeded
+ // is false, otherwise we could continously create and destroy PseudoElements
+ // when RenderObject::isChildAllowed on our parent returns false for the
+ // PseudoElement's renderer for each style recalc.
+ return renderer() && pseudoElementRendererIsNeeded(existingPseudoElement->renderStyle());
}
PassRefPtr<PseudoElement> Element::createPseudoElementIfNeeded(PseudoId pseudoId)
{
if (!document()->styleSheetCollection()->usesBeforeAfterRules())
return 0;
-
if (!renderer() || !renderer()->canHaveGeneratedChildren())
return 0;
-
if (isPseudoElement())
return 0;
-
if (!pseudoElementRendererIsNeeded(renderer()->getCachedPseudoStyle(pseudoId)))
return 0;
+ RefPtr<PseudoElement> pseudoElement = PseudoElement::create(this, pseudoId);
+ Style::attachRenderTree(pseudoElement.get());
+ return pseudoElement.release();
+}
- return PseudoElement::create(this, pseudoId);
+void Element::updateBeforePseudoElement(Style::Change change)
+{
+ if (PseudoElement* existingPseudoElement = beforePseudoElement()) {
+ if (!updateExistingPseudoElement(existingPseudoElement, change))
+ clearBeforePseudoElement();
+ return;
+ }
+ if (RefPtr<PseudoElement> pseudo = createPseudoElementIfNeeded(BEFORE))
+ setBeforePseudoElement(pseudo.release());
}
-bool Element::hasPseudoElements() const
+void Element::updateAfterPseudoElement(Style::Change change)
{
- return hasRareData() && elementRareData()->hasPseudoElements();
+ if (PseudoElement* existingPseudoElement = afterPseudoElement()) {
+ if (!updateExistingPseudoElement(existingPseudoElement, change))
+ clearAfterPseudoElement();
+ return;
+ }
+ if (RefPtr<PseudoElement> pseudo = createPseudoElementIfNeeded(AFTER))
+ setAfterPseudoElement(pseudo.release());
}
-PseudoElement* Element::pseudoElement(PseudoId pseudoId) const
+PseudoElement* Element::beforePseudoElement() const
{
- return hasRareData() ? elementRareData()->pseudoElement(pseudoId) : 0;
+ return hasRareData() ? elementRareData()->beforePseudoElement() : 0;
}
-void Element::setPseudoElement(PseudoId pseudoId, PassRefPtr<PseudoElement> element)
+PseudoElement* Element::afterPseudoElement() const
{
- ensureElementRareData().setPseudoElement(pseudoId, element);
+ return hasRareData() ? elementRareData()->afterPseudoElement() : 0;
+}
+
+void Element::setBeforePseudoElement(PassRefPtr<PseudoElement> element)
+{
+ ensureElementRareData().setBeforePseudoElement(element);
resetNeedsShadowTreeWalker();
}
-RenderObject* Element::pseudoElementRenderer(PseudoId pseudoId) const
+void Element::setAfterPseudoElement(PassRefPtr<PseudoElement> element)
{
- if (PseudoElement* element = pseudoElement(pseudoId))
- return element->renderer();
- return 0;
+ ensureElementRareData().setAfterPseudoElement(element);
+ resetNeedsShadowTreeWalker();
}
+static void disconnectPseudoElement(PseudoElement* pseudoElement)
+{
+ if (!pseudoElement)
+ return;
+ if (pseudoElement->attached())
+ Style::detachRenderTree(pseudoElement);
+ ASSERT(pseudoElement->hostElement());
+ pseudoElement->clearHostElement();
+}
+
+void Element::clearBeforePseudoElement()
+{
+ if (!hasRareData())
+ return;
+ disconnectPseudoElement(elementRareData()->beforePseudoElement());
+ elementRareData()->setBeforePseudoElement(nullptr);
+}
+
+void Element::clearAfterPseudoElement()
+{
+ if (!hasRareData())
+ return;
+ disconnectPseudoElement(elementRareData()->afterPseudoElement());
+ elementRareData()->setAfterPseudoElement(nullptr);
+}
+
// ElementTraversal API
Element* Element::firstElementChild() const
{
@@ -2956,11 +3005,11 @@
{
unregisterNamedFlowContentNode();
cancelFocusAppearanceUpdate();
+ clearBeforePseudoElement();
+ clearAfterPseudoElement();
if (!hasRareData())
return;
ElementRareData* data = ""
- data->setPseudoElement(BEFORE, 0);
- data->setPseudoElement(AFTER, 0);
data->setIsInCanvasSubtree(false);
data->resetComputedStyle();
data->resetDynamicRestyleObservations();
Modified: trunk/Source/WebCore/dom/Element.h (154540 => 154541)
--- trunk/Source/WebCore/dom/Element.h 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/dom/Element.h 2013-08-24 11:09:26 UTC (rev 154541)
@@ -422,9 +422,8 @@
virtual void finishParsingChildren();
virtual void beginParsingChildren() OVERRIDE FINAL;
- bool hasPseudoElements() const;
- PseudoElement* pseudoElement(PseudoId) const;
- RenderObject* pseudoElementRenderer(PseudoId) const;
+ PseudoElement* beforePseudoElement() const;
+ PseudoElement* afterPseudoElement() const;
bool childNeedsShadowWalker() const;
void didShadowTreeAwareChildrenChange();
@@ -551,7 +550,8 @@
virtual void willDetachRenderers();
virtual void didDetachRenderers();
- void updatePseudoElement(PseudoId, Style::Change = Style::NoChange);
+ void updateBeforePseudoElement(Style::Change);
+ void updateAfterPseudoElement(Style::Change);
void resetComputedStyle();
void clearStyleDerivedDataBeforeDetachingRenderer();
void clearHoverAndActiveStatusBeforeDetachingRenderer();
@@ -590,8 +590,13 @@
bool isUserActionElementHovered() const;
PassRefPtr<PseudoElement> createPseudoElementIfNeeded(PseudoId);
- void setPseudoElement(PseudoId, PassRefPtr<PseudoElement>);
+ bool updateExistingPseudoElement(PseudoElement* existing, Style::Change);
+ void setBeforePseudoElement(PassRefPtr<PseudoElement>);
+ void setAfterPseudoElement(PassRefPtr<PseudoElement>);
+ void clearBeforePseudoElement();
+ void clearAfterPseudoElement();
+
virtual bool areAuthorShadowsAllowed() const { return true; }
virtual void didAddUserAgentShadowRoot(ShadowRoot*) { }
virtual bool alwaysCreateUserAgentShadowRoot() const { return false; }
Modified: trunk/Source/WebCore/dom/ElementRareData.h (154540 => 154541)
--- trunk/Source/WebCore/dom/ElementRareData.h 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/dom/ElementRareData.h 2013-08-24 11:09:26 UTC (rev 154541)
@@ -39,10 +39,12 @@
~ElementRareData();
- void setPseudoElement(PseudoId, PassRefPtr<PseudoElement>);
- PseudoElement* pseudoElement(PseudoId) const;
- bool hasPseudoElements() const { return m_generatedBefore || m_generatedAfter; }
+ void setBeforePseudoElement(PassRefPtr<PseudoElement>);
+ void setAfterPseudoElement(PassRefPtr<PseudoElement>);
+ PseudoElement* beforePseudoElement() const { return m_beforePseudoElement.get(); }
+ PseudoElement* afterPseudoElement() const { return m_afterPseudoElement.get(); }
+
void resetComputedStyle();
void resetDynamicRestyleObservations();
@@ -169,8 +171,8 @@
RefPtr<ShadowRoot> m_shadowRoot;
OwnPtr<NamedNodeMap> m_attributeMap;
- RefPtr<PseudoElement> m_generatedBefore;
- RefPtr<PseudoElement> m_generatedAfter;
+ RefPtr<PseudoElement> m_beforePseudoElement;
+ RefPtr<PseudoElement> m_afterPseudoElement;
ElementRareData(RenderObject*);
void releasePseudoElement(PseudoElement*);
@@ -215,51 +217,22 @@
inline ElementRareData::~ElementRareData()
{
ASSERT(!m_shadowRoot);
- ASSERT(!m_generatedBefore);
- ASSERT(!m_generatedAfter);
+ ASSERT(!m_beforePseudoElement);
+ ASSERT(!m_afterPseudoElement);
}
-inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtr<PseudoElement> element)
+inline void ElementRareData::setBeforePseudoElement(PassRefPtr<PseudoElement> pseudoElement)
{
- switch (pseudoId) {
- case BEFORE:
- releasePseudoElement(m_generatedBefore.get());
- m_generatedBefore = element;
- break;
- case AFTER:
- releasePseudoElement(m_generatedAfter.get());
- m_generatedAfter = element;
- break;
- default:
- ASSERT_NOT_REACHED();
- }
+ ASSERT(!m_beforePseudoElement || !pseudoElement);
+ m_beforePseudoElement = pseudoElement;
}
-inline PseudoElement* ElementRareData::pseudoElement(PseudoId pseudoId) const
+inline void ElementRareData::setAfterPseudoElement(PassRefPtr<PseudoElement> pseudoElement)
{
- switch (pseudoId) {
- case BEFORE:
- return m_generatedBefore.get();
- case AFTER:
- return m_generatedAfter.get();
- default:
- return 0;
- }
+ ASSERT(!m_afterPseudoElement || !pseudoElement);
+ m_afterPseudoElement = pseudoElement;
}
-inline void ElementRareData::releasePseudoElement(PseudoElement* element)
-{
- if (!element)
- return;
- if (element->attached())
- Style::detachRenderTree(element);
- element->clearHostElement();
-
- ASSERT(!element->nextSibling());
- ASSERT(!element->previousSibling());
- ASSERT(!element->parentNode());
-}
-
inline void ElementRareData::resetComputedStyle()
{
setComputedStyle(0);
Modified: trunk/Source/WebCore/dom/Node.cpp (154540 => 154541)
--- trunk/Source/WebCore/dom/Node.cpp 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/dom/Node.cpp 2013-08-24 11:09:26 UTC (rev 154541)
@@ -895,7 +895,7 @@
if (isAfterPseudoElement() && parentOrHost->lastChild())
return parentOrHost->lastChild();
if (!isBeforePseudoElement())
- return parentOrHost->pseudoElement(BEFORE);
+ return parentOrHost->beforePseudoElement();
}
return previousSibling();
}
@@ -907,7 +907,7 @@
if (isBeforePseudoElement() && parentOrHost->firstChild())
return parentOrHost->firstChild();
if (!isAfterPseudoElement())
- return parentOrHost->pseudoElement(AFTER);
+ return parentOrHost->afterPseudoElement();
}
return nextSibling();
}
@@ -916,12 +916,12 @@
{
if (isElementNode()) {
const Element* currentElement = toElement(this);
- Node* first = currentElement->pseudoElement(BEFORE);
+ Node* first = currentElement->beforePseudoElement();
if (first)
return first;
first = currentElement->firstChild();
if (!first)
- first = currentElement->pseudoElement(AFTER);
+ first = currentElement->afterPseudoElement();
return first;
}
return firstChild();
@@ -931,12 +931,12 @@
{
if (isElementNode()) {
const Element* currentElement = toElement(this);
- Node* last = currentElement->pseudoElement(AFTER);
+ Node* last = currentElement->afterPseudoElement();
if (last)
return last;
last = currentElement->lastChild();
if (!last)
- last = currentElement->pseudoElement(BEFORE);
+ last = currentElement->beforePseudoElement();
return last;
}
return lastChild();
@@ -1063,7 +1063,14 @@
bool Node::needsShadowTreeWalkerSlow() const
{
- return (isShadowRoot() || (isElementNode() && (isInsertionPoint() || isPseudoElement() || toElement(this)->hasPseudoElements() || toElement(this)->shadowRoot())));
+ if (isShadowRoot())
+ return true;
+ if (!isElementNode())
+ return false;
+ const Element* asElement = toElement(this);
+ if (asElement->isPseudoElement() || asElement->beforePseudoElement() || asElement->afterPseudoElement())
+ return true;
+ return asElement->isInsertionPoint() || asElement->shadowRoot();
}
bool Node::isRootEditableElement() const
Modified: trunk/Source/WebCore/dom/NodeRenderingTraversal.cpp (154540 => 154541)
--- trunk/Source/WebCore/dom/NodeRenderingTraversal.cpp 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/dom/NodeRenderingTraversal.cpp 2013-08-24 11:09:26 UTC (rev 154541)
@@ -54,7 +54,7 @@
Node* parent = walker.traverseParent(node);
if (parent && parent->isElementNode())
- return toElement(parent)->pseudoElement(AFTER);
+ return toElement(parent)->afterPseudoElement();
return 0;
}
@@ -73,7 +73,7 @@
Node* parent = walker.traverseParent(node);
if (parent && parent->isElementNode())
- return toElement(parent)->pseudoElement(BEFORE);
+ return toElement(parent)->beforePseudoElement();
return 0;
}
Modified: trunk/Source/WebCore/rendering/RenderTreeAsText.cpp (154540 => 154541)
--- trunk/Source/WebCore/rendering/RenderTreeAsText.cpp 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/rendering/RenderTreeAsText.cpp 2013-08-24 11:09:26 UTC (rev 154541)
@@ -35,6 +35,7 @@
#include "HTMLNames.h"
#include "InlineTextBox.h"
#include "PrintContext.h"
+#include "PseudoElement.h"
#include "RenderBR.h"
#include "RenderDetailsMarker.h"
#include "RenderFileUploadControl.h"
@@ -902,6 +903,8 @@
static void writeCounterValuesFromChildren(TextStream& stream, RenderObject* parent, bool& isFirstCounter)
{
+ if (!parent)
+ return;
for (RenderObject* child = parent->firstChild(); child; child = child->nextSibling()) {
if (child->isCounter()) {
if (!isFirstCounter)
@@ -921,10 +924,10 @@
TextStream stream;
bool isFirstCounter = true;
// The counter renderers should be children of :before or :after pseudo-elements.
- if (RenderObject* before = element->pseudoElementRenderer(BEFORE))
- writeCounterValuesFromChildren(stream, before, isFirstCounter);
- if (RenderObject* after = element->pseudoElementRenderer(AFTER))
- writeCounterValuesFromChildren(stream, after, isFirstCounter);
+ if (PseudoElement* before = element->beforePseudoElement())
+ writeCounterValuesFromChildren(stream, before->renderer(), isFirstCounter);
+ if (PseudoElement* after = element->afterPseudoElement())
+ writeCounterValuesFromChildren(stream, after->renderer(), isFirstCounter);
return stream.release();
}
Modified: trunk/Source/WebCore/style/StyleResolveTree.cpp (154540 => 154541)
--- trunk/Source/WebCore/style/StyleResolveTree.cpp 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/style/StyleResolveTree.cpp 2013-08-24 11:09:26 UTC (rev 154541)
@@ -176,7 +176,7 @@
if (current->parentElement() && current->parentElement()->isInCanvasSubtree())
current->setIsInCanvasSubtree(true);
- current->updatePseudoElement(BEFORE);
+ current->updateBeforePseudoElement(NoChange);
StyleResolverParentPusher parentPusher(current);
@@ -201,7 +201,7 @@
cache->updateCacheAfterNodeIsAttached(current);
}
- current->updatePseudoElement(AFTER);
+ current->updateAfterPseudoElement(NoChange);
current->updateFocusAppearanceAfterAttachIfNeeded();
@@ -429,7 +429,7 @@
}
}
- current->updatePseudoElement(BEFORE, change);
+ current->updateBeforePseudoElement(change);
// FIXME: This check is good enough for :hover + foo, but it is not good enough for :hover + foo + bar.
// For now we will just worry about the common case, since it's a lot trickier to get the second case right
@@ -455,7 +455,7 @@
forceCheckOfAnyElementSibling = forceCheckOfAnyElementSibling || (childRulesChanged && hasIndirectAdjacentRules);
}
- current->updatePseudoElement(AFTER, change);
+ current->updateAfterPseudoElement(change);
}
current->clearNeedsStyleRecalc();
Modified: trunk/Source/WebCore/testing/Internals.cpp (154540 => 154541)
--- trunk/Source/WebCore/testing/Internals.cpp 2013-08-24 08:44:44 UTC (rev 154540)
+++ trunk/Source/WebCore/testing/Internals.cpp 2013-08-24 11:09:26 UTC (rev 154541)
@@ -457,7 +457,7 @@
return false;
}
- PseudoElement* pseudoElement = element->pseudoElement(pseudoId == "before" ? BEFORE : AFTER);
+ PseudoElement* pseudoElement = pseudoId == "before" ? element->beforePseudoElement() : element->afterPseudoElement();
if (!pseudoElement) {
ec = INVALID_ACCESS_ERR;
return false;
@@ -487,7 +487,7 @@
return false;
}
- PseudoElement* pseudoElement = element->pseudoElement(pseudoId == "before" ? BEFORE : AFTER);
+ PseudoElement* pseudoElement = pseudoId == "before" ? element->beforePseudoElement() : element->afterPseudoElement();
if (!pseudoElement) {
ec = INVALID_ACCESS_ERR;
return false;