Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d9acfd1b770df4d87991f92cbd2dcf9526cb0d9c
      
https://github.com/WebKit/WebKit/commit/d9acfd1b770df4d87991f92cbd2dcf9526cb0d9c
  Author: Matthieu Dubet <m_du...@apple.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    A LayoutTests/fast/css/cssom-insertrule-crash-expected.html
    A LayoutTests/fast/css/cssom-insertrule-crash.html
    M Source/WebCore/css/CSSGroupingRule.cpp
    M Source/WebCore/css/CSSStyleRule.cpp
    M Source/WebCore/css/CSSStyleSheet.cpp
    M Source/WebCore/css/CSSStyleSheet.h
    M Source/WebCore/css/StyleSheetContents.cpp
    M Source/WebCore/css/StyleSheetContents.h
    M Source/WebCore/css/parser/CSSParserImpl.cpp

  Log Message:
  -----------
  [CSSOM] Fix insertion of rule inside non nested style rule
https://bugs.webkit.org/show_bug.cgi?id=275129
rdar://126112807

Reviewed by Antti Koivisto.

The CSS parser should not change the "hasNestingRules" status
of a stylesheet (which makes the CoW mechanism fails and a bunch of other 
issues).

This patch changes when the CoW will copy the rules to allow mutation
and makes the cache mechanism internal to StyleSheetContent class.

* LayoutTests/fast/css/cssom-insertrule-crash-expected.html: Added.
* LayoutTests/fast/css/cssom-insertrule-crash.html: Added.
* Source/WebCore/css/CSSGroupingRule.cpp:
(WebCore::CSSGroupingRule::prepareChildStyleRuleForNesting):
* Source/WebCore/css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::insertRule):
* Source/WebCore/css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::prepareChildStyleRuleForNesting):
* Source/WebCore/css/CSSStyleSheet.h:
* Source/WebCore/css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::StyleSheetContents):
(WebCore::StyleSheetContents::isCacheable const):
(WebCore::StyleSheetContents::hasNestingRules):
* Source/WebCore/css/StyleSheetContents.h:
* Source/WebCore/css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeNestedGroupRules):
(WebCore::CSSParserImpl::consumeStyleRule):

Originally-landed-as: 272448.1086@safari-7618-branch (d3f4fe14288c). 
rdar://132959061
Canonical link: https://commits.webkit.org/281785@main


  Commit: d9047878322f6a875050f942e56cc38c5f82088a
      
https://github.com/WebKit/WebKit/commit/d9047878322f6a875050f942e56cc38c5f82088a
  Author: Erica Li <ler...@apple.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    A 
LayoutTests/fast/scrolling/scrollIntoView-destroy-renderer-for-meter-element-crash-expected.txt
    A 
LayoutTests/fast/scrolling/scrollIntoView-destroy-renderer-for-meter-element-crash.html
    M Source/WebCore/dom/Element.cpp

  Log Message:
  -----------
  ASAN_ILL | WebCore::RenderMeter::~RenderMeter;
https://bugs.webkit.org/show_bug.cgi?id=275944
rdar://126113504

Reviewed by Alan Baradlay.

The test case produces a crash case where the checkedPtr renderer within 
Element::scrollIntoView
will be destroryed, even we called updateLayoutIgnorePendingStylesheets right 
before it.
During LocalFrameView::scrollRectToVisible, layout is triggered because:
    1. pre-layout: willDoLayout() -> adjustScrollbarsForLayout() turns the 
vertical scrollbar to be on
    2. during/after layout the scrollbar is updated ONLY when content size has 
changed: LocalFrameView::setContentsSize
    3. when content size is unchanged the vertical scrollbar remains on,
    4. LocalFrameView::scrollRectToVisible -> updateScrollbars checked the 
scrollbar has changed,
       decided to trigger layout with updateContentsSize().
The fix is to make renderer as WeakPtr instead of CheckedPtr.

This patch also fixes build failuer for CHECKED_POINTER_DEBUG in SU branch.

* 
LayoutTests/fast/scrolling/scrollIntoView-destroy-renderer-for-meter-element-crash-expected.txt:
 Added.
* 
LayoutTests/fast/scrolling/scrollIntoView-destroy-renderer-for-meter-element-crash.html:
 Added.
* Source/WebCore/dom/Element.cpp:
(WebCore::listBoxElementScrollIntoView):
(WebCore::Element::scrollIntoView):
* Source/WebCore/dom/TreeScope.cpp:
(WebCore::TreeScope::registerCheckedPtr const): Deleted.
(WebCore::TreeScope::copyCheckedPtr const): Deleted.
(WebCore::TreeScope::moveCheckedPtr const): Deleted.
(WebCore::TreeScope::unregisterCheckedPtr const): Deleted.

