Title: [225485] trunk/Source/WebCore
- Revision
- 225485
- Author
- an...@apple.com
- Date
- 2017-12-04 12:31:35 -0800 (Mon, 04 Dec 2017)
Log Message
Enable selector filtering for ::before and ::after pseudo element resolution
https://bugs.webkit.org/show_bug.cgi?id=180364
Reviewed by Ryosuke Niwa.
Since these pseudo elements are now resolved by TreeResolver we can use selector filter for them.
This is 10%+ progression in StyleBench pseudo element subtest.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::pseudoStyleForElement):
* css/StyleResolver.h:
* style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolvePseudoStyle):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (225484 => 225485)
--- trunk/Source/WebCore/ChangeLog 2017-12-04 19:37:00 UTC (rev 225484)
+++ trunk/Source/WebCore/ChangeLog 2017-12-04 20:31:35 UTC (rev 225485)
@@ -1,3 +1,20 @@
+2017-12-04 Antti Koivisto <an...@apple.com>
+
+ Enable selector filtering for ::before and ::after pseudo element resolution
+ https://bugs.webkit.org/show_bug.cgi?id=180364
+
+ Reviewed by Ryosuke Niwa.
+
+ Since these pseudo elements are now resolved by TreeResolver we can use selector filter for them.
+
+ This is 10%+ progression in StyleBench pseudo element subtest.
+
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::pseudoStyleForElement):
+ * css/StyleResolver.h:
+ * style/StyleTreeResolver.cpp:
+ (WebCore::Style::TreeResolver::resolvePseudoStyle):
+
2017-12-04 Youenn Fablet <you...@apple.com>
Add support https://w3c.github.io/ServiceWorker/#on-client-unload-algorithm
Modified: trunk/Source/WebCore/css/StyleResolver.cpp (225484 => 225485)
--- trunk/Source/WebCore/css/StyleResolver.cpp 2017-12-04 19:37:00 UTC (rev 225484)
+++ trunk/Source/WebCore/css/StyleResolver.cpp 2017-12-04 20:31:35 UTC (rev 225485)
@@ -552,9 +552,9 @@
}
}
-std::unique_ptr<RenderStyle> StyleResolver::pseudoStyleForElement(const Element& element, const PseudoStyleRequest& pseudoStyleRequest, const RenderStyle& parentStyle)
+std::unique_ptr<RenderStyle> StyleResolver::pseudoStyleForElement(const Element& element, const PseudoStyleRequest& pseudoStyleRequest, const RenderStyle& parentStyle, const SelectorFilter* selectorFilter)
{
- m_state = State(element, &parentStyle);
+ m_state = State(element, &parentStyle, m_overrideDocumentElementStyle, selectorFilter);
State& state = m_state;
Modified: trunk/Source/WebCore/css/StyleResolver.h (225484 => 225485)
--- trunk/Source/WebCore/css/StyleResolver.h 2017-12-04 19:37:00 UTC (rev 225484)
+++ trunk/Source/WebCore/css/StyleResolver.h 2017-12-04 20:31:35 UTC (rev 225485)
@@ -133,7 +133,7 @@
void keyframeStylesForAnimation(const Element&, const RenderStyle*, KeyframeList&);
- std::unique_ptr<RenderStyle> pseudoStyleForElement(const Element&, const PseudoStyleRequest&, const RenderStyle& parentStyle);
+ std::unique_ptr<RenderStyle> pseudoStyleForElement(const Element&, const PseudoStyleRequest&, const RenderStyle& parentStyle, const SelectorFilter* = nullptr);
std::unique_ptr<RenderStyle> styleForPage(int pageIndex);
std::unique_ptr<RenderStyle> defaultStyleForElement();
Modified: trunk/Source/WebCore/style/StyleTreeResolver.cpp (225484 => 225485)
--- trunk/Source/WebCore/style/StyleTreeResolver.cpp 2017-12-04 19:37:00 UTC (rev 225484)
+++ trunk/Source/WebCore/style/StyleTreeResolver.cpp 2017-12-04 20:31:35 UTC (rev 225485)
@@ -233,7 +233,7 @@
if (!elementUpdate.style->hasPseudoStyle(pseudoId))
return { };
- auto pseudoStyle = scope().styleResolver.pseudoStyleForElement(element, { pseudoId }, *elementUpdate.style);
+ auto pseudoStyle = scope().styleResolver.pseudoStyleForElement(element, { pseudoId }, *elementUpdate.style, &scope().selectorFilter);
if (!pseudoStyle)
return { };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes