diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-02-18 11:47:24 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-02-18 22:49:18 +0000 |
commit | a00fb61776425ed0f32d4d4052ffb1567f62e6d7 (patch) | |
tree | a3b15d3ac8361d4d0418b2b025e5ad68320a4bb5 | |
parent | 01ef1475e68b943bb169001d06eb73034c76409d (diff) |
Avoid accessing profileAdapter when profile is shutting down
Task-number: QTBUG-91187
Change-Id: Icaef781025791a94c0e5dd85039c33b8ae45de99
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
(cherry picked from commit 0b5f110234256eabaa264189d9117069f2a2d144)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/core/content_browser_client_qt.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
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<ProfileQt *>(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<ProfileQt *>(context)->profileAdapter()->cookieStore()->d_func()->canAccessCookies(toQt(site_for_cookies), toQt(scope)) @@ -820,6 +824,8 @@ void ContentBrowserClientQt::AllowWorkerFileSystem(const GURL &url, base::OnceCallback<void(bool)> callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + if (!context || context->ShutdownStarted()) + return std::move(callback).Run(false); std::move(callback).Run( static_cast<ProfileQt *>(context)->profileAdapter()->cookieStore()->d_func()->canAccessCookies(toQt(url), toQt(url))); } @@ -830,6 +836,8 @@ bool ContentBrowserClientQt::AllowWorkerIndexedDB(const GURL &url, const std::vector<content::GlobalFrameRoutingId> &/*render_frames*/) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + if (!context || context->ShutdownStarted()) + return false; return static_cast<ProfileQt *>(context)->profileAdapter()->cookieStore()->d_func()->canAccessCookies(toQt(url), toQt(url)); } |