diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2021-12-13 14:51:55 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-12-30 07:36:00 +0000 |
commit | 99e34e9c99453b4990c82468260f431dede4e256 (patch) | |
tree | 4b056e3b20ea106998e7a0531cf04122a130a813 | |
parent | 594c8595553ec302a3852e6bf55425023c5897c5 (diff) |
Fix crash on meet.google.com
Hangout Services extension has a background WebContents. Do not try
to access its delegate and settings.
Task-number: QTBUG-99119
Change-Id: Ib46867ba98644e14af6263253daa253ef2e6b12a
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 1552ad5d3e66460bbbb5bbd71ca2083fb9d17d3f)
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, 7 insertions, 1 deletions
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp index 893eca09d..8f62d727c 100644 --- a/src/core/content_browser_client_qt.cpp +++ b/src/core/content_browser_client_qt.cpp @@ -157,6 +157,7 @@ #include "extensions/browser/guest_view/web_view/web_view_guest.h" #include "extensions/browser/process_map.h" #include "extensions/browser/url_loader_factory_manager.h" +#include "extensions/browser/view_type_utils.h" #include "extensions/common/constants.h" #include "extensions/common/manifest_handlers/mime_types_handler.h" #include "extensions/extension_web_contents_observer_qt.h" @@ -1094,9 +1095,14 @@ void ContentBrowserClientQt::RegisterNonNetworkSubresourceURLLoaderFactories(int if (web_contents) url = web_contents->GetVisibleURL(); + bool is_background_page = false; +#if BUILDFLAG(ENABLE_EXTENSIONS) + is_background_page = extensions::GetViewType(web_contents) == extensions::mojom::ViewType::kExtensionBackgroundPage; +#endif // BUILDFLAG(ENABLE_EXTENSIONS) + // Install file scheme if necessary: bool install_file_scheme = false; - if (web_contents) { + if (web_contents && !is_background_page) { const auto *settings = static_cast<WebContentsDelegateQt *>(web_contents->GetResponsibleWebContents()->GetDelegate())->webEngineSettings(); if (settings->testAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls)) { for (const auto &local_scheme : url::GetLocalSchemes()) { |