diff options
author | Martin Negyokru <[email protected]> | 2025-07-23 11:12:33 +0200 |
---|---|---|
committer | Martin Negyokru <[email protected]> | 2025-07-24 23:29:13 +0200 |
commit | f1effe055f77ae1fa8ae9fb6c0e149cbba7cc15a (patch) | |
tree | 5e0f773dde79efd30add2c53cef037e6066d7cc3 /src | |
parent | a4b379352e6b8b8396a15ea79232ec5b324b1599 (diff) |
Add missing notifier for extension service workers
Forward 'WillDestroyServiceWorkerContextOnWorkerThread' event
to the browser which will release the browser side resources
of the service worker.
Fixes "FATAL:api_event_handler.cc(44)] Check failed: emitters.empty().
|emitters| should have been cleared by InvalidateContext()"
Amends 9d9780d444e8e7b1a2e066ae4b872a77d35f87bf
Task-number: QTBUG-61676
Pick-to: 6.10
Change-Id: Ic7d127e979036873646324d17d351bfc30f78950
Reviewed-by: Allan Sandfeld Jensen <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/renderer/content_renderer_client_qt.cpp | 10 | ||||
-rw-r--r-- | src/core/renderer/content_renderer_client_qt.h | 5 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp index 2052ba8d7..3e02ff124 100644 --- a/src/core/renderer/content_renderer_client_qt.cpp +++ b/src/core/renderer/content_renderer_client_qt.cpp @@ -495,6 +495,16 @@ void ContentRendererClientQt::DidStartServiceWorkerContextOnWorkerThread( service_worker_scope, script_url); } +void ContentRendererClientQt::WillDestroyServiceWorkerContextOnWorkerThread( + v8::Local<v8::Context> context, int64_t service_worker_version_id, + const GURL &service_worker_scope, const GURL &script_url) +{ + extensions::ExtensionsRendererClient::Get() + ->dispatcher() + ->WillDestroyServiceWorkerContextOnWorkerThread(context, service_worker_version_id, + service_worker_scope, script_url); +} + bool ContentRendererClientQt::AllowScriptExtensionForServiceWorker(const url::Origin &script_origin) { return script_origin.scheme() == extensions::kExtensionScheme; diff --git a/src/core/renderer/content_renderer_client_qt.h b/src/core/renderer/content_renderer_client_qt.h index 874285fb0..714652420 100644 --- a/src/core/renderer/content_renderer_client_qt.h +++ b/src/core/renderer/content_renderer_client_qt.h @@ -100,6 +100,11 @@ public: int64_t service_worker_version_id, const GURL &service_worker_scope, const GURL &script_url, const blink::ServiceWorkerToken &service_worker_token) override; + void WillDestroyServiceWorkerContextOnWorkerThread(v8::Local<v8::Context> context, + int64_t service_worker_version_id, + const GURL &service_worker_scope, + const GURL &script_url) override; + void DidInitializeServiceWorkerContextOnWorkerThread( blink::WebServiceWorkerContextProxy *context_proxy, const GURL &service_worker_scope, const GURL &script_url) override; |