Commit 5bc9720b authored by Rune Lillesveen's avatar Rune Lillesveen Committed by Commit Bot

[Squad] Rename cached/uncached pseudo style methods.

Be explicit about when we try to access pseudo style caches instead of
uncached. We will remove cached access for computing style for
PseudoElement and only use caching for pseudo element style where we
don't generate any elements (like ::selection) and for getComputedStyle
queries on elements which do not generate pseudo elements. E.g.
getComputedStyle(elm, "::before") when elm has no matching ::before
rules.

Bug: 836126
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I2e4436ea78b31bc72f05ada66b2955369ee93f4a
Reviewed-on: https://chromium-review.googlesource.com/1109825Reviewed-by: default avatarAnders Ruud <andruud@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569276}
parent f4b515c8
......@@ -3932,8 +3932,9 @@ LayoutObject* Element::PseudoElementLayoutObject(PseudoId pseudo_id) const {
return nullptr;
}
ComputedStyle* Element::PseudoStyle(const PseudoStyleRequest& request,
const ComputedStyle* parent_style) {
ComputedStyle* Element::CachedStyleForPseudoElement(
const PseudoStyleRequest& request,
const ComputedStyle* parent_style) {
ComputedStyle* style = MutableComputedStyle();
if (!style || (request.pseudo_id < kFirstInternalPseudoId &&
......@@ -3945,13 +3946,13 @@ ComputedStyle* Element::PseudoStyle(const PseudoStyleRequest& request,
return cached;
scoped_refptr<ComputedStyle> result =
GetUncachedPseudoStyle(request, parent_style);
StyleForPseudoElement(request, parent_style);
if (result)
return style->AddCachedPseudoStyle(std::move(result));
return nullptr;
}
scoped_refptr<ComputedStyle> Element::GetUncachedPseudoStyle(
scoped_refptr<ComputedStyle> Element::StyleForPseudoElement(
const PseudoStyleRequest& request,
const ComputedStyle* parent_style) {
const ComputedStyle* style = GetComputedStyle();
......
......@@ -710,9 +710,10 @@ class CORE_EXPORT Element : public ContainerNode {
PseudoElement* GetPseudoElement(PseudoId) const;
LayoutObject* PseudoElementLayoutObject(PseudoId) const;
ComputedStyle* PseudoStyle(const PseudoStyleRequest&,
const ComputedStyle* parent_style = nullptr);
scoped_refptr<ComputedStyle> GetUncachedPseudoStyle(
ComputedStyle* CachedStyleForPseudoElement(
const PseudoStyleRequest&,
const ComputedStyle* parent_style = nullptr);
scoped_refptr<ComputedStyle> StyleForPseudoElement(
const PseudoStyleRequest&,
const ComputedStyle* parent_style = nullptr);
bool CanGeneratePseudoElement(PseudoId) const;
......
......@@ -105,7 +105,8 @@ PseudoElement::PseudoElement(Element* parent, PseudoId pseudo_id)
scoped_refptr<ComputedStyle> PseudoElement::CustomStyleForLayoutObject() {
scoped_refptr<ComputedStyle> original_style =
ParentOrShadowHostElement()->PseudoStyle(PseudoStyleRequest(pseudo_id_));
ParentOrShadowHostElement()->CachedStyleForPseudoElement(
PseudoStyleRequest(pseudo_id_));
if (!original_style || original_style->Display() != EDisplay::kContents)
return original_style;
......
......@@ -3508,7 +3508,8 @@ ComputedStyle* LayoutObject::GetCachedPseudoStyle(
if (!element)
return nullptr;
return element->PseudoStyle(PseudoStyleRequest(pseudo), parent_style);
return element->CachedStyleForPseudoElement(PseudoStyleRequest(pseudo),
parent_style);
}
scoped_refptr<ComputedStyle> LayoutObject::GetUncachedPseudoStyle(
......@@ -3525,7 +3526,7 @@ scoped_refptr<ComputedStyle> LayoutObject::GetUncachedPseudoStyle(
if (element->IsPseudoElement())
return nullptr;
return element->GetUncachedPseudoStyle(request, parent_style);
return element->StyleForPseudoElement(request, parent_style);
}
void LayoutObject::AddAnnotatedRegions(Vector<AnnotatedRegionValue>& regions) {
......
......@@ -38,7 +38,7 @@ scoped_refptr<ComputedStyle> GetUncachedSelectionStyle(Node* node) {
if (ShadowRoot* root = node->ContainingShadowRoot()) {
if (root->IsUserAgent()) {
if (Element* shadow_host = node->OwnerShadowHost()) {
return shadow_host->GetUncachedPseudoStyle(
return shadow_host->StyleForPseudoElement(
PseudoStyleRequest(kPseudoIdSelection));
}
}
......@@ -51,8 +51,7 @@ scoped_refptr<ComputedStyle> GetUncachedSelectionStyle(Node* node) {
if (!element || element->IsPseudoElement())
return nullptr;
return element->GetUncachedPseudoStyle(
PseudoStyleRequest(kPseudoIdSelection));
return element->StyleForPseudoElement(PseudoStyleRequest(kPseudoIdSelection));
}
Color SelectionColor(const Document& document,
......@@ -80,8 +79,10 @@ const ComputedStyle* SelectionPseudoStyle(Node* node) {
if (!node)
return nullptr;
Element* element = Traversal<Element>::FirstAncestorOrSelf(*node);
return element ? element->PseudoStyle(PseudoStyleRequest(kPseudoIdSelection))
: nullptr;
if (!element)
return nullptr;
return element->CachedStyleForPseudoElement(
PseudoStyleRequest(kPseudoIdSelection));
}
} // anonymous namespace
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment