Details
Description
It looks like returning false from QWebEngineCookieStore::setCookieFilter(...) does not filter cookies anymore with Qt 5.15, while it works fine with Qt 5.14.2.
To reproduce:
- Remove ~/.local/share/QtExamples/simplebrowser/QtWebEngine/Default/Cookies (or the equivalent on non-Linux systems)
- Patch simplebrowser to reject all cookies:
diff --git i/examples/webenginewidgets/simplebrowser/main.cpp w/examples/webenginewidgets/simplebrowser/main.cpp index ddc8b4d0..1a768a93 100644 --- i/examples/webenginewidgets/simplebrowser/main.cpp +++ w/examples/webenginewidgets/simplebrowser/main.cpp @@ -54,6 +54,7 @@ #include <QApplication> #include <QWebEngineProfile> #include <QWebEngineSettings> +#include <QWebEngineCookieStore> QUrl commandLineUrlArgument() { @@ -75,6 +76,7 @@ int main(int argc, char **argv) app.setWindowIcon(QIcon(QStringLiteral(":AppLogoColor.png"))); QWebEngineSettings::defaultSettings()->setAttribute(QWebEngineSettings::PluginsEnabled, true); + QWebEngineProfile::defaultProfile()->cookieStore()->setCookieFilter([](auto request) { return false; }); #if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0) QWebEngineSettings::defaultSettings()->setAttribute(QWebEngineSettings::DnsPrefetchEnabled, true); QWebEngineProfile::defaultProfile()->setUseForGlobalCertificateVerification();
- Run simplebrowser youtube.com with Qt 5.14
- Run sqlite3 ~/.local/share/QtExamples/simplebrowser/QtWebEngine/Default/Cookies 'select * from Cookies' and observe how there are no cookies
- Repeat with Qt 5.15 and you'll see various cookies saved to the database.