Branch: refs/heads/webkitglib/2.48
  Home:   https://github.com/WebKit/WebKit
  Commit: a33e05f0d7ac3f364f3374e9cba6f6304c38c329
      
https://github.com/WebKit/WebKit/commit/a33e05f0d7ac3f364f3374e9cba6f6304c38c329
  Author: Pablo Saavedra <[email protected]>
  Date:   2025-03-13 (Thu, 13 Mar 2025)

  Changed paths:
    M Source/WebKit/WPEPlatform/wpe/WPESettings.cpp
    M Source/WebKit/WPEPlatform/wpe/WPESettings.h
    M Source/WebKit/WPEPlatform/wpe/drm/WPEDisplayDRM.h

  Log Message:
  -----------
  Cherry-pick 292007@main (11fcf7e9b0b1). 
https://bugs.webkit.org/show_bug.cgi?id=289530

    [WPE] Fix missing default values in WPESettings
    https://bugs.webkit.org/show_bug.cgi?id=289530

    Reviewed by Carlos Garcia Campos.

    These settings are defined in WPESettings.h but never initialized in
    WPESettings.cpp. Added initialization for them in WPESettings.cpp
    with the expected default values according with the documentation.

    Also relocate DRM scale setting definition in WPESettings to
    WPEDisplayDRM.

    Related-To: https://commits.webkit.org/288922@main

    * Source/WebKit/WPEPlatform/wpe/WPESettings.cpp:
    (_WPESettingsPrivate::_WPESettingsPrivate):
    * Source/WebKit/WPEPlatform/wpe/WPESettings.h:
    * Source/WebKit/WPEPlatform/wpe/drm/WPEDisplayDRM.h:

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

Canonical link: https://commits.webkit.org/290945.52@webkitglib/2.48


  Commit: e860abe98e96ff5e878e7d221d0107865159952a
      
https://github.com/WebKit/WebKit/commit/e860abe98e96ff5e878e7d221d0107865159952a
  Author: Devin Rousso <[email protected]>
  Date:   2025-03-13 (Thu, 13 Mar 2025)

  Changed paths:
    M 
Source/WebInspectorUI/UserInterface/Models/HeapAllocationsTimelineRecord.js
    M Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js
    M Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js
    M Source/WebInspectorUI/UserInterface/Proxies/HeapSnapshotWorkerProxy.js
    M Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineView.js

  Log Message:
  -----------
  Cherry-pick 291997@main (b2348a683116). 
https://bugs.webkit.org/show_bug.cgi?id=289070

    Web Inspector: REGRESSION(290430@main): Assertion Failed at 
CallingContextTreeNode.js:76
    https://bugs.webkit.org/show_bug.cgi?id=289070

    Reviewed by BJ Burg.

    * Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js:
    (WI.ScriptTimelineRecord.async fromJSON):
    (WI.ScriptTimelineRecord.prototype.toJSON):
    It's no longer allowed to not have a `target` after 290430@main.

    * 
Source/WebInspectorUI/UserInterface/Models/HeapAllocationsTimelineRecord.js:
    (WI.HeapAllocationsTimelineRecord.async fromJSON):
    (WI.HeapAllocationsTimelineRecord.prototype.toJSON):
    * Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:
    (WI.TimelineRecording.async import):
    * Source/WebInspectorUI/UserInterface/Proxies/HeapSnapshotWorkerProxy.js:
    (WI.HeapSnapshotWorkerProxy.prototype.createImportedSnapshot):
    * Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineView.js:
    
(WI.HeapAllocationsTimelineView.prototype._importButtonNavigationItemClicked):

    Drive-by: add extra FIXME comments for supporting `Worker` targets when 
exporting/importing timeline recordings.
    Canonical link: https://commits.webkit.org/291997@main

Canonical link: https://commits.webkit.org/290945.53@webkitglib/2.48


  Commit: 0b23700c418a8fc77eafe23bd45dc4c4e32c5905
      
