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

Reply via email to