From 8556d06ae7c9fd467356d78848e1fa50d5423323 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 1 May 2014 17:54:50 +0200 Subject: [PATCH] Add do-not-track and accept-language headers --- qutebrowser/config/configdata.py | 11 +++++++++++ qutebrowser/network/networkmanager.py | 9 +++++++++ 2 files changed, 20 insertions(+) diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index 2ad484611..4ebf5ec4d 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -56,6 +56,7 @@ FIRST_COMMENT = """ SECTION_DESC = { 'general': "General/misc. options", 'input': "Options related to input modes.", + 'network': "Settings related to the network.", 'completion': "Options related to completion and command history .", 'tabbar': "Configuration of the tab bar.", 'webkit': "Webkit settings.", @@ -187,6 +188,16 @@ DATA = OrderedDict([ "Use {} for the filename. Gets split via shutils."), )), + ('network', sect.KeyValue( + ('do-not-track', + SettingValue(types.Bool(), 'true'), + "Value to send in the DNT header."), + + ('accept-language', + SettingValue(types.String(), 'en-US,en'), + "Value to send in the accept-language header."), + )), + ('completion', sect.KeyValue( ('show', SettingValue(types.Bool(), 'true'), diff --git a/qutebrowser/network/networkmanager.py b/qutebrowser/network/networkmanager.py index b17309384..d041c7f78 100644 --- a/qutebrowser/network/networkmanager.py +++ b/qutebrowser/network/networkmanager.py @@ -19,6 +19,7 @@ from PyQt5.QtNetwork import QNetworkAccessManager +import qutebrowser.config.config as config from qutebrowser.network.qutescheme import QuteSchemeHandler @@ -63,6 +64,14 @@ class NetworkManager(QNetworkAccessManager): reply = self._scheme_handlers[scheme].createRequest( op, req, outgoing_data) else: + if config.get('network', 'do-not-track'): + dnt = '1'.encode('ascii') + else: + dnt = '0'.encode('ascii') + req.setRawHeader('DNT'.encode('ascii'), dnt) + req.setRawHeader('X-Do-Not-Track'.encode('ascii'), dnt) + req.setRawHeader('Accept-Language'.encode('ascii'), + config.get('network', 'accept-language')) reply = super().createRequest(op, req, outgoing_data) self._requests[id(reply)] = reply reply.destroyed.connect(lambda obj: self._requests.pop(id(obj)))