From 0b5f110234256eabaa264189d9117069f2a2d144 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 18 Feb 2021 11:47:24 +0100 Subject: Avoid accessing profileAdapter when profile is shutting down Pick-to: 5.15.3 Task-number: QTBUG-91187 Change-Id: Icaef781025791a94c0e5dd85039c33b8ae45de99 Reviewed-by: Michal Klocek --- src/core/content_browser_client_qt.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/core/content_browser_client_qt.cpp') diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp index fbc57999e..690c4f43e 100644 --- a/src/core/content_browser_client_qt.cpp +++ b/src/core/content_browser_client_qt.cpp @@ -780,6 +780,8 @@ bool ContentBrowserClientQt::AllowAppCache(const GURL &manifest_url, content::BrowserContext *context) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + if (!context || context->ShutdownStarted()) + return false; return static_cast(context)->profileAdapter()->cookieStore()->d_func()->canAccessCookies(toQt(first_party), toQt(manifest_url)); } @@ -806,6 +808,8 @@ ContentBrowserClientQt::AllowServiceWorkerOnUI(const GURL &scope, content::BrowserContext *context) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + if (!context || context->ShutdownStarted()) + return content::AllowServiceWorkerResult::No(); // FIXME: Chrome also checks if javascript is enabled here to check if has been disabled since the service worker // was started. return static_cast(context)->profileAdapter()->cookieStore()->d_func()->canAccessCookies(toQt(site_for_cookies), toQt(scope)) @@ -820,6 +824,8 @@ void ContentBrowserClientQt::AllowWorkerFileSystem(const GURL &url, base::OnceCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + if (!context || context->ShutdownStarted()) + return std::move(callback).Run(false); std::move(callback).Run( static_cast(context)->profileAdapter()->cookieStore()->d_func()->canAccessCookies(toQt(url), toQt(url))); } @@ -830,6 +836,8 @@ bool ContentBrowserClientQt::AllowWorkerIndexedDB(const GURL &url, const std::vector &/*render_frames*/) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + if (!context || context->ShutdownStarted()) + return false; return static_cast(context)->profileAdapter()->cookieStore()->d_func()->canAccessCookies(toQt(url), toQt(url)); } -- cgit v1.2.3