Originally-landed-as: 272448.1097@safari-7618.3.11.10-branch (a7082f8505ae). 
rdar://132944916
Canonical link: https://commits.webkit.org/281786@main


  Commit: eeccf9681be2753e654655d799635ca94f48845a
      
https://github.com/WebKit/WebKit/commit/eeccf9681be2753e654655d799635ca94f48845a
  Author: Sammy Gill <sammy.g...@apple.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    A LayoutTests/fast/css/grid-template-rule-no-crash-expected.txt
    A LayoutTests/fast/css/grid-template-rule-no-crash.html
    M Source/WebCore/css/ShorthandSerializer.cpp

  Log Message:
  -----------
  Bad downcast in ShorthandSerializer::serializeGridTemplate
https://bugs.webkit.org/show_bug.cgi?id=275863
rdar://121949510

Reviewed by Brent Fulgham and Tim Nguyen.

When attempting to parse the more complex version of the grid-template syntax,
the ShorthandSerializer assumes that the value for the grid-template-rows 
longhand
will be a CSSValueList. This may not be true as demonstrated in the testcase 
which
ends up returning a CSSSubgridValue for the longhand value.

Instead of just blindly downcasting, let's replace the erroneous
isLonghandValueNone(rowsIndex) with !rowTrackSizes->isValueList() to make sure 
we return
a null string if the value of grid-template-rows is not a CSSValueList and as a 
result
cannot be expressed in the shorthand, which is similar to what we do for the
grid-template-columns case. Also rephrase the comment to just say this instead 
of the
lengthy and confusing description.

* LayoutTests/fast/css/grid-template-rule-no-crash-expected.txt: Added.
* LayoutTests/fast/css/grid-template-rule-no-crash.html: Added.
* Source/WebCore/css/ShorthandSerializer.cpp:
(WebCore::ShorthandSerializer::serializeGridTemplate const):

Originally-landed-as: 272448.1096@safari-7618-branch (32cdb1b7a376). 
rdar://132953407
Canonical link: https://commits.webkit.org/281787@main


  Commit: 0fb943e26c18e22794acd8d70df013944f50b9dd
      
https://github.com/WebKit/WebKit/commit/0fb943e26c18e22794acd8d70df013944f50b9dd
  Author: Matthew Finkel <m_fin...@apple.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    A 
LayoutTests/http/tests/local/blob/resolve-response-with-custom-then-expected.txt
    A LayoutTests/http/tests/local/blob/resolve-response-with-custom-then.html
    M Source/WebCore/Modules/fetch/FetchBodyOwner.cpp
    M Source/WebCore/Modules/fetch/FetchBodyOwner.h

  Log Message:
  -----------
  Extend the lifetime of the Fetch body owner
https://bugs.webkit.org/show_bug.cgi?id=275122
rdar://128250783

Reviewed by Youenn Fablet and Simon Fraser.

This patch extends the lifetime of the FetchBodyOwner while we resolve the
body. In some cases, the body can be prematurely freed if its only reference
is held by a JavaScript object.

* 
LayoutTests/http/tests/local/blob/resolve-response-with-custom-then-expected.txt:
 Added.
* LayoutTests/http/tests/local/blob/resolve-response-with-custom-then.html: 
Added.
* Source/WebCore/Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::BlobLoader::didSucceed):
* Source/WebCore/Modules/fetch/FetchBodyOwner.h:

Originally-landed-as: 272448.1095@safari-7618-branch (2ba62228e7b8). 
rdar://132954026
Canonical link: https://commits.webkit.org/281788@main


  Commit: 0b2843995193ff7b5bab822c5456a69de24a326c
      
https://github.com/WebKit/WebKit/commit/0b2843995193ff7b5bab822c5456a69de24a326c
  Author: Jer Noble <jer.no...@apple.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    A LayoutTests/webaudio/audiobuffersourcenode-detune-crash-expected.txt
    A LayoutTests/webaudio/audiobuffersourcenode-detune-crash.html
    M Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp

  Log Message:
  -----------
  Add check in AudioBufferSourceNode::renderFromBuffer() when detune is set to 
large negative value
https://bugs.webkit.org/show_bug.cgi?id=275273
rdar://125617842

Reviewed by Eric Carlson.

* LayoutTests/webaudio/audiobuffersourcenode-detune-crash-expected.txt: Added.
* LayoutTests/webaudio/audiobuffersourcenode-detune-crash.html: Added.
* Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::renderFromBuffer):

Originally-landed-as: 272448.1080@safari-7618-branch (64c9479d6f29). 
rdar://132954227
Canonical link: https://commits.webkit.org/281789@main


Compare: https://github.com/WebKit/WebKit/compare/adfe4b971f3b...0b2843995193

To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to