parent
fd27346504
commit
71e4e1788a
|
|
@ -39,6 +39,9 @@ from qutebrowser.browser import downloads
|
|||
from qutebrowser.misc import objects
|
||||
|
||||
|
||||
gm_manager = typing.cast('GreasemonkeyManager', None)
|
||||
|
||||
|
||||
def _scripts_dir():
|
||||
"""Get the directory of the scripts."""
|
||||
return os.path.join(standarddir.data(), 'greasemonkey')
|
||||
|
|
@ -263,9 +266,7 @@ class GreasemonkeyManager(QObject):
|
|||
|
||||
self.load_scripts()
|
||||
|
||||
@cmdutils.register(name='greasemonkey-reload',
|
||||
instance='greasemonkey')
|
||||
def load_scripts(self, force=False):
|
||||
def load_scripts(self, *, force=False):
|
||||
"""Re-read Greasemonkey scripts from disk.
|
||||
|
||||
The scripts are read from a 'greasemonkey' subdirectory in
|
||||
|
|
@ -423,10 +424,24 @@ class GreasemonkeyManager(QObject):
|
|||
return self._run_start + self._run_end + self._run_idle
|
||||
|
||||
|
||||
@cmdutils.register()
|
||||
def greasemonkey_reload(force=False):
|
||||
"""Re-read Greasemonkey scripts from disk.
|
||||
|
||||
The scripts are read from a 'greasemonkey' subdirectory in
|
||||
qutebrowser's data directory (see `:version`).
|
||||
|
||||
Args:
|
||||
force: For any scripts that have required dependencies,
|
||||
re-download them.
|
||||
"""
|
||||
gm_manager.load_scripts(force=force)
|
||||
|
||||
|
||||
def init():
|
||||
"""Initialize Greasemonkey support."""
|
||||
global gm_manager
|
||||
gm_manager = GreasemonkeyManager()
|
||||
objreg.register('greasemonkey', gm_manager)
|
||||
|
||||
try:
|
||||
os.mkdir(_scripts_dir())
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineScript
|
|||
|
||||
from qutebrowser.config import configdata, config
|
||||
from qutebrowser.browser import (browsertab, eventfilter, shared, webelem,
|
||||
history)
|
||||
history, greasemonkey)
|
||||
from qutebrowser.browser.webengine import (webview, webengineelem, tabhistory,
|
||||
interceptor, webenginequtescheme,
|
||||
cookies, webenginedownloads,
|
||||
|
|
@ -899,7 +899,7 @@ class _WebEngineScripts(QObject):
|
|||
super().__init__(parent)
|
||||
self._tab = tab
|
||||
self._widget = typing.cast(QWidget, None)
|
||||
self._greasemonkey = objreg.get('greasemonkey')
|
||||
self._greasemonkey = greasemonkey.gm_manager
|
||||
|
||||
def connect_signals(self):
|
||||
"""Connect signals to our private slots."""
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ from PyQt5.QtPrintSupport import QPrintDialog
|
|||
from PyQt5.QtWebKitWidgets import QWebPage, QWebFrame
|
||||
|
||||
from qutebrowser.config import config
|
||||
from qutebrowser.browser import pdfjs, shared, downloads
|
||||
from qutebrowser.browser import pdfjs, shared, downloads, greasemonkey
|
||||
from qutebrowser.browser.webkit import http
|
||||
from qutebrowser.browser.webkit.network import networkmanager
|
||||
from qutebrowser.utils import message, usertypes, log, jinja, objreg
|
||||
|
|
@ -305,8 +305,7 @@ class BrowserPage(QWebPage):
|
|||
log.greasemonkey.debug("_inject_userjs called for {} ({})"
|
||||
.format(frame, url.toDisplayString()))
|
||||
|
||||
greasemonkey = objreg.get('greasemonkey')
|
||||
scripts = greasemonkey.scripts_for(url)
|
||||
scripts = greasemonkey.gm_manager.scripts_for(url)
|
||||
# QtWebKit has trouble providing us with signals representing
|
||||
# page load progress at reasonable times, so we just load all
|
||||
# scripts on the same event.
|
||||
|
|
|
|||
|
|
@ -158,11 +158,9 @@ def fake_web_tab(stubs, tab_registry, mode_manager, qapp):
|
|||
|
||||
|
||||
@pytest.fixture
|
||||
def greasemonkey_manager(data_tmpdir):
|
||||
def greasemonkey_manager(monkeypatch, data_tmpdir):
|
||||
gm_manager = greasemonkey.GreasemonkeyManager()
|
||||
objreg.register('greasemonkey', gm_manager)
|
||||
yield
|
||||
objreg.delete('greasemonkey')
|
||||
monkeypatch.setattr(greasemonkey, 'gm_manager', gm_manager)
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
||||
|
|
|
|||
Loading…
Reference in New Issue