Branch: refs/heads/webkitglib/2.52
  Home:   https://github.com/WebKit/WebKit
  Commit: e42c6e5dbcf8337db28f6a2e5791c8ae8ea41b33
      
https://github.com/WebKit/WebKit/commit/e42c6e5dbcf8337db28f6a2e5791c8ae8ea41b33
  Author: Youenn Fablet <[email protected]>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M Source/WebCore/html/FileInputType.cpp
    M Source/WebCore/page/Chrome.cpp
    M Source/WebCore/page/Chrome.h
    M Source/WebCore/page/ChromeClient.cpp
    M Source/WebCore/page/ChromeClient.h
    M Source/WebCore/platform/graphics/ImageUtilities.h
    M Source/WebCore/platform/graphics/cg/ImageUtilitiesCG.cpp
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h

  Log Message:
  -----------
  Cherry-pick [email protected] (1c3f0755c46a). 
https://bugs.webkit.org/show_bug.cgi?id=317270

    Incomplete replacementPath validation in 
NetworkConnectionToWebProcess::registerInternalFileBlobURL
    rdar://176890926

    Reviewed by Chris Dumez.

    We cannot easily validate that a sandbox extension is valid or related to a 
specific file.
    We thus stop validating the sandbox extension and only rely on the allowed 
file path check.
    This ensures that a web process can only create blobs from a file that the 
UIProcess deemed appropriate (via direct UIProcess/NetworkProcess IPC).

    Two code paths need to be updated to not break existing functionality:
    1. Image transcoding for files dropped on <input type=file> was previoulsy 
done in WebProcess.
      We move this to UIProcess via ChromeClient::transcodeChosenFiles, with a 
default implementation
      that preserves the previous in-WebProcess behavior by dispatching to the 
shared transcoding queue.
      WebChromeClient is implementing out-of-process transcoding by asking 
WebPageProxy via IPC to do the work.
      WebPageProxy does this and makes sure to notify network process that the 
transcoded files can be accessed.
    2. WebPageProxy::didChooseFilesForOpenPanelWithImageTranscoding needs to 
make sure to allow access of these files
      from the network process. Once this is done, it notifies the WebProcess 
of the result as before.

    We do a small refactoring by factoring the queue dispatch + main-thread hop 
into transcodeImagesInBackgroundQueue.
    Call sites like the default ChromeClient implementation and 
WebPageProxy::transcodeChosenFiles no longer manage cross-thread copies.

    Manually tested.

    * Source/WebCore/html/FileInputType.cpp:
    (WebCore::FileInputType::receiveDroppedFilesWithImageTranscoding):
    * Source/WebCore/page/Chrome.cpp:
    (WebCore::Chrome::transcodeChosenFiles):
    * Source/WebCore/page/Chrome.h:
    * Source/WebCore/page/ChromeClient.cpp:
    (WebCore::ChromeClient::transcodeChosenFiles):
    * Source/WebCore/page/ChromeClient.h:
    * Source/WebCore/platform/graphics/ImageUtilities.h:
    * Source/WebCore/platform/graphics/cg/ImageUtilitiesCG.cpp:
    (WebCore::transcodeImages):
    (WebCore::transcodeImagesInBackgroundQueue):
    * Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
    (WebKit::NetworkConnectionToWebProcess::registerInternalFileBlobURL):
    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::didChooseFilesForOpenPanelWithImageTranscoding):
    (WebKit::WebPageProxy::transcodeChosenFiles):
    * Source/WebKit/UIProcess/WebPageProxy.h:
    * Source/WebKit/UIProcess/WebPageProxy.messages.in:
    * Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
    (WebKit::WebChromeClient::transcodeChosenFiles):
    * Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1149@webkitglib/2.52


  Commit: 1fc4157004126e2ca466fda70ed03b87de81a1cd
      
