gpt4 book ai didi

c++ - 如何为 QWebEngineView 设置 OffTheRecord 配置文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:25 26 4
gpt4 key购买 nike

如何为 QWebEngineView 设置 OffTheRecord 配置文件?

我在 Linux 上使用 QT5.10。

我将在具有只读文件系统的嵌入式环境中使用它,我需要防止 WebEngine 在文件系统中写入文件和创建文件夹。

#include <QApplication>
#include <QWebEngineView>
#include <QWebEngineSettings>
#include <QWebEngineProfile>

int main(int argc, char *argv[]) {

QApplication a(argc, argv);
QWebEngineView view;

auto profile = view.page()->profile();

profile->setHttpCacheType(QWebEngineProfile::MemoryHttpCache);
profile->setPersistentCookiesPolicy(QWebEngineProfile::NoPersistentCookies);
//profile->setPersistentStoragePath(nullptr);

std::cout << "StoragePath: " << profile->persistentStoragePath().toStdString() << std::endl;
std::cout << "isOffTheRecord: " << profile->isOffTheRecord() << std::endl;

profile->settings()->setAttribute(QWebEngineSettings::AllowRunningInsecureContent, true); // Since Qt5.7
profile->settings()->setAttribute(QWebEngineSettings::XSSAuditingEnabled, false);

view.setUrl(QUrl(QStringLiteral("http://localhost/index.html")));

view.resize(1920, 1080);
view.show();

return a.exec();
}

最佳答案

试试这个配置:

首先,禁用任何可能的 cookie。使用 setPersistentCookiesPolicy并将其设置为 NoPersistentCookies

如果您可以写入给定文件夹,请尝试将所有临时文件保存在安全存储中:

auto *profile = QWebEngineProfile::defaultProfile();
profile->setCachePath("yourfolder");
profile->setPersistentStoragePath("yourfolder");

这应该可以让您控制 Web 引擎生成的所有临时文件。

如果没有,查看 Qt 存储库,您可以看到管理此状态的变量在 BrowserContextAdapter 中控制。 ,如果在创建浏览器上下文时存储路径为空,则此变量设置为 false。

因此,如果您使用空 QString 作为路径创建自己的 QWebEngineProfile,并将其用作默认配置文件:

QWebEngineProfile* profile = new QWebEngineProfile(QString(), parent)
std::cout << "isOffTheRecord: " << profile->isOffTheRecord() << std::endl; // Should return true

如果您使用它来创建任何单个 QWebEnginePage,这可以很容易地完成手动使用此配置文件并使用 setPage 在您的 QWebEngineView 中设置它:

engineview->setPage(new QWebEnginePage(profile, parent));

关于c++ - 如何为 QWebEngineView 设置 OffTheRecord 配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47741388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com