summaryrefslogtreecommitdiffstats
path: root/src/core/content_browser_client_qt.cpp
diff options
context:
space:
mode:
authorSzabolcs David <davidsz@inf.u-szeged.hu>2021-12-13 14:51:55 +0100
committerSzabolcs David <davidsz@inf.u-szeged.hu>2021-12-30 02:06:12 +0100
commit1552ad5d3e66460bbbb5bbd71ca2083fb9d17d3f (patch)
tree1899be277defb991c71b1f6e1987649f2a49f6fd /src/core/content_browser_client_qt.cpp
parent56005ae3d52568b469db32498afebd9c52e4881b (diff)
Fix crash on meet.google.com
Hangout Services extension has a background WebContents. Do not try to access its delegate and settings. Pick-to: 6.3 Task-number: QTBUG-99119 Change-Id: Ib46867ba98644e14af6263253daa253ef2e6b12a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/content_browser_client_qt.cpp')
-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()) {