diff options
Diffstat (limited to 'tests/quicktestbrowser/main.cpp')
-rw-r--r-- | tests/quicktestbrowser/main.cpp | 22 |
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(); } |