diff options
author | Florian Bruhin <me@the-compiler.org> | 2019-09-13 15:05:02 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2019-09-13 17:02:22 +0200 |
commit | eb706625285ebc7674aa73001681122f480eea1f (patch) | |
tree | d98848311167fba4811fb86111abe8a16bd7bbe0 | |
parent | 0d1d6d19351b6004325e58da358e39e250a450d0 (diff) | |
download | qutebrowser-eb706625285ebc7674aa73001681122f480eea1f.tar.gz qutebrowser-eb706625285ebc7674aa73001681122f480eea1f.zip |
Add objects.debug_flags
This removes some objreg.get('args'), see #640
-rw-r--r-- | qutebrowser/app.py | 3 | ||||
-rw-r--r-- | qutebrowser/browser/browsertab.py | 3 | ||||
-rw-r--r-- | qutebrowser/browser/history.py | 2 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/interceptor.py | 7 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 8 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/webview.py | 6 | ||||
-rw-r--r-- | qutebrowser/browser/webkit/network/networkmanager.py | 4 | ||||
-rw-r--r-- | qutebrowser/config/configinit.py | 1 | ||||
-rw-r--r-- | qutebrowser/misc/crashsignal.py | 16 | ||||
-rw-r--r-- | qutebrowser/misc/objects.py | 1 | ||||
-rw-r--r-- | qutebrowser/misc/utilcmds.py | 6 | ||||
-rw-r--r-- | tests/end2end/features/test_history_bdd.py | 4 | ||||
-rw-r--r-- | tests/end2end/fixtures/quteprocess.py | 7 | ||||
-rw-r--r-- | tests/unit/browser/test_history.py | 7 | ||||
-rw-r--r-- | tests/unit/browser/test_qutescheme.py | 1 | ||||
-rw-r--r-- | tests/unit/completion/test_models.py | 6 |
16 files changed, 35 insertions, 47 deletions
diff --git a/qutebrowser/app.py b/qutebrowser/app.py index eb468d6d1..cf35f918f 100644 --- a/qutebrowser/app.py +++ b/qutebrowser/app.py @@ -829,7 +829,6 @@ class Application(QApplication): log.init.debug("Initializing application...") - self._args = args objreg.register('args', args) objreg.register('app', self) @@ -864,7 +863,7 @@ class Application(QApplication): def exit(self, status): """Extend QApplication::exit to log the event.""" log.destroy.debug("Now calling QApplication::exit.") - if 'debug-exit' in self._args.debug_flags: + if 'debug-exit' in objects.debug_flags: if hunter is None: print("Not logging late shutdown because hunter could not be " "imported!", file=sys.stderr) diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py index 5178fa8af..10f430e34 100644 --- a/qutebrowser/browser/browsertab.py +++ b/qutebrowser/browser/browsertab.py @@ -528,8 +528,7 @@ class AbstractScroller(QObject): super().__init__(parent) self._tab = tab self._widget = None # type: typing.Optional[QWidget] - args = objreg.get('args', None) - if args is not None and 'log-scroll-pos' in args.debug_flags: + if 'log-scroll-pos' in objects.debug_flags: self.perc_changed.connect(self._log_scroll_pos_change) @pyqtSlot() diff --git a/qutebrowser/browser/history.py b/qutebrowser/browser/history.py index d49000d29..3cdce4853 100644 --- a/qutebrowser/browser/history.py +++ b/qutebrowser/browser/history.py @@ -328,7 +328,7 @@ class WebHistory(sql.SqlTable): log.misc.warning("Ignoring invalid URL being added to history") return - if 'no-sql-history' in objreg.get('args').debug_flags: + if 'no-sql-history' in objects.debug_flags: return atime = int(atime) if (atime is not None) else int(time.time()) diff --git a/qutebrowser/browser/webengine/interceptor.py b/qutebrowser/browser/webengine/interceptor.py index 0729188b7..47edabda8 100644 --- a/qutebrowser/browser/webengine/interceptor.py +++ b/qutebrowser/browser/webengine/interceptor.py @@ -29,6 +29,7 @@ from qutebrowser.config import config from qutebrowser.browser import shared from qutebrowser.utils import utils, log, debug, qtutils from qutebrowser.extensions import interceptors +from qutebrowser.misc import objects @attr.s @@ -106,10 +107,6 @@ class RequestInterceptor(QWebEngineUrlRequestInterceptor): interceptors.ResourceType.unknown, } - def __init__(self, args, parent=None): - super().__init__(parent) - self._args = args - def install(self, profile): """Install the interceptor on the given QWebEngineProfile.""" try: @@ -136,7 +133,7 @@ class RequestInterceptor(QWebEngineUrlRequestInterceptor): Args: info: QWebEngineUrlRequestInfo &info """ - if 'log-requests' in self._args.debug_flags: + if 'log-requests' in objects.debug_flags: resource_type = debug.qenum_key(QWebEngineUrlRequestInfo, info.resourceType()) navigation_type = debug.qenum_key(QWebEngineUrlRequestInfo, diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index cee16db9f..fc11b75a5 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -36,7 +36,7 @@ from qutebrowser.browser.webengine import (webview, webengineelem, tabhistory, interceptor, webenginequtescheme, cookies, webenginedownloads, webenginesettings, certificateerror) -from qutebrowser.misc import miscwidgets +from qutebrowser.misc import miscwidgets, objects from qutebrowser.utils import (usertypes, qtutils, log, javascript, utils, message, objreg, jinja, debug) from qutebrowser.qt import sip @@ -60,8 +60,7 @@ def init(): _qute_scheme_handler.install(webenginesettings.private_profile) log.init.debug("Initializing request interceptor...") - args = objreg.get('args') - req_interceptor = interceptor.RequestInterceptor(args=args, parent=app) + req_interceptor = interceptor.RequestInterceptor(parent=app) req_interceptor.install(webenginesettings.default_profile) if webenginesettings.private_profile: req_interceptor.install(webenginesettings.private_profile) @@ -419,7 +418,6 @@ class WebEngineScroller(browsertab.AbstractScroller): def __init__(self, tab, parent=None): super().__init__(tab, parent) - self._args = objreg.get('args') self._pos_perc = (0, 0) self._pos_px = QPoint() self._at_bottom = False @@ -477,7 +475,7 @@ class WebEngineScroller(browsertab.AbstractScroller): self._at_bottom = math.ceil(pos.y()) >= scrollable_y if (self._pos_perc != (perc_x, perc_y) or - 'no-scroll-filtering' in self._args.debug_flags): + 'no-scroll-filtering' in objects.debug_flags): self._pos_perc = perc_x, perc_y self.perc_changed.emit(*self._pos_perc) diff --git a/qutebrowser/browser/webengine/webview.py b/qutebrowser/browser/webengine/webview.py index f71f11087..a9be81ab1 100644 --- a/qutebrowser/browser/webengine/webview.py +++ b/qutebrowser/browser/webengine/webview.py @@ -27,8 +27,8 @@ from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage from qutebrowser.browser import shared from qutebrowser.browser.webengine import webenginesettings, certificateerror from qutebrowser.config import config -from qutebrowser.utils import log, debug, usertypes, objreg, qtutils -from qutebrowser.misc import miscwidgets +from qutebrowser.utils import log, debug, usertypes, qtutils +from qutebrowser.misc import miscwidgets, objects from qutebrowser.qt import sip @@ -68,7 +68,7 @@ class WebEngineView(QWebEngineView): This got introduced in Qt 5.11.0 and fixed in 5.12.0. """ - if 'lost-focusproxy' not in objreg.get('args').debug_flags: + if 'lost-focusproxy' not in objects.debug_flags: proxy = self.focusProxy() if proxy is not None: return proxy diff --git a/qutebrowser/browser/webkit/network/networkmanager.py b/qutebrowser/browser/webkit/network/networkmanager.py index e4c8da66c..46abd5cf2 100644 --- a/qutebrowser/browser/webkit/network/networkmanager.py +++ b/qutebrowser/browser/webkit/network/networkmanager.py @@ -36,6 +36,7 @@ from qutebrowser.extensions import interceptors from qutebrowser.browser.webkit import certificateerror from qutebrowser.browser.webkit.network import (webkitqutescheme, networkreply, filescheme) +from qutebrowser.misc import objects if typing.TYPE_CHECKING: # pylint: disable=unused-import,useless-suppression @@ -154,7 +155,6 @@ class NetworkManager(QNetworkAccessManager): super().__init__(parent) log.init.debug("NetworkManager init done") self.adopted_downloads = 0 - self._args = objreg.get('args') self._win_id = win_id self._tab_id = tab_id self._private = private @@ -412,7 +412,7 @@ class NetworkManager(QNetworkAccessManager): req, HOSTBLOCK_ERROR_STRING, QNetworkReply.ContentAccessDenied, self) - if 'log-requests' in self._args.debug_flags: + if 'log-requests' in objects.debug_flags: operation = debug.qenum_key(QNetworkAccessManager, op) operation = operation.replace('Operation', '').upper() log.webview.debug("{} {}, first-party {}".format( diff --git a/qutebrowser/config/configinit.py b/qutebrowser/config/configinit.py index 9dc15d6e9..74c07e3ab 100644 --- a/qutebrowser/config/configinit.py +++ b/qutebrowser/config/configinit.py @@ -80,6 +80,7 @@ def early_init(args: argparse.Namespace) -> None: message.error("set: {} - {}".format(e.__class__.__name__, e)) objects.backend = get_backend(args) + objects.debug_flags = set(args.debug_flags) configtypes.Font.monospace_fonts = config.val.fonts.monospace config.instance.changed.connect(_update_monospace_fonts) diff --git a/qutebrowser/misc/crashsignal.py b/qutebrowser/misc/crashsignal.py index 8dae7cfb5..286a4c339 100644 --- a/qutebrowser/misc/crashsignal.py +++ b/qutebrowser/misc/crashsignal.py @@ -38,7 +38,7 @@ from PyQt5.QtCore import (pyqtSlot, qInstallMessageHandler, QObject, QSocketNotifier, QTimer, QUrl) from qutebrowser.api import cmdutils -from qutebrowser.misc import earlyinit, crashdialog, ipc +from qutebrowser.misc import earlyinit, crashdialog, ipc, objects from qutebrowser.utils import usertypes, standarddir, log, objreg, debug, utils @@ -157,9 +157,9 @@ class CrashHandler(QObject): """Report a bug in qutebrowser.""" pages = self._recover_pages() cmd_history = objreg.get('command-history')[-5:] - objects = debug.get_all_objects() + all_objects = debug.get_all_objects() self._crash_dialog = crashdialog.ReportDialog(pages, cmd_history, - objects) + all_objects) self._crash_dialog.show() def destroy_crashlogfile(self): @@ -198,11 +198,11 @@ class CrashHandler(QObject): cmd_history = [] try: - objects = debug.get_all_objects() + all_objects = debug.get_all_objects() except Exception: log.destroy.exception("Error while getting objects") - objects = "" - return ExceptionInfo(pages, cmd_history, objects) + all_objects = "" + return ExceptionInfo(pages, cmd_history, all_objects) def exception_hook(self, exctype, excvalue, tb): """Handle uncaught python exceptions. @@ -222,10 +222,10 @@ class CrashHandler(QObject): is_ignored_exception = (exctype is bdb.BdbQuit or not issubclass(exctype, Exception)) - if 'pdb-postmortem' in self._args.debug_flags: + if 'pdb-postmortem' in objects.debug_flags: pdb.post_mortem(tb) - if is_ignored_exception or 'pdb-postmortem' in self._args.debug_flags: + if is_ignored_exception or 'pdb-postmortem' in objects.debug_flags: # pdb exit, KeyboardInterrupt, ... sys.exit(usertypes.Exit.exception) diff --git a/qutebrowser/misc/objects.py b/qutebrowser/misc/objects.py index b903d8e5d..e2885ca22 100644 --- a/qutebrowser/misc/objects.py +++ b/qutebrowser/misc/objects.py @@ -39,3 +39,4 @@ class NoBackend: backend = NoBackend() # type: typing.Union[usertypes.Backend, NoBackend] commands = {} # type: typing.Dict[str, command.Command] +debug_flags = set() # type: typing.Set[str] diff --git a/qutebrowser/misc/utilcmds.py b/qutebrowser/misc/utilcmds.py index a76826d80..93cf20be8 100644 --- a/qutebrowser/misc/utilcmds.py +++ b/qutebrowser/misc/utilcmds.py @@ -19,19 +19,21 @@ """Misc. utility commands exposed to the user.""" +# QApplication and objects are imported so they're usable in :debug-pyeval + import functools import os import traceback from PyQt5.QtCore import QUrl -# so it's available for :debug-pyeval from PyQt5.QtWidgets import QApplication # pylint: disable=unused-import from qutebrowser.browser import qutescheme from qutebrowser.utils import log, objreg, usertypes, message, debug, utils from qutebrowser.commands import runners from qutebrowser.api import cmdutils -from qutebrowser.misc import consolewidget, debugcachestats +from qutebrowser.misc import ( # pylint: disable=unused-import + consolewidget, debugcachestats, objects) from qutebrowser.utils.version import pastebin_version from qutebrowser.qt import sip diff --git a/tests/end2end/features/test_history_bdd.py b/tests/end2end/features/test_history_bdd.py index 6b0265cd6..44f64991e 100644 --- a/tests/end2end/features/test_history_bdd.py +++ b/tests/end2end/features/test_history_bdd.py @@ -30,8 +30,8 @@ bdd.scenarios('history.feature') @pytest.fixture(autouse=True) def turn_on_sql_history(quteproc): """Make sure SQL writing is enabled for tests in this module.""" - quteproc.send_cmd(":debug-pyeval objreg.get('args')." - "debug_flags.remove('no-sql-history')") + cmd = ":debug-pyeval objects.debug_flags.remove('no-sql-history')" + quteproc.send_cmd(cmd) quteproc.wait_for_load_finished_url('qute://pyeval') diff --git a/tests/end2end/fixtures/quteprocess.py b/tests/end2end/fixtures/quteprocess.py index 15d20ec69..c0a00624a 100644 --- a/tests/end2end/fixtures/quteprocess.py +++ b/tests/end2end/fixtures/quteprocess.py @@ -874,11 +874,10 @@ class QuteProc(testprocess.Process): def turn_on_scroll_logging(self, no_scroll_filtering=False): """Make sure all scrolling changes are logged.""" + cmd = ":debug-pyeval -q objects.debug_flags.add('{}')" if no_scroll_filtering: - self.send_cmd(":debug-pyeval -q objreg.get('args')." - "debug_flags.append('no-scroll-filtering')") - self.send_cmd(":debug-pyeval -q objreg.get('args')." - "debug_flags.append('log-scroll-pos')") + self.send_cmd(cmd.format('no-scroll-filtering')) + self.send_cmd(cmd.format('log-scroll-pos')) class YamlLoader(yaml.SafeLoader): diff --git a/tests/unit/browser/test_history.py b/tests/unit/browser/test_history.py index 297fd4c2d..87984f1a5 100644 --- a/tests/unit/browser/test_history.py +++ b/tests/unit/browser/test_history.py @@ -27,13 +27,12 @@ from PyQt5.QtCore import QUrl from qutebrowser.browser import history from qutebrowser.utils import objreg, urlutils, usertypes from qutebrowser.api import cmdutils -from qutebrowser.misc import sql +from qutebrowser.misc import sql, objects @pytest.fixture(autouse=True) def prerequisites(config_stub, fake_save_manager, init_sql, fake_args): """Make sure everything is ready to initialize a WebHistory.""" - fake_args.debug_flags = [] config_stub.data = {'general': {'private-browsing': False}} @@ -171,8 +170,8 @@ class TestAdd: expected = [(completion_url, title, atime)] assert list(web_history.completion) == expected - def test_no_sql_web_history(self, web_history, fake_args): - fake_args.debug_flags = 'no-sql-history' + def test_no_sql_web_history(self, web_history, monkeypatch): + monkeypatch.setattr(objects, 'debug_flags', {'no-sql-history'}) web_history.add_url(QUrl('https://www.example.com/'), atime=12346, title='Hello World', redirect=False) assert not list(web_history) diff --git a/tests/unit/browser/test_qutescheme.py b/tests/unit/browser/test_qutescheme.py index 0be63fa62..932c394a4 100644 --- a/tests/unit/browser/test_qutescheme.py +++ b/tests/unit/browser/test_qutescheme.py @@ -101,7 +101,6 @@ class TestHistoryHandler: @pytest.fixture(autouse=True) def fake_history(self, web_history, fake_args, entries): """Create fake history.""" - fake_args.debug_flags = [] for item in entries: web_history.add_url(**item) diff --git a/tests/unit/completion/test_models.py b/tests/unit/completion/test_models.py index 24e53648e..3d3ca0bf3 100644 --- a/tests/unit/completion/test_models.py +++ b/tests/unit/completion/test_models.py @@ -430,12 +430,6 @@ def test_bookmark_completion_delete(qtmodeltester, bookmarks, row, removed): assert before.difference(after) == {removed} -@pytest.fixture(autouse=True) -def url_args(fake_args): - """Prepare arguments needed to test the URL completion.""" - fake_args.debug_flags = [] - - def test_url_completion(qtmodeltester, config_stub, web_history_populated, quickmarks, bookmarks, info): """Test the results of url completion. |