Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 527e395dc858280dd73281765761c52677d1573c
https://github.com/WebKit/WebKit/commit/527e395dc858280dd73281765761c52677d1573c
Author: Chris Dumez <[email protected]>
Date: 2023-03-15 (Wed, 15 Mar 2023)
Changed paths:
M Source/WebCore/css/CSSStyleSheet.cpp
M Source/WebCore/css/CSSStyleSheet.h
M Source/WebCore/css/CSSStyleSheetObservableArray.cpp
M Source/WebCore/css/CSSStyleSheetObservableArray.h
M Source/WebCore/dom/ShadowRoot.cpp
M Source/WebCore/dom/TreeScope.cpp
M Source/WebCore/dom/TreeScope.h
Log Message:
-----------
Avoid constructing CSSStyleSheetObservableArray in the common case where
adoptedStyleSheets is not used
https://bugs.webkit.org/show_bug.cgi?id=253906
Reviewed by Darin Adler.
TreeScope.adoptedStyleSheets is a new feature and not commonly used. The
TreeScope constructor currently spend time constructing a
CSSStyleSheetObservableArray and detaching for it.
We now construct the CSSStyleSheetObservableArray lazily to avoid work in the
constructor. We also drop the work in the destructor as it is no longer
necessary given that CSSStyleSheetObservableArray uses WeakPtrs.
* Source/WebCore/css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::removeAdoptingTreeScope):
* Source/WebCore/css/CSSStyleSheet.h:
* Source/WebCore/css/CSSStyleSheetObservableArray.cpp:
(WebCore::CSSStyleSheetObservableArray::deleteValueAt):
(WebCore::CSSStyleSheetObservableArray::setSheets):
(WebCore::CSSStyleSheetObservableArray::willRemoveSheet):
(WebCore::CSSStyleSheetObservableArray::willDestroyTreeScope): Deleted.
* Source/WebCore/css/CSSStyleSheetObservableArray.h:
* Source/WebCore/dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::ensureAdoptedStyleSheets):
(WebCore::TreeScope::adoptedStyleSheets const):
(WebCore::TreeScope::adoptedStyleSheetWrapper):
(WebCore::TreeScope::setAdoptedStyleSheets):
(WebCore::TreeScope::~TreeScope): Deleted.
* Source/WebCore/dom/TreeScope.h:
Canonical link: https://commits.webkit.org/261702@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes