From 9585b3c92526d8a893d525ab9e28a2d67f80c574 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 14 Aug 2014 14:01:44 +0200 Subject: [PATCH] Add some logging for content-disposition --- qutebrowser/browser/downloads.py | 4 ---- qutebrowser/utils/rfc6266.py | 13 +++++++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/qutebrowser/browser/downloads.py b/qutebrowser/browser/downloads.py index 9af04661b..aa129ce54 100644 --- a/qutebrowser/browser/downloads.py +++ b/qutebrowser/browser/downloads.py @@ -33,15 +33,11 @@ import qutebrowser.commands.utils as cmdutils import qutebrowser.utils.misc as utils from qutebrowser.utils.http import parse_content_disposition from qutebrowser.utils.log import downloads as logger -from qutebrowser.utils.log import fix_rfc2622 from qutebrowser.utils.usertypes import PromptMode, Question, Timer from qutebrowser.utils.qt import qt_ensure_valid from qutebrowser.commands.exceptions import CommandError -fix_rfc2622() - - class DownloadItem(QObject): """A single download currently running. diff --git a/qutebrowser/utils/rfc6266.py b/qutebrowser/utils/rfc6266.py index bfd4a3c91..535738724 100644 --- a/qutebrowser/utils/rfc6266.py +++ b/qutebrowser/utils/rfc6266.py @@ -19,13 +19,16 @@ """pyPEG parsing for the RFC 6266 (Content-Disposition) header. """ -import pypeg2 as peg - from collections import namedtuple import urllib.parse import string import re +import pypeg2 as peg + +from qutebrowser.utils.log import rfc6266 as logger + + class UniqueNamespace(peg.Namespace): @@ -298,6 +301,7 @@ def parse_headers(content_disposition): # filename parameter. But it does mean we occasionally give # less-than-certain values for some legacy senders. content_disposition = content_disposition.decode('iso-8859-1') + logger.debug("Parsing Content-Disposition: {}".format(content_disposition)) # Our parsing is relaxed in these regards: # - The grammar allows a final ';' in the header; # - We do LWS-folding, and possibly normalise other broken @@ -305,10 +309,11 @@ def parse_headers(content_disposition): # XXX Would prefer to accept only the quoted whitespace # case, rather than normalising everything. content_disposition = normalize_ws(content_disposition) - try: parsed = peg.parse(content_disposition, ContentDispositionValue) - except (SyntaxError, DuplicateParamError, InvalidISO8859Error): + except (SyntaxError, DuplicateParamError, InvalidISO8859Error) as e: + logger.warning("Error while parsing Content-Disposition: " + "{} - {}".format(e.__class__.__name__, e)) return ContentDisposition() else: return ContentDisposition(disposition=parsed.dtype,