Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 78561c18d0d29f97e8e49b2822e7e522534d53a4
      
https://github.com/WebKit/WebKit/commit/78561c18d0d29f97e8e49b2822e7e522534d53a4
  Author: Kimmo Kinnunen <[email protected]>
  Date:   2022-10-05 (Wed, 05 Oct 2022)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/workers/many-nested-workers-no-crash-expected.txt
    A LayoutTests/workers/many-nested-workers-no-crash.html
    A LayoutTests/workers/resources/many-nested-workers-parent.js
    A LayoutTests/workers/resources/many-nested-workers.js
    M Source/WebCore/inspector/InspectorInstrumentation.h
    M Source/WebCore/inspector/InspectorInstrumentationPublic.cpp
    M Source/WebCore/inspector/InspectorInstrumentationPublic.h
    M Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp
    M Source/WebCore/workers/WorkerInspectorProxy.cpp
    M Source/WebCore/workers/WorkerInspectorProxy.h

  Log Message:
  -----------
  Crash due to race to the map in 
WorkerInspectorProxy::allWorkerInspectorProxies()
https://bugs.webkit.org/show_bug.cgi?id=245460
rdar://problem/100209198

Reviewed by David Kilzer.

Protect the global map with a mutex, so concurrent adds, removes and gets
are more consistent.

Construct the WorkerInspectorProxy weak pointer factory eagerly,
so that when potentially multiple threads construct a weak pointer,
they do not race to create and store the factory. Also ensurest that
the factory is created in the creation thread, which presumably is
also the thread that uses the weak pointer.

* LayoutTests/workers/many-nested-workers-no-crash-expected.txt: Added.
* LayoutTests/workers/many-nested-workers-no-crash.html: Added.
* LayoutTests/workers/resources/many-nested-workers-parent.js: Added.
(try.i.worker.onmessage):
(catch):
* LayoutTests/workers/resources/many-nested-workers.js: Added.
(onmessage):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to