mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Replace webkit with webengine in the reports tool
This commit is contained in:
parent
290c74fd73
commit
40cc61397b
@ -1361,6 +1361,19 @@ def secure_web_page(qwebpage_or_qwebsettings):
|
|||||||
return settings
|
return settings
|
||||||
|
|
||||||
|
|
||||||
|
def secure_webengine(view_or_page_or_settings):
|
||||||
|
s = view_or_page_or_settings.settings() if hasattr(view_or_page_or_settings, 'settings') else view_or_page_or_settings
|
||||||
|
s.setUnknownUrlSchemePolicy(s.DisallowUnknownUrlSchemes)
|
||||||
|
a = s.setAttribute
|
||||||
|
a(s.PluginsEnabled, False)
|
||||||
|
a(s.JavascriptEnabled, False)
|
||||||
|
a(s.JavascriptCanOpenWindows, False)
|
||||||
|
a(s.JavascriptCanAccessClipboard, False)
|
||||||
|
a(s.LocalContentCanAccessFileUrls, False) # ensure javascript cannot read from local files
|
||||||
|
a(s.AllowWindowActivationFromJavaScript, False)
|
||||||
|
return s
|
||||||
|
|
||||||
|
|
||||||
empty_model = QStringListModel([''])
|
empty_model = QStringListModel([''])
|
||||||
empty_index = empty_model.index(0)
|
empty_index = empty_model.index(0)
|
||||||
|
|
||||||
|
@ -20,14 +20,15 @@ from PyQt5.Qt import (
|
|||||||
QListWidgetItem, QLineEdit, QStackedWidget, QSplitter, QByteArray, QPixmap,
|
QListWidgetItem, QLineEdit, QStackedWidget, QSplitter, QByteArray, QPixmap,
|
||||||
QStyledItemDelegate, QModelIndex, QRect, QStyle, QPalette, QTimer, QMenu,
|
QStyledItemDelegate, QModelIndex, QRect, QStyle, QPalette, QTimer, QMenu,
|
||||||
QAbstractItemModel, QTreeView, QFont, QRadioButton, QHBoxLayout,
|
QAbstractItemModel, QTreeView, QFont, QRadioButton, QHBoxLayout,
|
||||||
QFontDatabase, QComboBox, QUrl, QWebView)
|
QFontDatabase, QComboBox, QUrl)
|
||||||
|
from PyQt5.QtWebEngineWidgets import QWebEngineView
|
||||||
|
|
||||||
from calibre import human_readable, fit_image
|
from calibre import human_readable, fit_image
|
||||||
from calibre.constants import DEBUG
|
from calibre.constants import DEBUG
|
||||||
from calibre.ebooks.oeb.polish.report import (
|
from calibre.ebooks.oeb.polish.report import (
|
||||||
gather_data, CSSEntry, CSSFileMatch, MatchLocation, ClassEntry,
|
gather_data, CSSEntry, CSSFileMatch, MatchLocation, ClassEntry,
|
||||||
ClassFileMatch, ClassElement, CSSRule, LinkLocation)
|
ClassFileMatch, ClassElement, CSSRule, LinkLocation)
|
||||||
from calibre.gui2 import error_dialog, question_dialog, choose_save_file, open_url, secure_web_page
|
from calibre.gui2 import error_dialog, question_dialog, choose_save_file, open_url, secure_webengine
|
||||||
from calibre.gui2.tweak_book import current_container, tprefs, dictionaries
|
from calibre.gui2.tweak_book import current_container, tprefs, dictionaries
|
||||||
from calibre.gui2.tweak_book.widgets import Dialog
|
from calibre.gui2.tweak_book.widgets import Dialog
|
||||||
from calibre.gui2.progress_indicator import ProgressIndicator
|
from calibre.gui2.progress_indicator import ProgressIndicator
|
||||||
@ -576,7 +577,7 @@ class LinksModel(FileCollection):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class WebView(QWebView):
|
class WebView(QWebEngineView):
|
||||||
|
|
||||||
def sizeHint(self):
|
def sizeHint(self):
|
||||||
return QSize(600, 200)
|
return QSize(600, 200)
|
||||||
@ -603,7 +604,7 @@ class LinksWidget(QWidget):
|
|||||||
s.addWidget(f)
|
s.addWidget(f)
|
||||||
self.links.restore_table('links-table', sort_column=1)
|
self.links.restore_table('links-table', sort_column=1)
|
||||||
self.view = WebView(self)
|
self.view = WebView(self)
|
||||||
secure_web_page(self.view.page())
|
secure_webengine(self.view)
|
||||||
self.setContextMenuPolicy(Qt.NoContextMenu)
|
self.setContextMenuPolicy(Qt.NoContextMenu)
|
||||||
self.view.setContextMenuPolicy(Qt.NoContextMenu)
|
self.view.setContextMenuPolicy(Qt.NoContextMenu)
|
||||||
s.addWidget(self.view)
|
s.addWidget(self.view)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user