Changeset 256129 in webkit


Ignore:
Timestamp:
Feb 10, 2020 5:23:36 AM (4 years ago)
Author:
Carlos Garcia Campos
Message:

Merge r255989 - REGRESSION (r254706): Crash under WebProcessPool::terminateServiceWorkerProcess()
https://bugs.webkit.org/show_bug.cgi?id=207354
<rdar://problem/59184818>

Reviewed by Geoffrey Garen.

No new tests, not easily testable AFAIK since this happens on failure to send sync IPC to
the service worker when terminating it.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::terminateServiceWorkerProcess):
'auto' resolved to 'WeakPtr<WebProcessProxy>' in this method and the call to
disableServiceWorkers() could cause the process to get destroyed. We would then
do a null dereference on the next line.

Location:
releases/WebKitGTK/webkit-2.28/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.28/Source/WebKit/ChangeLog

    r256125 r256129  
     12020-02-06  Chris Dumez  <cdumez@apple.com>
     2
     3        REGRESSION (r254706): Crash under WebProcessPool::terminateServiceWorkerProcess()
     4        https://bugs.webkit.org/show_bug.cgi?id=207354
     5        <rdar://problem/59184818>
     6
     7        Reviewed by Geoffrey Garen.
     8
     9        No new tests, not easily testable AFAIK since this happens on failure to send sync IPC to
     10        the service worker when terminating it.
     11
     12        * UIProcess/WebProcessPool.cpp:
     13        (WebKit::WebProcessPool::terminateServiceWorkerProcess):
     14        'auto' resolved to 'WeakPtr<WebProcessProxy>' in this method and the call to
     15        disableServiceWorkers() could cause the process to get destroyed. We would then
     16        do a null dereference on the next line.
     17
    1182020-02-10  Adrian Perez de Castro  <aperez@igalia.com>
    219
  • releases/WebKitGTK/webkit-2.28/Source/WebKit/UIProcess/WebProcessPool.cpp

    r255952 r256129  
    17801780#if ENABLE(SERVICE_WORKER)
    17811781    auto protectedThis = makeRef(*this);
    1782     if (auto process = m_serviceWorkerProcesses.get({ domain, sessionID })) {
     1782    if (RefPtr<WebProcessProxy> process = m_serviceWorkerProcesses.get({ domain, sessionID }).get()) {
    17831783        process->disableServiceWorkers();
    17841784        process->requestTermination(ProcessTerminationReason::ExceededCPULimit);
Note: See TracChangeset for help on using the changeset viewer.