summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
m---------src/3rdparty0
-rw-r--r--src/core/renderer/user_resource_controller.cpp2
-rw-r--r--tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp28
3 files changed, 29 insertions, 1 deletions
diff --git a/src/3rdparty b/src/3rdparty
-Subproject feccbb4ea7fa685dcd013f5a3f6c14ea768636c
+Subproject 7ac85fb4cc6f44a21761a591ac497ae3d6bf966
diff --git a/src/core/renderer/user_resource_controller.cpp b/src/core/renderer/user_resource_controller.cpp
index be5e6f043..2613d262e 100644
--- a/src/core/renderer/user_resource_controller.cpp
+++ b/src/core/renderer/user_resource_controller.cpp
@@ -71,7 +71,7 @@ static const int afterLoadTimeout = 500;
static int validUserScriptSchemes()
{
- return URLPattern::SCHEME_HTTP | URLPattern::SCHEME_HTTPS | URLPattern::SCHEME_FILE;
+ return URLPattern::SCHEME_HTTP | URLPattern::SCHEME_HTTPS | URLPattern::SCHEME_FILE | URLPattern::SCHEME_QRC;
}
static bool regexMatchesURL(const std::string &pat, const GURL &url) {
diff --git a/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp b/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp
index 90361f2c9..2e8687d9b 100644
--- a/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp
+++ b/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp
@@ -71,6 +71,7 @@ private Q_SLOTS:
#endif
void noTransportWithoutWebChannel();
void scriptsInNestedIframes();
+ void matchQrcUrl();
};
void tst_QWebEngineScript::domEditing()
@@ -589,6 +590,33 @@ void tst_QWebEngineScript::webChannelWithBadString()
QCOMPARE(host.text(), data);
}
#endif
+
+void tst_QWebEngineScript::matchQrcUrl()
+{
+ QWebEnginePage page;
+ QWebEngineView view;
+ view.setPage(&page);
+ QWebEngineScript s;
+ s.setInjectionPoint(QWebEngineScript::DocumentReady);
+ s.setWorldId(QWebEngineScript::MainWorld);
+
+
+ s.setSourceCode(QStringLiteral(R"(
+// ==UserScript==
+// @match qrc:/*main.html
+// ==/UserScript==
+
+document.title = 'New title';
+ )"));
+
+ page.scripts().insert(s);
+ page.load(QUrl("qrc:/resources/test_iframe_main.html"));
+ view.show();
+ QSignalSpy spyFinished(&page, &QWebEnginePage::loadFinished);
+ QVERIFY(spyFinished.wait());
+ QCOMPARE(page.title(), "New title");
+}
+
QTEST_MAIN(tst_QWebEngineScript)
#include "tst_qwebenginescript.moc"