This commit is contained in:
Florian Bruhin 2016-11-10 13:59:06 +01:00
parent 8a4ca25b8d
commit 8f55725555
8 changed files with 15 additions and 22 deletions

View File

@ -29,9 +29,6 @@ class CertificateErrorWrapper(usertypes.AbstractCertificateErrorWrapper):
"""A wrapper over a QWebEngineCertificateError.""" """A wrapper over a QWebEngineCertificateError."""
def __init__(self, error):
self._error = error
def __str__(self): def __str__(self):
return self._error.errorDescription() return self._error.errorDescription()

View File

@ -22,7 +22,6 @@
"""Wrapper over a QWebEngineView.""" """Wrapper over a QWebEngineView."""
import html
import functools import functools
from PyQt5.QtCore import pyqtSlot, Qt, QEvent, QPoint, QUrl, QTimer from PyQt5.QtCore import pyqtSlot, Qt, QEvent, QPoint, QUrl, QTimer
@ -38,7 +37,7 @@ from qutebrowser.browser.webengine import (webview, webengineelem, tabhistory,
interceptor, webenginequtescheme, interceptor, webenginequtescheme,
webenginedownloads) webenginedownloads)
from qutebrowser.utils import (usertypes, qtutils, log, javascript, utils, from qutebrowser.utils import (usertypes, qtutils, log, javascript, utils,
objreg, message, debug) objreg)
_qute_scheme_handler = None _qute_scheme_handler = None

View File

@ -27,7 +27,7 @@ from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
# pylint: enable=no-name-in-module,import-error,useless-suppression # pylint: enable=no-name-in-module,import-error,useless-suppression
from qutebrowser.browser import shared from qutebrowser.browser import shared
from qutebrowser.browser.webengine import webenginetab, certificateerror from qutebrowser.browser.webengine import certificateerror
from qutebrowser.config import config from qutebrowser.config import config
from qutebrowser.utils import log, debug, usertypes, objreg, qtutils, jinja from qutebrowser.utils import log, debug, usertypes, objreg, qtutils, jinja
@ -127,6 +127,7 @@ class WebEnginePage(QWebEnginePage):
self.shutting_down.emit() self.shutting_down.emit()
def certificateError(self, error): def certificateError(self, error):
"""Handle certificate errors coming from Qt."""
self.certificate_error.emit() self.certificate_error.emit()
url = error.url() url = error.url()
error = certificateerror.CertificateErrorWrapper(error) error = certificateerror.CertificateErrorWrapper(error)
@ -147,9 +148,9 @@ class WebEnginePage(QWebEnginePage):
# We can't really know when to show an error page, as the error might # We can't really know when to show an error page, as the error might
# have happened when loading some resource. # have happened when loading some resource.
# However, self.url() is not available yet and self.requestedUrl() might # However, self.url() is not available yet and self.requestedUrl()
# not match the URL we get from the error - so we just apply a heuristic # might not match the URL we get from the error - so we just apply a
# here. # heuristic here.
# See https://bugreports.qt.io/browse/QTBUG-56207 # See https://bugreports.qt.io/browse/QTBUG-56207
log.webview.debug("ignore {}, URL {}, requested {}".format( log.webview.debug("ignore {}, URL {}, requested {}".format(
ignore, url, self.requestedUrl())) ignore, url, self.requestedUrl()))
@ -159,6 +160,7 @@ class WebEnginePage(QWebEnginePage):
return ignore return ignore
def javaScriptConfirm(self, url, js_msg): def javaScriptConfirm(self, url, js_msg):
"""Override javaScriptConfirm to use qutebrowser prompts."""
if self._is_shutting_down: if self._is_shutting_down:
return False return False
try: try:
@ -181,7 +183,7 @@ class WebEnginePage(QWebEnginePage):
# return super().javaScriptPrompt(url, js_msg, default) # return super().javaScriptPrompt(url, js_msg, default)
def javaScriptAlert(self, url, js_msg): def javaScriptAlert(self, url, js_msg):
"""Override javaScriptAlert to use the statusbar.""" """Override javaScriptAlert to use qutebrowser prompts."""
if self._is_shutting_down: if self._is_shutting_down:
return return
try: try:

