Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 339f49b72a953872fd41f36ac6f3a660b9c485f1
      
https://github.com/WebKit/WebKit/commit/339f49b72a953872fd41f36ac6f3a660b9c485f1
  Author: Yusuke Suzuki <ysuz...@apple.com>
  Date:   2023-10-19 (Thu, 19 Oct 2023)

  Changed paths:
    M LayoutTests/imported/w3c/resources/import-expectations.json
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/async-01-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/async-01.svg
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/defer-01-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/defer-01.svg
    A LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/defer.js
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/ellipse-hittest-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/ellipse-hittest.html
    A LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/log.py
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/module-01-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/module-01.svg
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/rect-hittest-001-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/rect-hittest-001.html
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/rect-hittest-002-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/rect-hittest-002.html
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-pointer-events-bbox-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-pointer-events-bbox.html
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-root-border-radius-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-root-border-radius.html
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-small-big-path-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-small-big-path.html
    M 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/w3c-import.log
    M Source/WebCore/rendering/svg/RenderSVGEllipse.cpp
    M Source/WebCore/rendering/svg/RenderSVGEllipse.h
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGEllipse.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGEllipse.h

  Log Message:
  -----------
  [SVG] Fix ellipse hit testing in the non-circle case
https://bugs.webkit.org/show_bug.cgi?id=249764
rdar://103756227

Reviewed by Cameron McCormack.

This is importing blink's fix for SVG ellipse hit-testing fix[1].
We are using fast path for SVG ellipse hit-testing. But this fast path only 
works for circle shape,
and it does not work with the other ellipses. The reason why the current fast 
path does not work is
that we are assuming that half-stroke-width is enough to compute hit-test with 
radius from the center-point.
But this only works with circle and this does not work with ellipse.

Now due to the previous improvement, we can detect ShapeType::Circle and 
ShapeType::Ellipse.
We leverage this to limit the case using fast path.

This fixes some WPT failures: 
web-platform-tests/svg/interact/scripted/ellipse-hittest.html.
Previously they were failing, but now we pass with this change.

[1]: 
https://chromium.googlesource.com/chromium/blink/+/fb46751341e395b641b691670c1c70e90bae30d4

* LayoutTests/imported/w3c/resources/import-expectations.json:
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/async-01-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/async-01.svg: 
Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/defer-01-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/defer-01.svg: 
Added.
* LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/defer.js: 
Added.
(t.step):
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/ellipse-hittest-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/ellipse-hittest.html:
 Added.
* LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/log.py: 
Added.
(main):
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/module-01-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/module-01.svg:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/rect-hittest-001-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/rect-hittest-001.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/rect-hittest-002-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/rect-hittest-002.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-pointer-events-bbox-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-pointer-events-bbox.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-root-border-radius-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-root-border-radius.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-small-big-path-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/svg-small-big-path.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/interact/scripted/w3c-import.log:
* Source/WebCore/rendering/svg/RenderSVGEllipse.cpp:
(WebCore::RenderSVGEllipse::canUseStrokeHitTestFastPath const):
(WebCore::RenderSVGEllipse::shapeDependentStrokeContains):
* Source/WebCore/rendering/svg/RenderSVGEllipse.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGEllipse.cpp:
(WebCore::LegacyRenderSVGEllipse::canUseStrokeHitTestFastPath const):
(WebCore::LegacyRenderSVGEllipse::shapeDependentStrokeContains):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGEllipse.h:

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to