[webkit-changes] [WebKit/WebKit] fc0d8f: Detect complex custom property cycles involving mu...

Antti Koivisto noreply at github.com
Fri Jan 27 11:37:04 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fc0d8fbdae064b740a609102f1c75f9ffee73887
      https://github.com/WebKit/WebKit/commit/fc0d8fbdae064b740a609102f1c75f9ffee73887
  Author: Antti Koivisto <antti at apple.com>
  Date:   2023-01-27 (Fri, 27 Jan 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-cycles-expected.txt
    M Source/WebCore/style/StyleBuilder.cpp
    M Source/WebCore/style/StyleBuilderState.h

  Log Message:
  -----------
  Detect complex custom property cycles involving multiple loops
https://bugs.webkit.org/show_bug.cgi?id=251269
<rdar://problem/104744972>

Reviewed by Simon Fraser.

We fail in some complex cycle cases.

* LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-cycles-expected.txt:
* Source/WebCore/style/StyleBuilder.cpp:
(WebCore::Style::Builder::applyCustomProperty):

Track property cycles with a separate m_inCycleCustomProperties map instead of eagerly computing them to
an invalid value on first detection. This allows the detection of multiple cycles passing through
the same property. It also simplifies the code.

* Source/WebCore/style/StyleBuilderState.h:

Canonical link: https://commits.webkit.org/259506@main




More information about the webkit-changes mailing list