[webkit-changes] [WebKit/WebKit] 3c7011: Remove special handling of `::before` and `::after...

Ahmad Saleem noreply at github.com
Thu Nov 16 06:08:03 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3c701132f00143e3a6e491744494cfc23db9132c
      https://github.com/WebKit/WebKit/commit/3c701132f00143e3a6e491744494cfc23db9132c
  Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
  Date:   2023-11-16 (Thu, 16 Nov 2023)

  Changed paths:
    A LayoutTests/fast/ruby/add-text-to-block-ruby-with-after-pseudo-crash-expected.txt
    A LayoutTests/fast/ruby/add-text-to-block-ruby-with-after-pseudo-crash.html
    A LayoutTests/fast/ruby/ruby-beforeafter-expected.html
    M LayoutTests/fast/ruby/ruby-beforeafter.html
    A LayoutTests/fast/ruby/ruby-block-style-not-updated-with-before-after-content-expected.html
    R LayoutTests/fast/ruby/ruby-block-style-not-updated-with-before-after-content-expected.png
    R LayoutTests/fast/ruby/ruby-block-style-not-updated-with-before-after-content-expected.txt
    M LayoutTests/fast/ruby/ruby-block-style-not-updated-with-before-after-content.html
    A LayoutTests/fast/ruby/ruby-inline-style-not-updated-with-before-after-content-expected.html
    R LayoutTests/fast/ruby/ruby-inline-style-not-updated-with-before-after-content-expected.png
    R LayoutTests/fast/ruby/ruby-inline-style-not-updated-with-before-after-content-expected.txt
    M LayoutTests/fast/ruby/ruby-inline-style-not-updated-with-before-after-content.html
    R LayoutTests/platform/glib/fast/ruby/ruby-beforeafter-expected.txt
    R LayoutTests/platform/gtk/fast/ruby/ruby-block-style-not-updated-with-before-after-content-expected.png
    R LayoutTests/platform/gtk/fast/ruby/ruby-inline-style-not-updated-with-before-after-content-expected.png
    R LayoutTests/platform/ios-wk2/fast/ruby/ruby-beforeafter-expected.txt
    R LayoutTests/platform/ios/fast/ruby/ruby-beforeafter-expected.txt
    R LayoutTests/platform/mac/fast/ruby/ruby-beforeafter-expected.png
    R LayoutTests/platform/mac/fast/ruby/ruby-beforeafter-expected.txt
    R LayoutTests/platform/wincairo/fast/ruby/ruby-beforeafter-expected.txt
    A LayoutTests/resources/ahem.js
    M Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp

  Log Message:
  -----------
  Remove special handling of `::before` and `::after` on `RUBY` elements

https://bugs.webkit.org/show_bug.cgi?id=264446
rdar://problem/118478034

Reviewed by Antti Koivisto.

Merge: https://chromium.googlesource.com/chromium/blink/+/81eb8745dfd7d21fc9588220eed989d901cb7276

This PR removes special handling, which was added in 60235 at main and further work
for crashes in bug 55930.

This special handling is not as per web-specification and was also removed by Blink in 2015
and it was not done by Internet Explorer and Firefox.

This PR changes it to treat them as they were a first or last DOM child of the RUBY parent.
That's how ::before and ::after normally works. This means that now ::before
and ::after will be part of, or even establish, ruby runs.

Added a test for the crasher.

Also rewrote three tests as reftests, since the expectations started to fail
anyway. One test was invalid (ruby-beforeafter.html), since it required special
handling of ::before and ::after, while the two others just got different
rendering due to this change.

* Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp:
(isAnonymousRubyInlineBlock): Deleted
(isRubyBeforeBlock): Deleted
(isRubyAfterBlock): Deleted
(isRubyChildForNormalRemoval): Updated
(rubyBeforeBlock): Deleted
(rubyAfterBlock): Deleted
(createAnonymousRubyInlineBlock): Deleted
(RenderTreeBuilder::Ruby::findOrCreateParentForChild): Updated
(RenderTreeBuilder::Ruby::findOrCreateParentForChild): Updated
(RenderTreeBuilder::Ruby::detach): Updated for 'Inline'
(RenderTreeBuilder::Ruby::detach): Updated for 'Block'

Updated Tests (as Ref Tests):
* LayoutTests/fast/ruby/ruby-beforeafter.html:
* LayoutTests/fast/ruby/ruby-beforeafter-expected.html:
* LayoutTests/fast/ruby/ruby-block-style-not-updated-with-before-after-content.html
* LayoutTests/fast/ruby/ruby-block-style-not-updated-with-before-after-content-expected.html:
* LayoutTests/fast/ruby/ruby-inline-style-not-updated-with-before-after-content.html:
* LayoutTests/fast/ruby/ruby-inline-style-not-updated-with-before-after-content-expected.html:

Crash Test:
* LayoutTests/fast/ruby/add-text-to-block-ruby-with-after-pseudo-crash.html:
* LayoutTests/fast/ruby/add-text-to-block-ruby-with-after-pseudo-crash-expected.txt:

Resource File:
* LayoutTests/resources/ahem.js:

Remove Old Expectations:
* LayoutTests/fast/ruby/ruby-block-style-not-updated-with-before-after-content-expected.png:
* LayoutTests/fast/ruby/ruby-block-style-not-updated-with-before-after-content-expected.txt:
* LayoutTests/fast/ruby/ruby-inline-style-not-updated-with-before-after-content-expected.png:
* LayoutTests/fast/ruby/ruby-inline-style-not-updated-with-before-after-content-expected.txt:
* LayoutTests/platform/glib/fast/ruby/ruby-beforeafter-expected.txt:
* LayoutTests/platform/gtk/fast/ruby/ruby-block-style-not-updated-with-before-after-content-expected.png:
* LayoutTests/platform/gtk/fast/ruby/ruby-inline-style-not-updated-with-before-after-content-expected.png:
* LayoutTests/platform/ios-wk2/fast/ruby/ruby-beforeafter-expected.txt:
* LayoutTests/platform/ios/fast/ruby/ruby-beforeafter-expected.txt:
* LayoutTests/platform/mac/fast/ruby/ruby-beforeafter-expected.png:
* LayoutTests/platform/mac/fast/ruby/ruby-beforeafter-expected.txt:
* LayoutTests/platform/wincairo/fast/ruby/ruby-beforeafter-expected.txt:

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




More information about the webkit-changes mailing list