View File

@ -29,9 +29,6 @@ class CertificateErrorWrapper(usertypes.AbstractCertificateErrorWrapper):
"""A wrapper over a QSslError.""" """A wrapper over a QSslError."""
def __init__(self, error):
self._error = error
def __str__(self): def __str__(self):
return self._error.errorString() return self._error.errorString()
@ -49,7 +46,7 @@ class CertificateErrorWrapper(usertypes.AbstractCertificateErrorWrapper):
self._error.error())) self._error.error()))
def __eq__(self, other): def __eq__(self, other):
return self._error == other._error return self._error == other._error # pylint: disable=protected-access
def is_overridable(self): def is_overridable(self):
return True return True

View File

@ -26,14 +26,13 @@ import html
from PyQt5.QtCore import (pyqtSlot, pyqtSignal, PYQT_VERSION, QCoreApplication, from PyQt5.QtCore import (pyqtSlot, pyqtSignal, PYQT_VERSION, QCoreApplication,
QUrl, QByteArray) QUrl, QByteArray)
from PyQt5.QtNetwork import (QNetworkAccessManager, QNetworkReply, QSslError, from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkReply, QSslSocket
QSslSocket)
from qutebrowser.config import config from qutebrowser.config import config
from qutebrowser.utils import (message, log, usertypes, utils, objreg, qtutils, from qutebrowser.utils import (message, log, usertypes, utils, objreg, qtutils,
urlutils, debug) urlutils)
from qutebrowser.browser import shared from qutebrowser.browser import shared
from qutebrowser.browser.webkit import webkittab, certificateerror from qutebrowser.browser.webkit import certificateerror
from qutebrowser.browser.webkit.network import (webkitqutescheme, networkreply, from qutebrowser.browser.webkit.network import (webkitqutescheme, networkreply,
filescheme) filescheme)

View File

@ -34,7 +34,7 @@ from PyQt5.QtPrintSupport import QPrinter
from qutebrowser.browser import browsertab from qutebrowser.browser import browsertab
from qutebrowser.browser.webkit import webview, tabhistory, webkitelem from qutebrowser.browser.webkit import webview, tabhistory, webkitelem
from qutebrowser.browser.webkit.network import proxy, webkitqutescheme from qutebrowser.browser.webkit.network import proxy, webkitqutescheme
from qutebrowser.utils import qtutils, objreg, usertypes, utils, log, debug from qutebrowser.utils import qtutils, objreg, usertypes, utils, log
def init(): def init():

View File

@ -95,7 +95,7 @@ class BrowserPage(QWebPage):
# See http://www.riverbankcomputing.com/pipermail/pyqt/2014-June/034385.html # See http://www.riverbankcomputing.com/pipermail/pyqt/2014-June/034385.html
def javaScriptPrompt(self, frame, js_msg, default): def javaScriptPrompt(self, frame, js_msg, default):
"""Override javaScriptPrompt to use the statusbar.""" """Override javaScriptPrompt to use qutebrowser prompts."""
if self._is_shutting_down: if self._is_shutting_down:
return (False, "") return (False, "")
try: try:
@ -434,7 +434,7 @@ class BrowserPage(QWebPage):
return handler(opt, out) return handler(opt, out)
def javaScriptAlert(self, frame, js_msg): def javaScriptAlert(self, frame, js_msg):
"""Override javaScriptAlert to use the statusbar.""" """Override javaScriptAlert to use qutebrowser prompts."""
if self._is_shutting_down: if self._is_shutting_down:
return return
try: try:

View File

@ -17,7 +17,6 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>. # along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
import pytest
import pytest_bdd as bdd import pytest_bdd as bdd
bdd.scenarios('prompts.feature') bdd.scenarios('prompts.feature')