https://github.com/WebKit/WebKit/commit/0b23700c418a8fc77eafe23bd45dc4c4e32c5905
  Author: Pratiksha Choudhury <[email protected]>
  Date:   2025-03-13 (Thu, 13 Mar 2025)

  Changed paths:
    M Source/WebCore/Modules/mediarecorder/MediaRecorder.cpp

  Log Message:
  -----------
  Cherry-pick 291974@main (1d9dbbef7133). 
https://bugs.webkit.org/show_bug.cgi?id=288989

    Nullptr crash in MediaRecorder::requestDataInternal()
    https://bugs.webkit.org/show_bug.cgi?id=288989
    rdar://144407606

    Reviewed by Jean-Yves Avenard.

    Added a nullptr check for buffer object. As per W3C spec, the blob can be 
empty if no data is gathered.
    We do not have reliable test script to repro this edge case race condition.

    * Source/WebCore/Modules/mediarecorder/MediaRecorder.cpp:
    (WebCore::MediaRecorder::requestDataInternal):

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

Canonical link: https://commits.webkit.org/290945.54@webkitglib/2.48


  Commit: 0cb293db23f8dcde1ac064b999ed24e8008f607c
      
https://github.com/WebKit/WebKit/commit/0cb293db23f8dcde1ac064b999ed24e8008f607c
  Author: Yusuke Suzuki <[email protected]>
  Date:   2025-03-13 (Thu, 13 Mar 2025)

  Changed paths:
    A JSTests/stress/regexp-cache-adjustment.js
    M Source/JavaScriptCore/dfg/DFGOperations.cpp
    M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
    M Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
    M Source/JavaScriptCore/ftl/FTLAbstractHeapRepository.h
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
    M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
    M Source/JavaScriptCore/runtime/RegExpCachedResult.cpp
    M Source/JavaScriptCore/runtime/RegExpCachedResult.h
    M Source/JavaScriptCore/runtime/RegExpGlobalData.h
    M Source/JavaScriptCore/runtime/RegExpGlobalDataInlines.h
    M Source/JavaScriptCore/runtime/RegExpMatchesArray.h
    M Source/JavaScriptCore/runtime/RegExpObjectInlines.h
    M Source/JavaScriptCore/runtime/RegExpSubstringGlobalAtomCache.cpp
    M Source/JavaScriptCore/runtime/RegExpSubstringGlobalAtomCache.h
    M Source/JavaScriptCore/runtime/StringPrototype.cpp

  Log Message:
  -----------
  Cherry-pick 291881@main (cc0a0f907148). 
https://bugs.webkit.org/show_bug.cgi?id=289337

    REGRESSION (285042@main-285687@main): `RegExp["$&"]` incorrectly returns an 
