summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSzabolcs David <davidsz@inf.u-szeged.hu>2021-12-13 14:51:55 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-12-30 07:36:00 +0000
commit99e34e9c99453b4990c82468260f431dede4e256 (patch)
tree4b056e3b20ea106998e7a0531cf04122a130a813
parent594c8595553ec302a3852e6bf55425023c5897c5 (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.cpp8
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()) {