summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-06-14 14:58:53 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-07-02 06:21:52 +0000
commit755806f120b7e191043dcddd4ea9e26a66d142fa (patch)
tree60265d4a928ae89a4a51150bd2f390bae09f5db1
parent0819b8321314a1dd4990dd3841d6b5e622a02076 (diff)
Remove QRC->file special case
It was marked as to be removed for Qt6 Change-Id: I059c450aa6e5cad6d48ecdd2667abff21217d7e0 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> (cherry picked from commit 01f45d0b536ac2dad7493c826907ded7a76f59d6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/core/content_browser_client_qt.cpp3
-rw-r--r--src/core/profile_adapter.cpp11
-rw-r--r--src/core/renderer/content_renderer_client_qt.cpp9
-rw-r--r--tests/auto/core/origins/CMakeLists.txt1
-rw-r--r--tests/auto/core/origins/resources/websocket2.html23
-rw-r--r--tests/auto/core/origins/tst_origins.cpp8
-rw-r--r--tests/auto/core/origins/tst_origins.qrc1
7 files changed, 31 insertions, 25 deletions
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<network::mojom::CorsOriginPatternPtr> 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 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>WebSocket</title>
+ <script src="../qtwebchannel/qwebchannel.js"></script>
+ <script>
+ var result;
+ new QWebChannel(qt.webChannelTransport, channel => {
+ const ws = new WebSocket(channel.objects.echoServer.url);
+ ws.addEventListener("open", event => {
+ ws.send("ok");
+ });
+ ws.addEventListener("message", event => {
+ result = event.data;
+ });
+ ws.addEventListener("close", event => {
+ result = event.code;
+ });
+ })
+ </script>
+ </head>
+ <body></body>
+</html>
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 @@
<file>resources/subdir_frame1.html</file>
<file>resources/viewSource.html</file>
<file>resources/websocket.html</file>
+ <file>resources/websocket2.html</file>
</qresource>
</RCC>