summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Negyokru <[email protected]>2025-07-23 11:12:33 +0200
committerMartin Negyokru <[email protected]>2025-07-24 23:29:13 +0200
commitf1effe055f77ae1fa8ae9fb6c0e149cbba7cc15a (patch)
tree5e0f773dde79efd30add2c53cef037e6066d7cc3 /src
parenta4b379352e6b8b8396a15ea79232ec5b324b1599 (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.cpp10
-rw-r--r--src/core/renderer/content_renderer_client_qt.h5
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;