From 755806f120b7e191043dcddd4ea9e26a66d142fa Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 14 Jun 2021 14:58:53 +0200 Subject: Remove QRC->file special case MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It was marked as to be removed for Qt6 Change-Id: I059c450aa6e5cad6d48ecdd2667abff21217d7e0 Reviewed-by: Jüri Valdmann (cherry picked from commit 01f45d0b536ac2dad7493c826907ded7a76f59d6) Reviewed-by: Qt Cherry-pick Bot --- src/core/content_browser_client_qt.cpp | 3 +-- src/core/profile_adapter.cpp | 11 ----------- src/core/renderer/content_renderer_client_qt.cpp | 9 --------- tests/auto/core/origins/CMakeLists.txt | 1 + tests/auto/core/origins/resources/websocket2.html | 23 +++++++++++++++++++++++ tests/auto/core/origins/tst_origins.cpp | 8 +++++--- tests/auto/core/origins/tst_origins.qrc | 1 + 7 files changed, 31 insertions(+), 25 deletions(-) create mode 100644 tests/auto/core/origins/resources/websocket2.html diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp index f17bc5025..9b0745794 100644 --- a/src/core/content_browser_client_qt.cpp +++ b/src/core/content_browser_client_qt.cpp @@ -1107,8 +1107,7 @@ void ContentBrowserClientQt::RegisterNonNetworkSubresourceURLLoaderFactories(int // Install file scheme if necessary: // FIXME: "extension -> file" will not be needed after switching to using transferable url loaders and guest views. - // FIXME: "qrc -> file" should be reconsidered for Qt6. - bool install_file_scheme = url.SchemeIs("qrc"); + bool install_file_scheme = false; #if BUILDFLAG(ENABLE_EXTENSIONS) install_file_scheme = install_file_scheme || url.SchemeIs(extensions::kExtensionScheme); #endif diff --git a/src/core/profile_adapter.cpp b/src/core/profile_adapter.cpp index 0072eea50..7faeecf9b 100644 --- a/src/core/profile_adapter.cpp +++ b/src/core/profile_adapter.cpp @@ -115,17 +115,6 @@ ProfileAdapter::ProfileAdapter(const QString &storageName): if (!storageName.isEmpty()) extensions::ExtensionSystem::Get(m_profile.data())->InitForRegularProfile(true); #endif - - // Allow XMLHttpRequests from qrc to file. - // ### consider removing for Qt6 - url::Origin qrc = url::Origin::Create(GURL("qrc://")); - auto pattern = network::mojom::CorsOriginPattern::New("file", "", 0, - network::mojom::CorsDomainMatchMode::kAllowSubdomains, - network::mojom::CorsPortMatchMode::kAllowAnyPort, - network::mojom::CorsOriginAccessMatchPriority::kDefaultPriority); - std::vector list; - list.push_back(std::move(pattern)); - m_profile->GetSharedCorsOriginAccessList()->SetForOrigin(qrc, std::move(list), {}, base::BindOnce([]{})); m_cancelableTaskTracker.reset(new base::CancelableTaskTracker()); } diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp index 99e98985b..2ba8ad53e 100644 --- a/src/core/renderer/content_renderer_client_qt.cpp +++ b/src/core/renderer/content_renderer_client_qt.cpp @@ -150,15 +150,6 @@ void ContentRendererClientQt::RenderThreadStarted() InitSpellCheck(); #endif - // Allow XMLHttpRequests from qrc to file. - // ### consider removing for Qt6 - blink::WebURL qrc(GURL("qrc:")); - blink::WebString file(blink::WebString::FromASCII("file")); - blink::WebSecurityPolicy::AddOriginAccessAllowListEntry( - qrc, file, blink::WebString(), 0, network::mojom::CorsDomainMatchMode::kAllowSubdomains, - network::mojom::CorsPortMatchMode::kAllowAnyPort, - network::mojom::CorsOriginAccessMatchPriority::kDefaultPriority); - #if BUILDFLAG(ENABLE_EXTENSIONS) // Allow the pdf viewer extension to access chrome resources blink::WebURL pdfViewerExtension(GURL("chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai")); diff --git a/tests/auto/core/origins/CMakeLists.txt b/tests/auto/core/origins/CMakeLists.txt index a044ea2ef..79b8278a7 100644 --- a/tests/auto/core/origins/CMakeLists.txt +++ b/tests/auto/core/origins/CMakeLists.txt @@ -28,6 +28,7 @@ set(tst_origins_resource_files "resources/subdir_frame1.html" "resources/viewSource.html" "resources/websocket.html" + "resources/websocket2.html" ) qt_internal_add_resource(tst_origins "tst_origins" diff --git a/tests/auto/core/origins/resources/websocket2.html b/tests/auto/core/origins/resources/websocket2.html new file mode 100644 index 000000000..7365143de --- /dev/null +++ b/tests/auto/core/origins/resources/websocket2.html @@ -0,0 +1,23 @@ + + + + WebSocket + + + + + diff --git a/tests/auto/core/origins/tst_origins.cpp b/tests/auto/core/origins/tst_origins.cpp index a34404a7e..1aeb3628a 100644 --- a/tests/auto/core/origins/tst_origins.cpp +++ b/tests/auto/core/origins/tst_origins.cpp @@ -185,6 +185,8 @@ private: } QString pathPrefix = QDir(QT_TESTCASE_SOURCEDIR).canonicalPath(); + if (url.path().startsWith("/qtwebchannel/")) + pathPrefix = QSL(":"); QString pathSuffix = url.path(); QFile *file = new QFile(pathPrefix + pathSuffix, job); if (!file->open(QIODevice::ReadOnly)) { @@ -676,7 +678,7 @@ void tst_Origins::mixedXHR_data() << QString("sendXHR('file:" + QDir(QT_TESTCASE_SOURCEDIR).canonicalPath() + "/resources/mixedXHR.txt')") - << QVariant(QString("ok")); + << QVariant(QString("error")); QTest::newRow("qrc->qrc") << QString("qrc:/resources/mixedXHR.html") << QString("sendXHR('qrc:/resources/mixedXHR.txt')") << QVariant(QString("ok")); @@ -783,11 +785,11 @@ void tst_Origins::webSocket() QTRY_COMPARE(eval(QSL("result")), QVariant(QSL("ok"))); // Unregistered schemes can also open WebSockets (since Chromium 71) - QVERIFY(verifyLoad(QSL("tst:/resources/websocket.html"))); + QVERIFY(verifyLoad(QSL("tst:/resources/websocket2.html"))); QTRY_COMPARE(eval(QSL("result")), QVariant(QSL("ok"))); // Even an insecure registered scheme can open WebSockets. - QVERIFY(verifyLoad(QSL("PathSyntax:/resources/websocket.html"))); + QVERIFY(verifyLoad(QSL("PathSyntax:/resources/websocket2.html"))); QTRY_COMPARE(eval(QSL("result")), QVariant(QSL("ok"))); } #endif diff --git a/tests/auto/core/origins/tst_origins.qrc b/tests/auto/core/origins/tst_origins.qrc index fcf54aaea..ae5245378 100644 --- a/tests/auto/core/origins/tst_origins.qrc +++ b/tests/auto/core/origins/tst_origins.qrc @@ -18,5 +18,6 @@ resources/subdir_frame1.html resources/viewSource.html resources/websocket.html + resources/websocket2.html -- cgit v1.2.3