File indexing completed on 2025-02-16 04:49:25
0001 /* 0002 SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "markdownenginepage.h" 0008 #include <QWebEngineProfile> 0009 #include <QWebEngineSettings> 0010 0011 MarkdownEnginePage::MarkdownEnginePage(QObject *parent) 0012 : QWebEnginePage(parent) 0013 { 0014 settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, false); 0015 settings()->setAttribute(QWebEngineSettings::PluginsEnabled, false); 0016 settings()->setAttribute(QWebEngineSettings::AutoLoadImages, true); 0017 settings()->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, false); 0018 settings()->setAttribute(QWebEngineSettings::JavascriptCanAccessClipboard, false); 0019 settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, false); 0020 settings()->setAttribute(QWebEngineSettings::XSSAuditingEnabled, false); 0021 settings()->setAttribute(QWebEngineSettings::ErrorPageEnabled, false); 0022 settings()->setAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls, false); 0023 settings()->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, false); 0024 settings()->setAttribute(QWebEngineSettings::WebGLEnabled, false); 0025 settings()->setAttribute(QWebEngineSettings::AutoLoadIconsForPage, false); 0026 settings()->setAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled, false); 0027 settings()->setAttribute(QWebEngineSettings::WebGLEnabled, false); 0028 0029 settings()->setAttribute(QWebEngineSettings::FocusOnNavigationEnabled, false); 0030 settings()->setAttribute(QWebEngineSettings::AllowRunningInsecureContent, false); 0031 0032 settings()->setAttribute(QWebEngineSettings::ShowScrollBars, true); 0033 settings()->setAttribute(QWebEngineSettings::AllowWindowActivationFromJavaScript, false); 0034 settings()->setAttribute(QWebEngineSettings::PlaybackRequiresUserGesture, false); 0035 settings()->setAttribute(QWebEngineSettings::JavascriptCanPaste, false); 0036 settings()->setAttribute(QWebEngineSettings::WebRTCPublicInterfacesOnly, false); 0037 settings()->setAttribute(QWebEngineSettings::PdfViewerEnabled, false); 0038 profile()->setPersistentCookiesPolicy(QWebEngineProfile::NoPersistentCookies); 0039 } 0040 0041 MarkdownEnginePage::~MarkdownEnginePage() = default; 0042 0043 bool MarkdownEnginePage::acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) 0044 { 0045 Q_UNUSED(type) 0046 Q_UNUSED(isMainFrame) 0047 if (url.scheme() == QLatin1StringView("data")) { 0048 return true; 0049 } 0050 return false; 0051 } 0052 0053 #include "moc_markdownenginepage.cpp"