diff --git a/TODO b/TODO index fb31fd6ff..6866092c1 100644 --- a/TODO +++ b/TODO @@ -32,7 +32,6 @@ history Minor features ============== -set useragent show current value in setting completions handle completion for aliases keybind should have completion for commands/arguments diff --git a/qutebrowser/browser/webpage.py b/qutebrowser/browser/webpage.py index 905f2fe35..621a39ad9 100644 --- a/qutebrowser/browser/webpage.py +++ b/qutebrowser/browser/webpage.py @@ -22,6 +22,7 @@ from PyQt5.QtNetwork import QNetworkReply from PyQt5.QtWebKitWidgets import QWebPage import qutebrowser.utils.url as urlutils +import qutebrowser.config.config as config from qutebrowser.network.networkmanager import NetworkManager from qutebrowser.utils.misc import read_file @@ -69,6 +70,14 @@ class BrowserPage(QWebPage): title=title, url=urlstr, error=info.errorString, icon='') return True + def userAgentForUrl(self, url): + """Override QWebPage::userAgentForUrl to customize the user agent.""" + ua = config.get('network', 'user-agent') + if not ua: + return super().userAgentForUrl(url) + else: + return ua + def supportsExtension(self, ext): """Override QWebPage::supportsExtension to provide error pages. diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index 60f8b4fd4..f612cb884 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -201,6 +201,10 @@ DATA = OrderedDict([ ('accept-language', SettingValue(types.String(), 'en-US,en'), "Value to send in the accept-language header."), + + ('user-agent', + SettingValue(types.String(), ''), + "User agent to send. Empty to send the default."), )), ('completion', sect.KeyValue(