Add referer-header settng, #712
This commit is contained in:
parent
e780efb3d9
commit
78e159cb27
@ -22,7 +22,7 @@
|
|||||||
import collections
|
import collections
|
||||||
|
|
||||||
from PyQt5.QtCore import (pyqtSlot, pyqtSignal, PYQT_VERSION, QCoreApplication,
|
from PyQt5.QtCore import (pyqtSlot, pyqtSignal, PYQT_VERSION, QCoreApplication,
|
||||||
QUrl)
|
QUrl, QByteArray)
|
||||||
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkReply, QSslError
|
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkReply, QSslError
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -358,6 +358,23 @@ class NetworkManager(QNetworkAccessManager):
|
|||||||
dnt = '0'.encode('ascii')
|
dnt = '0'.encode('ascii')
|
||||||
req.setRawHeader('DNT'.encode('ascii'), dnt)
|
req.setRawHeader('DNT'.encode('ascii'), dnt)
|
||||||
req.setRawHeader('X-Do-Not-Track'.encode('ascii'), dnt)
|
req.setRawHeader('X-Do-Not-Track'.encode('ascii'), dnt)
|
||||||
|
|
||||||
|
def same_domain():
|
||||||
|
tabbed_browser = objreg.get('tabbed-browser', scope='window', window=self._win_id)
|
||||||
|
view = tabbed_browser.currentWidget()
|
||||||
|
print(req.url().host() == view.url().host(), repr(view.url().host()), repr(req.url().host()))
|
||||||
|
# TODO: We probably want to allow headers if we're on test.com and
|
||||||
|
# doing a request to www.test.com? Or maybe a new settings value for
|
||||||
|
# this?
|
||||||
|
return req.url().host() == view.url().host()
|
||||||
|
|
||||||
|
if (config.get('network', 'referer-header') == 'never' or
|
||||||
|
(config.get('network', 'referer-header') == 'same-domain' and
|
||||||
|
same_domain())):
|
||||||
|
# Note: using ''.encode('ascii') sends a header with no value,
|
||||||
|
# instead of no header at all
|
||||||
|
req.setRawHeader('Referer'.encode('ascii'), QByteArray())
|
||||||
|
|
||||||
accept_language = config.get('network', 'accept-language')
|
accept_language = config.get('network', 'accept-language')
|
||||||
if accept_language is not None:
|
if accept_language is not None:
|
||||||
req.setRawHeader('Accept-Language'.encode('ascii'),
|
req.setRawHeader('Accept-Language'.encode('ascii'),
|
||||||
|
@ -321,6 +321,10 @@ def data(readonly=False):
|
|||||||
SettingValue(typ.String(none_ok=True), 'en-US,en'),
|
SettingValue(typ.String(none_ok=True), 'en-US,en'),
|
||||||
"Value to send in the `accept-language` header."),
|
"Value to send in the `accept-language` header."),
|
||||||
|
|
||||||
|
('referer-header',
|
||||||
|
SettingValue(typ.Referer(), 'same-domain'),
|
||||||
|
"Send the Referer header"),
|
||||||
|
|
||||||
('user-agent',
|
('user-agent',
|
||||||
SettingValue(typ.UserAgent(none_ok=True), ''),
|
SettingValue(typ.UserAgent(none_ok=True), ''),
|
||||||
"User agent to send. Empty to send the default."),
|
"User agent to send. Empty to send the default."),
|
||||||
|
@ -1459,6 +1459,19 @@ class DownloadPathSuggestion(BaseType):
|
|||||||
('both', "Show download path and filename."))
|
('both', "Show download path and filename."))
|
||||||
|
|
||||||
|
|
||||||
|
class Referer(BaseType):
|
||||||
|
|
||||||
|
"""Send the Referer header."""
|
||||||
|
|
||||||
|
valid_values = ValidValues(('always', "Always send."),
|
||||||
|
('never', "Never send; this is not recommended,"
|
||||||
|
" as some sites may break."),
|
||||||
|
('same-domain', "Only send for the same domain,"
|
||||||
|
" this will still protect your privacy, but"
|
||||||
|
" shouldn't break any sites."))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class UserAgent(BaseType):
|
class UserAgent(BaseType):
|
||||||
|
|
||||||
"""The user agent to use."""
|
"""The user agent to use."""
|
||||||
|
Loading…
Reference in New Issue
Block a user