empty string
    https://bugs.webkit.org/show_bug.cgi?id=289337
    rdar://146622507

    Reviewed by Yijia Huang.

    For Atom matching, we need to update RegExpCachedResult correctly to
    update RegExp.rightContext / RegExp.lastMatch etc. This patch does it.

    1. For normal RegExp matching, we just store the lastResult to update
       the cache.
    2. For Atom string matching, we use last matched string index, creating
       MatchResult from that and update the cache with it.
    3. For one character matching, we do not want to make this slower by
       getting the last offset of matched character since these fields are
       rarely accessed. Instead, we record oneCharacterMatch flag, and when
       reifying the result, we scan the string from reverse order to find
       the last matched one character.

    * JSTests/stress/regexp-cache-adjustment.js: Added.
    (shouldBe):
    (clearCache):
    * Source/JavaScriptCore/dfg/DFGOperations.cpp:
    (JSC::DFG::JSC_DEFINE_JIT_OPERATION):
    * Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
    * Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:
    (JSC::DFG::SpeculativeJIT::compileRegExpTestInline):
    * Source/JavaScriptCore/ftl/FTLAbstractHeapRepository.h:
    * Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
    (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
    * Source/JavaScriptCore/runtime/JSGlobalObject.cpp:
    (JSC::JSGlobalObject::init):
    * Source/JavaScriptCore/runtime/RegExpCachedResult.cpp:
    (JSC::RegExpCachedResult::lastResult):
    * Source/JavaScriptCore/runtime/RegExpCachedResult.h:
    (JSC::RegExpCachedResult::offsetOfOneCharacterMatch):
    * Source/JavaScriptCore/runtime/RegExpGlobalData.h:
    * Source/JavaScriptCore/runtime/RegExpGlobalDataInlines.h:
    (JSC::RegExpCachedResult::record):
    (JSC::RegExpGlobalData::performMatch):
    (JSC::RegExpGlobalData::recordMatch):
    (JSC::RegExpGlobalData::resetResultFromCache):
    * Source/JavaScriptCore/runtime/RegExpMatchesArray.h:
    * Source/JavaScriptCore/runtime/RegExpObjectInlines.h:
    (JSC::RegExpObject::execInline):
    (JSC::genericMatches):
    (JSC::collectGlobalAtomMatches):
    * Source/JavaScriptCore/runtime/RegExpSubstringGlobalAtomCache.cpp:
    (JSC::RegExpSubstringGlobalAtomCache::collectMatches):
    * Source/JavaScriptCore/runtime/RegExpSubstringGlobalAtomCache.h:
    * Source/JavaScriptCore/runtime/StringPrototype.cpp:
    (JSC::removeUsingRegExpSearch):

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

Canonical link: https://commits.webkit.org/290945.55@webkitglib/2.48


  Commit: c3c81d719d6f525a4f1d69b325ae2efbfed94de2
      
https://github.com/WebKit/WebKit/commit/c3c81d719d6f525a4f1d69b325ae2efbfed94de2
  Author: Yusuke Suzuki <[email protected]>
  Date:   2025-03-13 (Thu, 13 Mar 2025)

  Changed paths:
    A JSTests/stress/large-regexp-stack-use.js
    M JSTests/stress/regexp-huge-oom.js
    M Source/JavaScriptCore/runtime/OptionsList.h

  Log Message:
  -----------
  Cherry-pick 291877@main (75a5cc813c16). 
https://bugs.webkit.org/show_bug.cgi?id=289330

    REGRESSION (288911@main-290821@main): RegExp for large input (800KB) 
incorrectly returns null
    https://bugs.webkit.org/show_bug.cgi?id=289330
    rdar://146497732

    Reviewed by Sosuke Suzuki.

    We increase maxRegExpStackSize from 16 MB to 128 MB. This number is
    picked because,

    1. V8 IRRegExp's max RegExp stack size is 64 MB.
    2. Our stack usage is a bit larger than V8.

    So, we picked the next power-of-two size, 128 MB. This is still good
    compared to unbound size of stack increase.

    * JSTests/stress/large-regexp-stack-use.js: Added.
    (shouldBe):
    * Source/JavaScriptCore/runtime/OptionsList.h:

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

Canonical link: https://commits.webkit.org/290945.56@webkitglib/2.48


  Commit: 30d9e84a9d5fe9c162e42c20923a9909c49aebda
      
https://github.com/WebKit/WebKit/commit/30d9e84a9d5fe9c162e42c20923a9909c49aebda
  Author: Yusuke Suzuki <[email protected]>
  Date:   2025-03-13 (Thu, 13 Mar 2025)

  Changed paths:
    M Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp

  Log Message:
  -----------
  Cherry-pick 291720@main (3a3f835a76f0). 
https://bugs.webkit.org/show_bug.cgi?id=289268

    [JSC] m_expressionInfo may be not set yet
    https://bugs.webkit.org/show_bug.cgi?id=289268
    rdar://146399098

    Reviewed by Yijia Huang.

    Since this field is set after object allocation is done, there is a
    chance that concurrent GC markers find this object before setting a
    value to m_expressionInfo field and accessing it. So, it can be a
    nullptr, thus we should check nullptr check before using it from
    concurrent GC markers.

    * Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp:
    (JSC::UnlinkedCodeBlock::visitChildrenImpl):

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

Canonical link: https://commits.webkit.org/290945.57@webkitglib/2.48


  Commit: 570fdd524089d2f8c1b54c2b83c61dd6609cb9c1
      
https://github.com/WebKit/WebKit/commit/570fdd524089d2f8c1b54c2b83c61dd6609cb9c1
  Author: Yusuke Suzuki <[email protected]>
  Date:   2025-03-13 (Thu, 13 Mar 2025)

  Changed paths:
    M Source/WebCore/dom/MessageEvent.cpp

  Log Message:
  -----------
  Cherry-pick 291689@main (151ef788a55c). 
https://bugs.webkit.org/show_bug.cgi?id=289218

    REGRESSION: ASSERTION FAILED: !m_needExceptionCheck: ./runtime/VM.cpp(1450) 
: void JSC::VM::verifyExceptionCheckNeedIsSatisfied(unsigned int, 
ExceptionEventLocation &)
    https://bugs.webkit.org/show_bug.cgi?id=289218
    rdar://146364641

    Reviewed by Ryosuke Niwa.

    MessageEvent is broken, which does not handle SerializedScriptValue
    properly.

    * Source/WebCore/dom/MessageEvent.cpp:
    (WebCore::MessageEvent::create):

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

Canonical link: https://commits.webkit.org/290945.58@webkitglib/2.48


  Commit: e0b6243a1ecee0a9d9437e949724746470f8c805
      
https://github.com/WebKit/WebKit/commit/e0b6243a1ecee0a9d9437e949724746470f8c805
  Author: Abrar Rahman Protyasha <[email protected]>
  Date:   2025-03-13 (Thu, 13 Mar 2025)

  Changed paths:
    M Source/WebCore/loader/FrameLoader.cpp

  Log Message:
  -----------
  Cherry-pick 291655@main (6fdcc035f663). 
https://bugs.webkit.org/show_bug.cgi?id=289182

    Web content processes sometimes crashes under Page::viewportArguments() 
calls from FrameLoader::commitProvisionalLoad()
    https://bugs.webkit.org/show_bug.cgi?id=289182
    rdar://145386222

    Reviewed by Wenson Hsieh.

    Sometimes the WP crashes under WebCore::Page::viewportArguments() with a
    backtrace like this:

    ```
    WTF::RawPtrTraits<WebCore::Frame>::unwrap(WebCore::Frame* const&) (WebCore)
      WTF::Ref<WebCore::Frame, WTF::RawPtrTraits<WebCore::Frame>, 
WTF::DefaultRefDerefTraits<WebCore::Frame>>::get() const (WebCore)
         WTF::Ref<WebCore::Frame, WTF::RawPtrTraits<WebCore::Frame>, 
WTF::DefaultRefDerefTraits<WebCore::Frame>>::Ref(WTF::Ref<WebCore::Frame, 
WTF::RawPtrTraits<WebCore::Frame>, WTF::DefaultRefDerefTraits<WebCore::Frame>> 
const&) (WebCore)
           WTF::Ref<WebCore::Frame, WTF::RawPtrTraits<WebCore::Frame>, 
WTF::DefaultRefDerefTraits<WebCore::Frame>>::Ref(WTF::Ref<WebCore::Frame, 
WTF::RawPtrTraits<WebCore::Frame>, WTF::DefaultRefDerefTraits<WebCore::Frame>> 
const&) (WebCore)
             WebCore::Page::protectedMainFrame() const (WebCore)
               WebCore::Page::viewportArguments() const (WebCore)
                 WebCore::FrameLoader::commitProvisionalLoad() (WebCore)
    ```

    While the root cause is yet to be determined, we can make the process
    less crashy by null checking frame->page() before querying for viewport
    arguments in FrameLoader::commitProvisionalLoad.

    Note that this is better than null checking m_mainFrame on the Page
    object, because Page holds a strong reference to m_mainFrame, and so if
    we're crashing while dereferencing that object, it indicates all of Page
    is null.

    * Source/WebCore/loader/FrameLoader.cpp:
    (WebCore::FrameLoader::commitProvisionalLoad):

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

Canonical link: https://commits.webkit.org/290945.59@webkitglib/2.48


Compare: https://github.com/WebKit/WebKit/compare/03405f516f5b...e0b6243a1ece

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

Reply via email to