代码拉取完成,页面将自动刷新
同步操作将从 Vanishi/DS 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#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);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。