diff options
Diffstat (limited to 'qutebrowser/browser/network/pac.py')
-rw-r--r-- | qutebrowser/browser/network/pac.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/qutebrowser/browser/network/pac.py b/qutebrowser/browser/network/pac.py index c372c6eea..8a67850f5 100644 --- a/qutebrowser/browser/network/pac.py +++ b/qutebrowser/browser/network/pac.py @@ -21,15 +21,16 @@ import sys import functools -from typing import Optional +from typing import Optional, cast +from qutebrowser.qt import machinery from qutebrowser.qt.core import QObject, pyqtSignal, pyqtSlot, QUrl from qutebrowser.qt.network import (QNetworkProxy, QNetworkRequest, QHostInfo, QNetworkReply, QNetworkAccessManager, QHostAddress) from qutebrowser.qt.qml import QJSEngine, QJSValue -from qutebrowser.utils import log, utils, qtutils, resources +from qutebrowser.utils import log, utils, qtutils, resources, urlutils class ParseProxyError(Exception): @@ -214,13 +215,20 @@ class PACResolver: """ qtutils.ensure_valid(query.url()) + string_flags: urlutils.URL_FLAGS_T if from_file: string_flags = QUrl.ComponentFormattingOption.PrettyDecoded else: - string_flags = QUrl.UrlFormattingOption.RemoveUserInfo # type: ignore[assignment] + string_flags = QUrl.UrlFormattingOption.RemoveUserInfo if query.url().scheme() == 'https': - string_flags |= QUrl.UrlFormattingOption.RemovePath # type: ignore[assignment] - string_flags |= QUrl.UrlFormattingOption.RemoveQuery # type: ignore[assignment] + https_opts = ( + QUrl.UrlFormattingOption.RemovePath | + QUrl.UrlFormattingOption.RemoveQuery) + + if machinery.IS_QT5: + string_flags |= cast(QUrl.UrlFormattingOption, https_opts) + else: + string_flags |= https_opts result = self._resolver.call([query.url().toString(string_flags), query.peerHostName()]) |