summaryrefslogtreecommitdiffstats
path: root/tests/quicktestbrowser/main.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-09-01 13:10:34 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-01-19 07:42:58 +0000
commit757004ecf484289f576870b4f251c3e7551294c5 (patch)
tree3f45d9230b87239d16ca7584c07b54b068c11697 /tests/quicktestbrowser/main.cpp
parent71d6dc0c326523103dff867d7184e7bc7e49c71d (diff)
Reinstate cookie filter API
Expose API to block cookies for specific domains, or third party cookies in general. Task-number: QTBUG-62897 Change-Id: I7f0e3f346368a2ef2fbd77f3197ee2dea50d57ce Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'tests/quicktestbrowser/main.cpp')
-rw-r--r--tests/quicktestbrowser/main.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/quicktestbrowser/main.cpp b/tests/quicktestbrowser/main.cpp
index 3f513f6a6..d56841974 100644
--- a/tests/quicktestbrowser/main.cpp
+++ b/tests/quicktestbrowser/main.cpp
@@ -70,7 +70,27 @@ int main(int argc, char **argv)
Utils utils;
appEngine.rootContext()->setContextProperty("utils", &utils);
appEngine.load(QUrl("qrc:/ApplicationRoot.qml"));
- QMetaObject::invokeMethod(appEngine.rootObjects().first(), "load", Q_ARG(QVariant, startupUrl()));
+
+ QObject *rootObject = appEngine.rootObjects().first();
+
+ QQuickWebEngineProfile *profile = new QQuickWebEngineProfile(rootObject);
+
+ const QMetaObject *rootMeta = rootObject->metaObject();
+ int index = rootMeta->indexOfProperty("thirdPartyCookiesEnabled");
+ Q_ASSERT(index != -1);
+ QMetaProperty thirdPartyCookiesProperty = rootMeta->property(index);
+ profile->cookieStore()->setCookieFilter(
+ [rootObject,&thirdPartyCookiesProperty](QWebEngineCookieStore::FilterRequest &request)
+ {
+ request.accepted = !request.thirdParty || thirdPartyCookiesProperty.read(rootObject).toBool();
+ });
+
+ index = rootMeta->indexOfProperty("testProfile");
+ Q_ASSERT(index != -1);
+ QMetaProperty profileProperty = rootMeta->property(index);
+ profileProperty.write(rootObject, qVariantFromValue(profile));
+
+ QMetaObject::invokeMethod(rootObject, "load", Q_ARG(QVariant, startupUrl()));
return app.exec();
}