diff options
Diffstat (limited to 'src/core/content_browser_client_qt.cpp')
-rw-r--r-- | src/core/content_browser_client_qt.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp index 2b1485b2d..6201bab27 100644 --- a/src/core/content_browser_client_qt.cpp +++ b/src/core/content_browser_client_qt.cpp @@ -1102,15 +1102,10 @@ void ContentBrowserClientQt::RegisterNonNetworkSubresourceURLLoaderFactories(int // Install file scheme if necessary: bool install_file_scheme = false; 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()) { - if (url.SchemeIs(local_scheme)) { - install_file_scheme = true; - break; - } - } - } + const std::string scheme = url.scheme(); + install_file_scheme = base::Contains(url::GetLocalSchemes(), scheme); + if (const url::CustomScheme *cs = url::CustomScheme::FindScheme(scheme)) + install_file_scheme = cs->flags & (url::CustomScheme::LocalAccessAllowed | url::CustomScheme::Local); } if (install_file_scheme && factories->find(url::kFileScheme) == factories->end()) { |