https://github.com/WebKit/WebKit/commit/1fc4157004126e2ca466fda70ed03b87de81a1cd
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    A JSTests/stress/object-create-check-insertion.js
    M Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (ac9e40a7195b). 
https://bugs.webkit.org/show_bug.cgi?id=317570

    [JSC] ObjectCreate folding should emit checks
    https://bugs.webkit.org/show_bug.cgi?id=317570
    rdar://178248992

    Reviewed by Yijia Huang.

    When folding ObjectCreate(with-edge-checks), we are not emitting these
    checks and converting it to NewObject. As a result, we missed the edge
    filters and the subsequent code may rely on that. This patch correctly
    inserts these checks.

    Test: JSTests/stress/object-create-check-insertion.js

    * JSTests/stress/object-create-check-insertion.js: Added.
    (bitsToDouble):
    (enforce):
    (getKey):
    (getK2):
    (caller):
    (trainGetKey):
    (trainCaller):
    (trainGetK2):
    (ramp):
    * Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:
    (JSC::DFG::ConstantFoldingPhase::foldConstants):

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1150@webkitglib/2.52


  Commit: df44255ce578f6932e1f2d3fa2913317475aa268
      
https://github.com/WebKit/WebKit/commit/df44255ce578f6932e1f2d3fa2913317475aa268
  Author: Dan Hecht <[email protected]>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    A JSTests/wasm/gc/backwards-graph-multi-backedge-licm.js
    M Source/JavaScriptCore/b3/B3Procedure.h
    M Source/JavaScriptCore/b3/testb3.h
    M Source/JavaScriptCore/b3/testb3_1.cpp
    M Source/JavaScriptCore/b3/testb3_7.cpp
    M Source/WTF/wtf/BackwardsGraph.h

  Log Message:
  -----------
  Cherry-pick [email protected] (dec21f1baf1f). 
https://bugs.webkit.org/show_bug.cgi?id=317603

    [JSC] Fix BackwardsGraph for loops with multiple back-edge sources
    https://bugs.webkit.org/show_bug.cgi?id=317603
    rdar://178735697

    Reviewed by Marcus Plutowski.

    The addRootSuccessor lambda in WTF::BackwardsGraph used a single
    GraphNodeWorklist both to decide synthetic-root membership and to drive
    the predecessor-coverage flood. Depending on the order that back-edges
    were processed, this would cause some back-edge sources to not be
    included as backwards root successors.

    B3::BackwardsDominators, built on the resulting incomplete reverse CFG, can
    then report that a block post-dominates the loop pre-header even though a
    potentially-infinite loop between them means the block may never execute.
    B3HoistLoopInvariantValues uses post-dominators to conclude a 
control-dependent
    value always runs once the loop is entered, and hoists it into the 
pre-header,
    so the value can execute on paths where it should not.

    Decouple the two roles: addRootSuccessor now records every distinct 
back-edge
    source and terminal in m_rootSuccessorSet unconditionally, and uses the
    worklist only to bound the predecessor flood.

    Tests: JSTests/wasm/gc/backwards-graph-multi-backedge-licm.js
           Source/JavaScriptCore/b3/testb3_1.cpp
           Source/JavaScriptCore/b3/testb3_7.cpp

    * JSTests/wasm/gc/backwards-graph-multi-backedge-licm.js: Added.
    (catch):
    * Source/JavaScriptCore/b3/B3Procedure.h:
    * Source/JavaScriptCore/b3/testb3.h:
    * Source/JavaScriptCore/b3/testb3_1.cpp:
    (run):
    * Source/JavaScriptCore/b3/testb3_7.cpp:
    (testBackwardsDominatorsWithMultipleBackEdges):
    * Source/WTF/wtf/BackwardsGraph.h:
    (WTF::BackwardsGraph::BackwardsGraph):

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1151@webkitglib/2.52


Compare: https://github.com/WebKit/WebKit/compare/08279e6ba1d6...df44255ce578

To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to