Merge from Chromium at DEPS revision 222756
This commit was generated by merge_to_master.py.
Change-Id: I085d892f6f1583a45f10eb394f195bbea5a334ef
diff --git a/Source/core/dom/Element.cpp b/Source/core/dom/Element.cpp
index ce5e91a..02518c5 100644
--- a/Source/core/dom/Element.cpp
+++ b/Source/core/dom/Element.cpp
@@ -61,6 +61,7 @@
#include "core/dom/NamedNodeMap.h"
#include "core/dom/NodeRenderStyle.h"
#include "core/dom/NodeRenderingContext.h"
+#include "core/dom/PostAttachCallbacks.h"
#include "core/dom/PseudoElement.h"
#include "core/dom/ScriptableDocumentParser.h"
#include "core/dom/SelectorQuery.h"
@@ -104,7 +105,7 @@
static inline bool shouldIgnoreAttributeCase(const Element* e)
{
- return e && e->document()->isHTMLDocument() && e->isHTMLElement();
+ return e && e->document().isHTMLDocument() && e->isHTMLElement();
}
class StyleResolverParentPusher {
@@ -118,7 +119,7 @@
{
if (m_pushedStyleResolver)
return;
- m_pushedStyleResolver = m_parent->document()->styleResolver();
+ m_pushedStyleResolver = m_parent->document().styleResolver();
m_pushedStyleResolver->pushParentElement(m_parent);
}
~StyleResolverParentPusher()
@@ -129,8 +130,8 @@
// This tells us that our pushed style selector is in a bad state,
// so we should just bail out in that scenario.
- ASSERT(m_pushedStyleResolver == m_parent->document()->styleResolver());
- if (m_pushedStyleResolver != m_parent->document()->styleResolver())
+ ASSERT(m_pushedStyleResolver == m_parent->document().styleResolver());
+ if (m_pushedStyleResolver != m_parent->document().styleResolver())
return;
m_pushedStyleResolver->popParentElement(m_parent);
@@ -195,7 +196,7 @@
Element::~Element()
{
#ifndef NDEBUG
- if (document() && document()->renderer()) {
+ if (document().renderer()) {
// When the document is not destroyed, an element that was part of a named flow
// content nodes should have been removed from the content nodes collection
// and the inNamedFlow flag reset.
@@ -226,7 +227,7 @@
detachAllAttrNodesFromElement();
if (hasPendingResources()) {
- document()->accessSVGExtensions()->removeElementFromPendingResources(this);
+ document().accessSVGExtensions()->removeElementFromPendingResources(this);
ASSERT(!hasPendingResources());
}
}
@@ -284,7 +285,7 @@
// We can't just use needsStyleRecalc() because if the node is in a
// display:none tree it might say it needs style recalc but the whole
// document is actually up to date.
- ASSERT(!document()->childNeedsStyleRecalc());
+ ASSERT(!document().childNeedsStyleRecalc());
}
// FIXME: Even if we are not visible, we might have a child that is visible.
@@ -325,7 +326,7 @@
PassRefPtr<Element> Element::cloneElementWithoutAttributesAndChildren()
{
- return document()->createElement(tagQName(), false);
+ return document().createElement(tagQName(), false);
}
PassRefPtr<Attr> Element::detachAttribute(size_t index)
@@ -480,7 +481,7 @@
void Element::scrollIntoView(bool alignToTop)
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (!renderer())
return;
@@ -495,7 +496,7 @@
void Element::scrollIntoViewIfNeeded(bool centerIfNeeded)
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (!renderer())
return;
@@ -509,7 +510,7 @@
void Element::scrollByUnits(int units, ScrollGranularity granularity)
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (!renderer())
return;
@@ -569,7 +570,7 @@
int Element::offsetLeft()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().partialUpdateLayoutIgnorePendingStylesheets(this);
if (RenderBoxModelObject* renderer = renderBoxModelObject())
return adjustForLocalZoom(renderer->pixelSnappedOffsetLeft(), renderer);
return 0;
@@ -577,7 +578,7 @@
int Element::offsetTop()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().partialUpdateLayoutIgnorePendingStylesheets(this);
if (RenderBoxModelObject* renderer = renderBoxModelObject())
return adjustForLocalZoom(renderer->pixelSnappedOffsetTop(), renderer);
return 0;
@@ -585,14 +586,14 @@
int Element::offsetWidth()
{
- document()->updateStyleForNodeIfNeeded(this);
+ document().updateStyleForNodeIfNeeded(this);
if (RenderBox* renderer = renderBox()) {
if (!renderer->requiresLayoutToDetermineWidth())
return adjustLayoutUnitForAbsoluteZoom(renderer->fixedOffsetWidth(), renderer).round();
}
- document()->updateLayoutIgnorePendingStylesheets();
+ document().partialUpdateLayoutIgnorePendingStylesheets(this);
if (RenderBoxModelObject* renderer = renderBoxModelObject())
return adjustLayoutUnitForAbsoluteZoom(renderer->pixelSnappedOffsetWidth(), renderer).round();
return 0;
@@ -600,7 +601,7 @@
int Element::offsetHeight()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().partialUpdateLayoutIgnorePendingStylesheets(this);
if (RenderBoxModelObject* renderer = renderBoxModelObject())
return adjustLayoutUnitForAbsoluteZoom(renderer->pixelSnappedOffsetHeight(), renderer).round();
return 0;
@@ -616,7 +617,7 @@
Element* Element::offsetParent()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (RenderObject* renderer = this->renderer())
return renderer->offsetParent();
return 0;
@@ -624,7 +625,7 @@
int Element::clientLeft()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (RenderBox* renderer = renderBox())
return adjustForAbsoluteZoom(roundToInt(renderer->clientLeft()), renderer);
@@ -633,7 +634,7 @@
int Element::clientTop()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (RenderBox* renderer = renderBox())
return adjustForAbsoluteZoom(roundToInt(renderer->clientTop()), renderer);
@@ -642,15 +643,15 @@
int Element::clientWidth()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
// When in strict mode, clientWidth for the document element should return the width of the containing frame.
// When in quirks mode, clientWidth for the body element should return the width of the containing frame.
- bool inQuirksMode = document()->inQuirksMode();
- if ((!inQuirksMode && document()->documentElement() == this) ||
- (inQuirksMode && isHTMLElement() && document()->body() == this)) {
- if (FrameView* view = document()->view()) {
- if (RenderView* renderView = document()->renderView())
+ bool inQuirksMode = document().inQuirksMode();
+ if ((!inQuirksMode && document().documentElement() == this)
+ || (inQuirksMode && isHTMLElement() && document().body() == this)) {
+ if (FrameView* view = document().view()) {
+ if (RenderView* renderView = document().renderView())
return adjustForAbsoluteZoom(view->layoutWidth(), renderView);
}
}
@@ -662,16 +663,16 @@
int Element::clientHeight()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
// When in strict mode, clientHeight for the document element should return the height of the containing frame.
// When in quirks mode, clientHeight for the body element should return the height of the containing frame.
- bool inQuirksMode = document()->inQuirksMode();
+ bool inQuirksMode = document().inQuirksMode();
- if ((!inQuirksMode && document()->documentElement() == this) ||
- (inQuirksMode && isHTMLElement() && document()->body() == this)) {
- if (FrameView* view = document()->view()) {
- if (RenderView* renderView = document()->renderView())
+ if ((!inQuirksMode && document().documentElement() == this)
+ || (inQuirksMode && isHTMLElement() && document().body() == this)) {
+ if (FrameView* view = document().view()) {
+ if (RenderView* renderView = document().renderView())
return adjustForAbsoluteZoom(view->layoutHeight(), renderView);
}
}
@@ -683,7 +684,7 @@
int Element::scrollLeft()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (RenderBox* rend = renderBox())
return adjustForAbsoluteZoom(rend->scrollLeft(), rend);
return 0;
@@ -691,7 +692,7 @@
int Element::scrollTop()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (RenderBox* rend = renderBox())
return adjustForAbsoluteZoom(rend->scrollTop(), rend);
return 0;
@@ -699,21 +700,21 @@
void Element::setScrollLeft(int newLeft)
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (RenderBox* rend = renderBox())
rend->setScrollLeft(static_cast<int>(newLeft * rend->style()->effectiveZoom()));
}
void Element::setScrollTop(int newTop)
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (RenderBox* rend = renderBox())
rend->setScrollTop(static_cast<int>(newTop * rend->style()->effectiveZoom()));
}
int Element::scrollWidth()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (RenderBox* rend = renderBox())
return adjustForAbsoluteZoom(rend->scrollWidth(), rend);
return 0;
@@ -721,7 +722,7 @@
int Element::scrollHeight()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (RenderBox* rend = renderBox())
return adjustForAbsoluteZoom(rend->scrollHeight(), rend);
return 0;
@@ -729,9 +730,9 @@
IntRect Element::boundsInRootViewSpace()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
- FrameView* view = document()->view();
+ FrameView* view = document().view();
if (!view)
return IntRect();
@@ -761,7 +762,7 @@
PassRefPtr<ClientRectList> Element::getClientRects()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
RenderBoxModelObject* renderBoxModelObject = this->renderBoxModelObject();
if (!renderBoxModelObject)
@@ -772,13 +773,13 @@
Vector<FloatQuad> quads;
renderBoxModelObject->absoluteQuads(quads);
- document()->adjustFloatQuadsForScrollAndAbsoluteZoom(quads, renderBoxModelObject);
+ document().adjustFloatQuadsForScrollAndAbsoluteZoom(quads, renderBoxModelObject);
return ClientRectList::create(quads);
}
PassRefPtr<ClientRect> Element::getBoundingClientRect()
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
Vector<FloatQuad> quads;
if (isSVGElement() && renderer() && !renderer()->isSVGRoot()) {
@@ -800,7 +801,7 @@
for (size_t i = 1; i < quads.size(); ++i)
result.unite(quads[i].boundingBox());
- document()->adjustFloatRectForScrollAndAbsoluteZoom(result, renderer());
+ document().adjustFloatRectForScrollAndAbsoluteZoom(result, renderer());
return ClientRect::create(result);
}
@@ -809,7 +810,7 @@
if (!renderer())
return IntRect();
// FIXME: this should probably respect transforms
- return document()->view()->contentsToScreen(renderer()->absoluteBoundingBoxRectIgnoringTransforms());
+ return document().view()->contentsToScreen(renderer()->absoluteBoundingBoxRectIgnoringTransforms());
}
const AtomicString& Element::getAttribute(const AtomicString& localName) const
@@ -868,21 +869,23 @@
return;
}
+ QualifiedName existingAttributeName = attributeItem(index)->name();
+
if (!inSynchronizationOfLazyAttribute)
- willModifyAttribute(name, attributeItem(index)->value(), newValue);
+ willModifyAttribute(existingAttributeName, attributeItem(index)->value(), newValue);
if (newValue != attributeItem(index)->value()) {
// If there is an Attr node hooked to this attribute, the Attr::setValue() call below
// will write into the ElementData.
// FIXME: Refactor this so it makes some sense.
- if (RefPtr<Attr> attrNode = inSynchronizationOfLazyAttribute ? 0 : attrIfExists(name))
+ if (RefPtr<Attr> attrNode = inSynchronizationOfLazyAttribute ? 0 : attrIfExists(existingAttributeName))
attrNode->setValue(newValue);
else
ensureUniqueElementData()->attributeItem(index)->setValue(newValue);
}
if (!inSynchronizationOfLazyAttribute)
- didModifyAttribute(name, newValue);
+ didModifyAttribute(existingAttributeName, newValue);
}
static inline AtomicString makeIdForStyleResolution(const AtomicString& value, bool inQuirksMode)
@@ -911,9 +914,9 @@
parseAttribute(name, newValue);
- document()->incDOMTreeVersion();
+ document().incDOMTreeVersion();
- StyleResolver* styleResolver = document()->styleResolverIfExists();
+ StyleResolver* styleResolver = document().styleResolverIfExists();
bool testShouldInvalidateStyle = attached() && styleResolver && styleChangeType() < SubtreeStyleChange;
bool shouldInvalidateStyle = false;
@@ -926,7 +929,7 @@
if (isIdAttributeName(name)) {
AtomicString oldId = elementData()->idForStyleResolution();
- AtomicString newId = makeIdForStyleResolution(newValue, document()->inQuirksMode());
+ AtomicString newId = makeIdForStyleResolution(newValue, document().inQuirksMode());
if (newId != oldId) {
elementData()->setIdForStyleResolution(newId);
shouldInvalidateStyle = testShouldInvalidateStyle && checkNeedsStyleInvalidationForIdChange(oldId, newId, styleResolver->ruleFeatureSet());
@@ -947,7 +950,7 @@
if (shouldInvalidateStyle)
setNeedsStyleRecalc();
- if (AXObjectCache* cache = document()->existingAXObjectCache())
+ if (AXObjectCache* cache = document().existingAXObjectCache())
cache->handleAttributeChanged(name, this);
}
@@ -1028,12 +1031,12 @@
void Element::classAttributeChanged(const AtomicString& newClassString)
{
- StyleResolver* styleResolver = document()->styleResolverIfExists();
+ StyleResolver* styleResolver = document().styleResolverIfExists();
bool testShouldInvalidateStyle = attached() && styleResolver && styleChangeType() < SubtreeStyleChange;
bool shouldInvalidateStyle = false;
if (classStringHasClassName(newClassString)) {
- const bool shouldFoldCase = document()->inQuirksMode();
+ const bool shouldFoldCase = document().inQuirksMode();
const SpaceSplitString oldClasses = elementData()->classNames();
elementData()->setClass(newClassString, shouldFoldCase);
const SpaceSplitString& newClasses = elementData()->classNames();
@@ -1058,7 +1061,7 @@
if (isIdAttributeName(name)) {
AtomicString oldId = elementData()->idForStyleResolution();
- AtomicString newId = makeIdForStyleResolution(newValue, document()->inQuirksMode());
+ AtomicString newId = makeIdForStyleResolution(newValue, document().inQuirksMode());
if (newId != oldId) {
if (!oldId.isEmpty() && featureSet.hasSelectorForId(oldId))
return true;
@@ -1070,7 +1073,7 @@
if (name == HTMLNames::classAttr) {
const AtomicString& newClassString = newValue;
if (classStringHasClassName(newClassString)) {
- const bool shouldFoldCase = document()->inQuirksMode();
+ const bool shouldFoldCase = document().inQuirksMode();
const SpaceSplitString& oldClasses = elementData()->classNames();
const SpaceSplitString newClasses(newClassString, shouldFoldCase);
if (checkSelectorForClassChange(oldClasses, newClasses, featureSet))
@@ -1126,8 +1129,8 @@
if (attributeVector.isEmpty())
return;
- if (document() && document()->sharedObjectPool())
- m_elementData = document()->sharedObjectPool()->cachedShareableElementDataWithAttributes(attributeVector);
+ if (document().sharedObjectPool())
+ m_elementData = document().sharedObjectPool()->cachedShareableElementDataWithAttributes(attributeVector);
else
m_elementData = ShareableElementData::createWithAttributes(attributeVector);
@@ -1192,14 +1195,14 @@
return KURL(parentBase, baseAttribute);
}
-const AtomicString& Element::imageSourceURL() const
+const AtomicString Element::imageSourceURL() const
{
return getAttribute(srcAttr);
}
-bool Element::rendererIsNeeded(const NodeRenderingContext& context)
+bool Element::rendererIsNeeded(const RenderStyle& style)
{
- return context.style()->display() != NONE;
+ return style.display() != NONE;
}
RenderObject* Element::createRenderer(RenderStyle* style)
@@ -1234,8 +1237,8 @@
if (isUpgradedCustomElement() && inDocument())
CustomElement::didEnterDocument(this, document());
- TreeScope* scope = insertionPoint->treeScope();
- if (scope != treeScope())
+ TreeScope& scope = insertionPoint->treeScope();
+ if (&scope != &treeScope())
return InsertionDone;
const AtomicString& idValue = getIdAttribute();
@@ -1247,7 +1250,7 @@
updateName(nullAtom, nameValue);
if (hasTagName(labelTag)) {
- if (scope->shouldCacheLabelsByForAttribute())
+ if (scope.shouldCacheLabelsByForAttribute())
updateLabel(scope, nullAtom, fastGetAttribute(forAttr));
}
@@ -1269,17 +1272,17 @@
if (Element* backdrop = pseudoElement(BACKDROP))
backdrop->removedFrom(insertionPoint);
- document()->removeFromTopLayer(this);
+ document().removeFromTopLayer(this);
if (containsFullScreenElement())
setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries(false);
- if (document()->page())
- document()->page()->pointerLockController().elementRemoved(this);
+ if (document().page())
+ document().page()->pointerLockController().elementRemoved(this);
setSavedLayerScrollOffset(IntSize());
- if (insertionPoint->isInTreeScope() && treeScope() == document()) {
+ if (insertionPoint->isInTreeScope() && &treeScope() == &document()) {
const AtomicString& idValue = getIdAttribute();
if (!idValue.isNull())
updateId(insertionPoint->treeScope(), idValue, nullAtom);
@@ -1289,8 +1292,8 @@
updateName(nameValue, nullAtom);
if (hasTagName(labelTag)) {
- TreeScope* treeScope = insertionPoint->treeScope();
- if (treeScope->shouldCacheLabelsByForAttribute())
+ TreeScope& treeScope = insertionPoint->treeScope();
+ if (treeScope.shouldCacheLabelsByForAttribute())
updateLabel(treeScope, fastGetAttribute(forAttr), nullAtom);
}
}
@@ -1298,7 +1301,7 @@
ContainerNode::removedFrom(insertionPoint);
if (wasInDocument) {
if (hasPendingResources())
- document()->accessSVGExtensions()->removeElementFromPendingResources(this);
+ document().accessSVGExtensions()->removeElementFromPendingResources(this);
if (isUpgradedCustomElement())
CustomElement::didLeaveDocument(this, insertionPoint->document());
@@ -1310,9 +1313,9 @@
void Element::attach(const AttachContext& context)
{
- PostAttachCallbackDisabler callbackDisabler(this);
+ ASSERT(document().inStyleRecalc());
+
StyleResolverParentPusher parentPusher(this);
- WidgetHierarchyUpdatesSuspensionScope suspendWidgetHierarchyUpdates;
// We've already been through detach when doing a lazyAttach, but we might
// need to clear any state that's been added since then.
@@ -1343,23 +1346,19 @@
if (hasRareData()) {
ElementRareData* data = elementRareData();
if (data->needsFocusAppearanceUpdateSoonAfterAttach()) {
- if (isFocusable() && document()->focusedElement() == this)
- document()->updateFocusAppearanceSoon(false /* don't restore selection */);
+ if (isFocusable() && document().focusedElement() == this)
+ document().updateFocusAppearanceSoon(false /* don't restore selection */);
data->setNeedsFocusAppearanceUpdateSoonAfterAttach(false);
}
}
- // FIXME: It doesn't appear safe to call didRecalculateStyleForElement when
- // not in a Document::recalcStyle. Since we're hopefully going to always
- // lazyAttach in the future that problem should go away.
- if (document()->inStyleRecalc())
- InspectorInstrumentation::didRecalculateStyleForElement(this);
+ InspectorInstrumentation::didRecalculateStyleForElement(this);
}
void Element::unregisterNamedFlowContentNode()
{
- if (RuntimeEnabledFeatures::cssRegionsEnabled() && inNamedFlow() && document()->renderView())
- document()->renderView()->flowThreadController()->unregisterNamedFlowContentNode(this);
+ if (RuntimeEnabledFeatures::cssRegionsEnabled() && inNamedFlow() && document().renderView())
+ document().renderView()->flowThreadController()->unregisterNamedFlowContentNode(this);
}
void Element::detach(const AttachContext& context)
@@ -1440,12 +1439,12 @@
PassRefPtr<RenderStyle> Element::originalStyleForRenderer()
{
- return document()->styleResolver()->styleForElement(this);
+ return document().styleResolver()->styleForElement(this);
}
-bool Element::recalcStyle(StyleChange change)
+bool Element::recalcStyle(StyleRecalcChange change)
{
- ASSERT(document()->inStyleRecalc());
+ ASSERT(document().inStyleRecalc());
if (hasCustomStyleCallbacks())
willRecalcStyle(change);
@@ -1473,14 +1472,14 @@
return change == Reattach;
}
-Node::StyleChange Element::recalcOwnStyle(StyleChange change)
+StyleRecalcChange Element::recalcOwnStyle(StyleRecalcChange change)
{
- ASSERT(document()->inStyleRecalc());
+ ASSERT(document().inStyleRecalc());
CSSAnimationUpdateScope cssAnimationUpdateScope(this);
RefPtr<RenderStyle> oldStyle = renderStyle();
RefPtr<RenderStyle> newStyle = styleForRenderer();
- StyleChange localChange = oldStyle ? Node::diff(oldStyle.get(), newStyle.get(), document()) : Reattach;
+ StyleRecalcChange localChange = RenderStyle::compare(oldStyle.get(), newStyle.get());
if (localChange == Reattach) {
AttachContext reattachContext;
@@ -1503,9 +1502,9 @@
// If "rem" units are used anywhere in the document, and if the document element's font size changes, then go ahead and force font updating
// all the way down the tree. This is simpler than having to maintain a cache of objects (and such font size changes should be rare anyway).
- if (document()->styleSheetCollections()->usesRemUnits() && document()->documentElement() == this && oldStyle && newStyle && oldStyle->fontSize() != newStyle->fontSize()) {
+ if (document().styleSheetCollections()->usesRemUnits() && document().documentElement() == this && oldStyle && newStyle && oldStyle->fontSize() != newStyle->fontSize()) {
// Cached RenderStyles may depend on the re units.
- document()->styleResolver()->invalidateMatchedPropertiesCache();
+ document().styleResolver()->invalidateMatchedPropertiesCache();
return Force;
}
@@ -1515,9 +1514,9 @@
return max(localChange, change);
}
-void Element::recalcChildStyle(StyleChange change)
+void Element::recalcChildStyle(StyleRecalcChange change)
{
- ASSERT(document()->inStyleRecalc());
+ ASSERT(document().inStyleRecalc());
StyleResolverParentPusher parentPusher(this);
@@ -1564,6 +1563,8 @@
if (shouldRecalcStyle(change, element)) {
parentPusher.push();
didReattach = element->recalcStyle(change);
+ } else if (document().styleResolver()->supportsStyleSharing(element)) {
+ document().styleResolver()->addToStyleSharingList(element);
}
}
@@ -1622,6 +1623,10 @@
return 0;
}
+void Element::didAddShadowRoot(ShadowRoot&)
+{
+}
+
ShadowRoot* Element::userAgentShadowRoot() const
{
if (ElementShadow* elementShadow = shadow()) {
@@ -1670,7 +1675,7 @@
static void checkForSiblingStyleChanges(Element* e, RenderStyle* style, bool finishedParsingCallback,
Node* beforeChange, Node* afterChange, int childCountDelta)
{
- if (!e->attached() || e->document()->hasPendingForcedStyleRecalc() || e->styleChangeType() >= SubtreeStyleChange)
+ if (!e->attached() || e->document().hasPendingForcedStyleRecalc() || e->styleChangeType() >= SubtreeStyleChange)
return;
// :empty selector.
@@ -1762,18 +1767,12 @@
void Element::beginParsingChildren()
{
clearIsParsingChildrenFinished();
- StyleResolver* styleResolver = document()->styleResolverIfExists();
- if (styleResolver && attached())
- styleResolver->pushParentElement(this);
}
void Element::finishParsingChildren()
{
- ContainerNode::finishParsingChildren();
setIsParsingChildrenFinished();
checkForSiblingStyleChanges(this, renderStyle(), true, lastChild(), 0, 0);
- if (StyleResolver* styleResolver = document()->styleResolverIfExists())
- styleResolver->popParentElement(this);
if (isCustomElement())
CustomElement::didFinishParsingChildren(this);
}
@@ -1844,7 +1843,7 @@
setAttributeInternal(index, attrNode->qualifiedName(), attrNode->value(), NotInSynchronizationOfLazyAttribute);
attrNode->attachToElement(this);
- treeScope()->adoptIfNeeded(attrNode);
+ treeScope().adoptIfNeeded(attrNode);
ensureAttrNodeListForElement(this)->append(attrNode);
return oldAttrNode.release();
@@ -1866,7 +1865,7 @@
return 0;
}
- ASSERT(document() == attr->document());
+ ASSERT(&document() == &attr->document());
synchronizeAttribute(attr->qualifiedName());
@@ -2005,15 +2004,15 @@
if (!inDocument())
return;
- Document* doc = document();
- if (doc->focusedElement() == this)
+ Document& doc = document();
+ if (doc.focusedElement() == this)
return;
// If the stylesheets have already been loaded we can reliably check isFocusable.
// If not, we continue and set the focused node on the focus controller below so
// that it can be updated soon after attach.
- if (doc->haveStylesheetsLoaded()) {
- doc->updateLayoutIgnorePendingStylesheets();
+ if (doc.haveStylesheetsLoaded()) {
+ doc.updateLayoutIgnorePendingStylesheets();
if (!isFocusable())
return;
}
@@ -2022,17 +2021,17 @@
return;
RefPtr<Node> protect;
- if (Page* page = doc->page()) {
+ if (Page* page = doc.page()) {
// Focus and change event handlers can cause us to lose our last ref.
// If a focus event handler changes the focus to a different node it
// does not make sense to continue and update appearence.
protect = this;
- if (!page->focusController().setFocusedElement(this, doc->frame(), direction))
+ if (!page->focusController().setFocusedElement(this, doc.frame(), direction))
return;
}
// Setting the focused node above might have invalidated the layout due to scripts.
- doc->updateLayoutIgnorePendingStylesheets();
+ doc.updateLayoutIgnorePendingStylesheets();
if (!isFocusable()) {
ensureElementRareData()->setNeedsFocusAppearanceUpdateSoonAfterAttach(true);
@@ -2046,20 +2045,20 @@
void Element::updateFocusAppearance(bool /*restorePreviousSelection*/)
{
if (isRootEditableElement()) {
- Frame* frame = document()->frame();
+ Frame* frame = document().frame();
if (!frame)
return;
// When focusing an editable element in an iframe, don't reset the selection if it already contains a selection.
- if (this == frame->selection()->rootEditableElement())
+ if (this == frame->selection().rootEditableElement())
return;
// FIXME: We should restore the previous selection if there is one.
VisibleSelection newSelection = VisibleSelection(firstPositionInOrBeforeNode(this), DOWNSTREAM);
- if (frame->selection()->shouldChangeSelection(newSelection)) {
- frame->selection()->setSelection(newSelection);
- frame->selection()->revealSelection();
+ if (frame->selection().shouldChangeSelection(newSelection)) {
+ frame->selection().setSelection(newSelection);
+ frame->selection().revealSelection();
}
} else if (renderer() && !renderer()->isWidget())
renderer()->scrollRectToVisible(boundingBox());
@@ -2068,12 +2067,12 @@
void Element::blur()
{
cancelFocusAppearanceUpdate();
- if (treeScope()->adjustedFocusedElement() == this) {
- Document* doc = document();
- if (doc->page())
- doc->page()->focusController().setFocusedElement(0, doc->frame());
+ if (treeScope().adjustedFocusedElement() == this) {
+ Document& doc = document();
+ if (doc.page())
+ doc.page()->focusController().setFocusedElement(0, doc.frame());
else
- doc->setFocusedElement(0);
+ doc.setFocusedElement(0);
}
}
@@ -2094,13 +2093,13 @@
void Element::dispatchFocusEvent(Element* oldFocusedElement, FocusDirection)
{
- RefPtr<FocusEvent> event = FocusEvent::create(eventNames().focusEvent, false, false, document()->defaultView(), 0, oldFocusedElement);
+ RefPtr<FocusEvent> event = FocusEvent::create(eventNames().focusEvent, false, false, document().defaultView(), 0, oldFocusedElement);
EventDispatcher::dispatchEvent(this, FocusEventDispatchMediator::create(event.release()));
}
void Element::dispatchBlurEvent(Element* newFocusedElement)
{
- RefPtr<FocusEvent> event = FocusEvent::create(eventNames().blurEvent, false, false, document()->defaultView(), 0, newFocusedElement);
+ RefPtr<FocusEvent> event = FocusEvent::create(eventNames().blurEvent, false, false, document().defaultView(), 0, newFocusedElement);
EventDispatcher::dispatchEvent(this, BlurEventDispatchMediator::create(event.release()));
}
@@ -2108,20 +2107,20 @@
{
ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden());
ASSERT(eventType == eventNames().focusinEvent || eventType == eventNames().DOMFocusInEvent);
- dispatchScopedEventDispatchMediator(FocusInEventDispatchMediator::create(FocusEvent::create(eventType, true, false, document()->defaultView(), 0, oldFocusedElement)));
+ dispatchScopedEventDispatchMediator(FocusInEventDispatchMediator::create(FocusEvent::create(eventType, true, false, document().defaultView(), 0, oldFocusedElement)));
}
void Element::dispatchFocusOutEvent(const AtomicString& eventType, Element* newFocusedElement)
{
ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden());
ASSERT(eventType == eventNames().focusoutEvent || eventType == eventNames().DOMFocusOutEvent);
- dispatchScopedEventDispatchMediator(FocusOutEventDispatchMediator::create(FocusEvent::create(eventType, true, false, document()->defaultView(), 0, newFocusedElement)));
+ dispatchScopedEventDispatchMediator(FocusOutEventDispatchMediator::create(FocusEvent::create(eventType, true, false, document().defaultView(), 0, newFocusedElement)));
}
String Element::innerText()
{
// We need to update layout, since plainText uses line boxes in the render tree.
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
if (!renderer())
return textContent(true);
@@ -2230,7 +2229,7 @@
ElementRareData* data = ensureElementRareData();
if (!data->computedStyle())
- data->setComputedStyle(document()->styleForElementIgnoringPendingStylesheets(this));
+ data->setComputedStyle(document().styleForElementIgnoringPendingStylesheets(this));
return pseudoElementSpecifier ? data->computedStyle()->getCachedPseudoStyle(pseudoElementSpecifier) : data->computedStyle();
}
@@ -2424,15 +2423,15 @@
Locale& Element::locale() const
{
- return document()->getCachedLocale(computeInheritedLanguage());
+ return document().getCachedLocale(computeInheritedLanguage());
}
void Element::cancelFocusAppearanceUpdate()
{
if (hasRareData())
elementRareData()->setNeedsFocusAppearanceUpdateSoonAfterAttach(false);
- if (document()->focusedElement() == this)
- document()->cancelFocusAppearanceUpdate();
+ if (document().focusedElement() == this)
+ document().cancelFocusAppearanceUpdate();
}
void Element::normalizeAttributes()
@@ -2445,7 +2444,7 @@
}
}
-void Element::updatePseudoElement(PseudoId pseudoId, StyleChange change)
+void Element::updatePseudoElement(PseudoId pseudoId, StyleRecalcChange change)
{
PseudoElement* element = pseudoElement(pseudoId);
if (element && (needsStyleRecalc() || shouldRecalcStyle(change, element))) {
@@ -2477,7 +2476,7 @@
ASSERT(!isPseudoElement());
RefPtr<PseudoElement> element = PseudoElement::create(this, pseudoId);
if (pseudoId == BACKDROP)
- document()->addToTopLayer(element.get(), this);
+ document().addToTopLayer(element.get(), this);
element->attach();
ensureElementRareData()->setPseudoElement(pseudoId, element.release());
@@ -2502,7 +2501,7 @@
return false;
}
- SelectorQuery* selectorQuery = document()->selectorQueryCache()->add(selector, document(), es);
+ SelectorQuery* selectorQuery = document().selectorQueryCache()->add(selector, document(), es);
if (!selectorQuery)
return false;
return selectorQuery->matches(this);
@@ -2532,7 +2531,7 @@
ASSERT(isURLAttribute(*attribute));
}
#endif
- return document()->completeURL(stripLeadingAndTrailingHTMLSpaces(getAttribute(name)));
+ return document().completeURL(stripLeadingAndTrailingHTMLSpaces(getAttribute(name)));
}
KURL Element::getNonEmptyURLAttribute(const QualifiedName& name) const
@@ -2546,7 +2545,7 @@
String value = stripLeadingAndTrailingHTMLSpaces(getAttribute(name));
if (value.isEmpty())
return KURL();
- return document()->completeURL(value);
+ return document().completeURL(value);
}
int Element::getIntegralAttribute(const QualifiedName& attributeName) const
@@ -2571,23 +2570,23 @@
setAttribute(attributeName, String::number(value));
}
-bool Element::childShouldCreateRenderer(const NodeRenderingContext& childContext) const
+bool Element::childShouldCreateRenderer(const Node& child) const
{
// Only create renderers for SVG elements whose parents are SVG elements, or for proper <svg xmlns="svgNS"> subdocuments.
- if (childContext.node()->isSVGElement())
- return childContext.node()->hasTagName(SVGNames::svgTag) || isSVGElement();
+ if (child.isSVGElement())
+ return child.hasTagName(SVGNames::svgTag) || isSVGElement();
- return ContainerNode::childShouldCreateRenderer(childContext);
+ return ContainerNode::childShouldCreateRenderer(child);
}
void Element::webkitRequestFullscreen()
{
- FullscreenElementStack::from(document())->requestFullScreenForElement(this, ALLOW_KEYBOARD_INPUT, FullscreenElementStack::EnforceIFrameAllowFullScreenRequirement);
+ FullscreenElementStack::from(&document())->requestFullScreenForElement(this, ALLOW_KEYBOARD_INPUT, FullscreenElementStack::EnforceIFrameAllowFullScreenRequirement);
}
void Element::webkitRequestFullScreen(unsigned short flags)
{
- FullscreenElementStack::from(document())->requestFullScreenForElement(this, (flags | LEGACY_MOZILLA_REQUEST), FullscreenElementStack::EnforceIFrameAllowFullScreenRequirement);
+ FullscreenElementStack::from(&document())->requestFullScreenForElement(this, (flags | LEGACY_MOZILLA_REQUEST), FullscreenElementStack::EnforceIFrameAllowFullScreenRequirement);
}
bool Element::containsFullScreenElement() const
@@ -2604,7 +2603,7 @@
static Element* parentCrossingFrameBoundaries(Element* element)
{
ASSERT(element);
- return element->parentElement() ? element->parentElement() : element->document()->ownerElement();
+ return element->parentElement() ? element->parentElement() : element->document().ownerElement();
}
void Element::setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries(bool flag)
@@ -2632,8 +2631,8 @@
void Element::webkitRequestPointerLock()
{
- if (document()->page())
- document()->page()->pointerLockController().requestPointerLock(this);
+ if (document().page())
+ document().page()->pointerLockController().requestPointerLock(this);
}
SpellcheckAttributeState Element::spellcheckAttributeState() const
@@ -2691,7 +2690,7 @@
const AtomicString& Element::webkitRegionOverset() const
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
DEFINE_STATIC_LOCAL(AtomicString, undefinedState, ("undefined", AtomicString::ConstructFromLiteral));
if (!RuntimeEnabledFeatures::cssRegionsEnabled() || !renderRegion())
@@ -2720,7 +2719,7 @@
Vector<RefPtr<Range> > Element::webkitGetRegionFlowRanges() const
{
- document()->updateLayoutIgnorePendingStylesheets();
+ document().updateLayoutIgnorePendingStylesheets();
Vector<RefPtr<Range> > rangeObjects;
if (RuntimeEnabledFeatures::cssRegionsEnabled() && renderer() && renderer()->isRenderRegion()) {
@@ -2775,21 +2774,21 @@
updateId(treeScope(), oldId, newId);
}
-inline void Element::updateId(TreeScope* scope, const AtomicString& oldId, const AtomicString& newId)
+inline void Element::updateId(TreeScope& scope, const AtomicString& oldId, const AtomicString& newId)
{
ASSERT(isInTreeScope());
ASSERT(oldId != newId);
if (!oldId.isEmpty())
- scope->removeElementById(oldId, this);
+ scope.removeElementById(oldId, this);
if (!newId.isEmpty())
- scope->addElementById(newId, this);
+ scope.addElementById(newId, this);
if (shouldRegisterAsExtraNamedItem())
updateExtraNamedItemRegistration(oldId, newId);
}
-void Element::updateLabel(TreeScope* scope, const AtomicString& oldForAttributeValue, const AtomicString& newForAttributeValue)
+void Element::updateLabel(TreeScope& scope, const AtomicString& oldForAttributeValue, const AtomicString& newForAttributeValue)
{
ASSERT(hasTagName(labelTag));
@@ -2800,9 +2799,9 @@
return;
if (!oldForAttributeValue.isEmpty())
- scope->removeLabel(oldForAttributeValue, toHTMLLabelElement(this));
+ scope.removeLabel(oldForAttributeValue, toHTMLLabelElement(this));
if (!newForAttributeValue.isEmpty())
- scope->addLabel(newForAttributeValue, toHTMLLabelElement(this));
+ scope.addLabel(newForAttributeValue, toHTMLLabelElement(this));
}
static bool hasSelectorForAttribute(Document* document, const AtomicString& localName)
@@ -2817,13 +2816,13 @@
else if (name == HTMLNames::nameAttr)
updateName(oldValue, newValue);
else if (name == HTMLNames::forAttr && hasTagName(labelTag)) {
- TreeScope* scope = treeScope();
- if (scope->shouldCacheLabelsByForAttribute())
+ TreeScope& scope = treeScope();
+ if (scope.shouldCacheLabelsByForAttribute())
updateLabel(scope, oldValue, newValue);
}
if (oldValue != newValue) {
- if (attached() && hasSelectorForAttribute(document(), name.localName()))
+ if (attached() && hasSelectorForAttribute(&document(), name.localName()))
setNeedsStyleRecalc();
if (isUpgradedCustomElement())
@@ -2833,27 +2832,27 @@
if (OwnPtr<MutationObserverInterestGroup> recipients = MutationObserverInterestGroup::createForAttributesMutation(this, name))
recipients->enqueueMutationRecord(MutationRecord::createAttributes(this, name, oldValue));
- InspectorInstrumentation::willModifyDOMAttr(document(), this, oldValue, newValue);
+ InspectorInstrumentation::willModifyDOMAttr(&document(), this, oldValue, newValue);
}
void Element::didAddAttribute(const QualifiedName& name, const AtomicString& value)
{
attributeChanged(name, value);
- InspectorInstrumentation::didModifyDOMAttr(document(), this, name.localName(), value);
+ InspectorInstrumentation::didModifyDOMAttr(&document(), this, name.localName(), value);
dispatchSubtreeModifiedEvent();
}
void Element::didModifyAttribute(const QualifiedName& name, const AtomicString& value)
{
attributeChanged(name, value);
- InspectorInstrumentation::didModifyDOMAttr(document(), this, name.localName(), value);
+ InspectorInstrumentation::didModifyDOMAttr(&document(), this, name.localName(), value);
// Do not dispatch a DOMSubtreeModified event here; see bug 81141.
}
void Element::didRemoveAttribute(const QualifiedName& name)
{
attributeChanged(name, nullAtom);
- InspectorInstrumentation::didRemoveDOMAttr(document(), this, name.localName());
+ InspectorInstrumentation::didRemoveDOMAttr(&document(), this, name.localName());
dispatchSubtreeModifiedEvent();
}
@@ -2864,7 +2863,7 @@
// If the documents differ by quirks mode then they differ by case sensitivity
// for class and id names so we need to go through the attribute change logic
// to pick up the new casing in the ElementData.
- if (oldDocument->inQuirksMode() != document()->inQuirksMode()) {
+ if (oldDocument->inQuirksMode() != document().inQuirksMode()) {
if (hasID())
setIdAttribute(getIdAttribute());
if (hasClass())
@@ -2874,26 +2873,26 @@
void Element::updateNamedItemRegistration(const AtomicString& oldName, const AtomicString& newName)
{
- if (!document()->isHTMLDocument())
+ if (!document().isHTMLDocument())
return;
if (!oldName.isEmpty())
- toHTMLDocument(document())->removeNamedItem(oldName);
+ toHTMLDocument(document()).removeNamedItem(oldName);
if (!newName.isEmpty())
- toHTMLDocument(document())->addNamedItem(newName);
+ toHTMLDocument(document()).addNamedItem(newName);
}
void Element::updateExtraNamedItemRegistration(const AtomicString& oldId, const AtomicString& newId)
{
- if (!document()->isHTMLDocument())
+ if (!document().isHTMLDocument())
return;
if (!oldId.isEmpty())
- toHTMLDocument(document())->removeExtraNamedItem(oldId);
+ toHTMLDocument(document()).removeExtraNamedItem(oldId);
if (!newId.isEmpty())
- toHTMLDocument(document())->addExtraNamedItem(newId);
+ toHTMLDocument(document()).addExtraNamedItem(newId);
}
PassRefPtr<HTMLCollection> Element::ensureCachedHTMLCollection(CollectionType type)
@@ -2924,8 +2923,8 @@
void Element::scheduleLayerUpdate()
{
- if (postAttachCallbacksAreSuspended())
- queuePostAttachCallback(scheduleLayerUpdateCallback, this);
+ if (document().inStyleRecalc())
+ PostAttachCallbacks::queueCallback(scheduleLayerUpdateCallback, this);
else
scheduleLayerUpdateCallback(this);
}
@@ -2959,8 +2958,8 @@
AttrNodeList* attrNodeList = ensureAttrNodeListForElement(this);
RefPtr<Attr> attrNode = findAttrNodeInList(attrNodeList, name);
if (!attrNode) {
- attrNode = Attr::create(this, name);
- treeScope()->adoptIfNeeded(attrNode.get());
+ attrNode = Attr::create(*this, name);
+ treeScope().adoptIfNeeded(attrNode.get());
attrNodeList->append(attrNode);
}
return attrNode.release();
@@ -2997,12 +2996,12 @@
removeAttrNodeListForElement(this);
}
-void Element::willRecalcStyle(StyleChange)
+void Element::willRecalcStyle(StyleRecalcChange)
{
ASSERT(hasCustomStyleCallbacks());
}
-void Element::didRecalcStyle(StyleChange)
+void Element::didRecalcStyle(StyleRecalcChange)
{
ASSERT(hasCustomStyleCallbacks());
}
@@ -3041,7 +3040,7 @@
// if the idForStyleResolution and the className need different casing.
bool ownerDocumentsHaveDifferentCaseSensitivity = false;
if (other.hasClass() || other.hasID())
- ownerDocumentsHaveDifferentCaseSensitivity = other.document()->inQuirksMode() != document()->inQuirksMode();
+ ownerDocumentsHaveDifferentCaseSensitivity = other.document().inQuirksMode() != document().inQuirksMode();
// If 'other' has a mutable ElementData, convert it to an immutable one so we can share it between both elements.
// We can only do this if there is no CSSOM wrapper for other's inline style, and there are no presentation attributes,
@@ -3195,7 +3194,7 @@
ASSERT(isStyledElement());
RefPtr<StylePropertySet>& inlineStyle = ensureUniqueElementData()->m_inlineStyle;
if (!inlineStyle)
- inlineStyle = MutableStylePropertySet::create(strictToCSSParserMode(isHTMLElement() && !document()->inQuirksMode()));
+ inlineStyle = MutableStylePropertySet::create(strictToCSSParserMode(isHTMLElement() && !document().inQuirksMode()));
else if (!inlineStyle->isMutable())
inlineStyle = inlineStyle->mutableCopy();
ASSERT(inlineStyle->isMutable());
@@ -3229,7 +3228,7 @@
inlineStyle = CSSParser::parseInlineStyleDeclaration(newStyleString, this);
} else {
ASSERT(inlineStyle->isMutable());
- static_pointer_cast<MutableStylePropertySet>(inlineStyle)->parseDeclaration(newStyleString, document()->elementSheet()->contents());
+ static_pointer_cast<MutableStylePropertySet>(inlineStyle)->parseDeclaration(newStyleString, document().elementSheet()->contents());
}
}
@@ -3237,21 +3236,21 @@
{
ASSERT(isStyledElement());
WTF::OrdinalNumber startLineNumber = WTF::OrdinalNumber::beforeFirst();
- if (document() && document()->scriptableDocumentParser() && !document()->isInDocumentWrite())
- startLineNumber = document()->scriptableDocumentParser()->lineNumber();
+ if (document().scriptableDocumentParser() && !document().isInDocumentWrite())
+ startLineNumber = document().scriptableDocumentParser()->lineNumber();
if (newStyleString.isNull()) {
if (PropertySetCSSStyleDeclaration* cssomWrapper = inlineStyleCSSOMWrapper())
cssomWrapper->clearParentElement();
ensureUniqueElementData()->m_inlineStyle.clear();
- } else if (modificationReason == ModifiedByCloning || document()->contentSecurityPolicy()->allowInlineStyle(document()->url(), startLineNumber)) {
+ } else if (modificationReason == ModifiedByCloning || document().contentSecurityPolicy()->allowInlineStyle(document().url(), startLineNumber)) {
setInlineStyleFromString(newStyleString);
}
elementData()->m_styleAttributeIsDirty = false;
setNeedsStyleRecalc(LocalStyleChange);
- InspectorInstrumentation::didInvalidateStyleAttr(document(), this);
+ InspectorInstrumentation::didInvalidateStyleAttr(&document(), this);
}
void Element::inlineStyleChanged()
@@ -3260,7 +3259,7 @@
setNeedsStyleRecalc(LocalStyleChange);
ASSERT(elementData());
elementData()->m_styleAttributeIsDirty = true;
- InspectorInstrumentation::didInvalidateStyleAttr(document(), this);
+ InspectorInstrumentation::didInvalidateStyleAttr(&document(), this);
}
bool Element::setInlineStyleProperty(CSSPropertyID propertyID, CSSValueID identifier, bool important)
@@ -3290,7 +3289,7 @@
bool Element::setInlineStyleProperty(CSSPropertyID propertyID, const String& value, bool important)
{
ASSERT(isStyledElement());
- bool changes = ensureMutableInlineStyle()->setProperty(propertyID, value, important, document()->elementSheet()->contents());
+ bool changes = ensureMutableInlineStyle()->setProperty(propertyID, value, important, document().elementSheet()->contents());
if (changes)
inlineStyleChanged();
return changes;
@@ -3320,7 +3319,7 @@
{
ASSERT(isStyledElement());
if (const StylePropertySet* inlineStyle = elementData() ? elementData()->inlineStyle() : 0)
- inlineStyle->addSubresourceStyleURLs(urls, document()->elementSheet()->contents());
+ inlineStyle->addSubresourceStyleURLs(urls, document().elementSheet()->contents());
}
static inline bool attributeNameSort(const pair<StringImpl*, AtomicString>& p1, const pair<StringImpl*, AtomicString>& p2)
@@ -3435,7 +3434,7 @@
void Element::addPropertyToPresentationAttributeStyle(MutableStylePropertySet* style, CSSPropertyID propertyID, const String& value)
{
ASSERT(isStyledElement());
- style->setProperty(propertyID, value, false, document()->elementSheet()->contents());
+ style->setProperty(propertyID, value, false, document().elementSheet()->contents());
}
void ElementData::deref()