Ai
1 Star 2 Fork 142

Qt(开源集合)/DS

forked from Vanishi/DS 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
TaskWebEngineProfile.cpp 3.01 KB
一键复制 编辑 原始数据 按行查看 历史
sun-th 提交于 2023-04-16 11:06 +08:00 . 内容可能含有违规信息
#include "TaskWebEngineProfile.h"
#include <QMutex>
#include <QMutexLocker>
#include <QWebEngineProfile>
#include <QWebEngineSettings>
#include <QsLog.h>
#include "Utils/Utils.h"
QAtomicPointer<TaskWebEngineProfile> TaskWebEngineProfile::mInstance = 0;
QMutex TaskWebEngineProfile::mInstanceMtx;
TaskWebEngineProfile::TaskWebEngineProfile(QObject *parent) : QObject(parent)
{
// setZoomFactor(zoomFactor() - 0.3);
// mProfile =new QWebEngineProfile(this);
// mProfile = QWebEngineProfile::defaultProfile();
mCacheName = QString::fromLatin1("ChromiumV%1").arg(qWebEngineChromiumVersion());
mProfile = new QWebEngineProfile(mCacheName,this);
// QString cachePath = "/file";
// profile->setCachePath(cachePath);
// profile->setPersistentStoragePath(cachePath);
mProfile->setHttpCacheType(QWebEngineProfile::HttpCacheType::DiskHttpCache);
mProfile->setPersistentCookiesPolicy(QWebEngineProfile::PersistentCookiesPolicy::ForcePersistentCookies);
mCachePath = mProfile->persistentStoragePath();
// mProfile->setHttpCacheMaximumSize(102400);
QLOG_INFO() <<"TaskWebEngineProfile cachePath()="<<mCachePath;
QWebEngineSettings *settings = mProfile->settings();
settings->setAttribute(QWebEngineSettings::LocalStorageEnabled, true);
settings->setAttribute(QWebEngineSettings::JavascriptCanAccessClipboard, true);
settings->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true);
settings->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, true);
settings->setAttribute(QWebEngineSettings::AllowGeolocationOnInsecureOrigins, true);
settings->setAttribute(QWebEngineSettings::JavascriptCanPaste, true);
settings->setAttribute(QWebEngineSettings::PluginsEnabled, true);
settings->setAttribute(QWebEngineSettings::DnsPrefetchEnabled, true);
settings->setAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls, true);
settings->setAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls, false);
}
TaskWebEngineProfile::~TaskWebEngineProfile(){
}
TaskWebEngineProfile * TaskWebEngineProfile::getInstance(){
//! testAndSetOrders操作保证在原子操作前和后的的内存访问 不会被重新排序。
if(mInstance.testAndSetOrdered(0,0)){
QMutexLocker locker(&mInstanceMtx);
mInstance.testAndSetOrdered(0,new TaskWebEngineProfile(nullptr));
}
return mInstance;
}
QWebEngineProfile* TaskWebEngineProfile::profile(){
return mProfile;
}
QWebEngineProfile* TaskWebEngineProfile::copyProfile(){
QWebEngineProfile *newCopyProfile = new QWebEngineProfile(mCacheName,this);
newCopyProfile->setHttpCacheType(QWebEngineProfile::HttpCacheType::MemoryHttpCache);
newCopyProfile->setPersistentCookiesPolicy(QWebEngineProfile::PersistentCookiesPolicy::AllowPersistentCookies);
return newCopyProfile;
}
QString TaskWebEngineProfile::cachePath(){
return mCachePath;
}
void TaskWebEngineProfile::clearCache(){
mProfile->clearAllVisitedLinks();
mProfile->clearHttpCache();
Utils::clearDir(mCachePath);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/qt-open-source-collection/DS.git
git@gitee.com:qt-open-source-collection/DS.git
qt-open-source-collection
DS
DS
master

搜索帮助