[webkit-changes] [WebKit/WebKit] 9f4b18: Safari tab freeze and gpu process crash when calli...

youennf noreply at github.com
Tue Sep 26 02:40:37 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9f4b18808c8363f95aea0e40a43ebb5793f0ac94
      https://github.com/WebKit/WebKit/commit/9f4b18808c8363f95aea0e40a43ebb5793f0ac94
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-09-26 (Tue, 26 Sep 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
    M Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.cpp
    M Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.h
    M Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.mm
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm
    A Tools/TestWebKitAPI/Tests/WebKitCocoa/camera-to-canvas.html

  Log Message:
  -----------
  Safari tab freeze and gpu process crash when calling canvas function drawimage/getimagedata/setimagedata from high resolution getUserMedia stream with several background tabs
https://bugs.webkit.org/show_bug.cgi?id=256366
rdar://109074255

Reviewed by Jean-Yves Avenard.

In case of low memory warning, we now destroy the RemoteVideoFrameObjectHeap pixel conformer if any since it might have a non empty buffer pool.
We introduce a lock so that we can do that clean-up from any thread.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::lowMemoryHandler):
* Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
(WebKit::RemoteVideoFrameObjectHeap::convertFrameBuffer):
(WebKit::RemoteVideoFrameObjectHeap::lowMemoryHandler):
* Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.h:
* Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.mm:
(WebKit::RemoteVideoFrameObjectHeap::createPixelConformer):
(WebKit::RemoteVideoFrameObjectHeap::createPixelConformerIfNeeded): Deleted.
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/camera-to-canvas.html: Added.

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




More information about the webkit-changes mailing list