Greasemonkey: move inject_userscripts into webenginesettings
This commit is contained in:
parent
edf737ff7d
commit
c1b912f567
@ -244,6 +244,39 @@ def _init_profiles():
|
||||
private_profile.setSpellCheckEnabled(True)
|
||||
|
||||
|
||||
def inject_userscripts():
|
||||
"""Register user javascript files with the global profiles."""
|
||||
# The greasemonkey metadata block support in qtwebengine only starts at 5.8
|
||||
# Otherwise have to handle injecting the scripts into the page at very
|
||||
# early load, probs same place in view as the enableJS check.
|
||||
if not qtutils.version_check('5.8'):
|
||||
return
|
||||
|
||||
# Since we are inserting scripts into profile.scripts they won't
|
||||
# just get replaced by new gm scripts like if we were injecting them
|
||||
# ourselves so we need to remove all gm scripts, while not removing
|
||||
# any other stuff that might have been added. Like the one for
|
||||
# stylsheets.
|
||||
# Could either use a different world for gm scripts, check for gm metadata
|
||||
# values (would mean no non-gm userscripts), or check the code for
|
||||
# _qute_script_id
|
||||
for profile in [default_profile, private_profile]:
|
||||
scripts = profile.scripts()
|
||||
for script in scripts.toList():
|
||||
if script.worldId() == QWebEngineScript.MainWorld:
|
||||
scripts.remove(script)
|
||||
|
||||
for profile in [default_profile, private_profile]:
|
||||
scripts = profile.scripts()
|
||||
greasemonkey = objreg.get('greasemonkey')
|
||||
for script in greasemonkey.all_scripts():
|
||||
new_script = QWebEngineScript()
|
||||
new_script.setWorldId(QWebEngineScript.MainWorld)
|
||||
new_script.setSourceCode(script.code())
|
||||
log.greasemonkey.debug('adding script: %s', new_script.name())
|
||||
scripts.insert(new_script)
|
||||
|
||||
|
||||
def init(args):
|
||||
"""Initialize the global QWebSettings."""
|
||||
if args.enable_webengine_inspector:
|
||||
|
@ -70,8 +70,8 @@ def init():
|
||||
objreg.register('webengine-download-manager', download_manager)
|
||||
|
||||
greasemonkey = objreg.get('greasemonkey')
|
||||
greasemonkey.scripts_reloaded.connect(inject_userscripts)
|
||||
inject_userscripts()
|
||||
greasemonkey.scripts_reloaded.connect(webenginesettings.inject_userscripts)
|
||||
webenginesettings.inject_userscripts()
|
||||
|
||||
|
||||
# Mapping worlds from usertypes.JsWorld to QWebEngineScript world IDs.
|
||||
@ -83,42 +83,6 @@ _JS_WORLD_MAP = {
|
||||
}
|
||||
|
||||
|
||||
def inject_userscripts():
|
||||
"""Register user javascript files with the global profiles."""
|
||||
# The greasemonkey metadata block support in qtwebengine only starts at 5.8
|
||||
# Otherwise have to handle injecting the scripts into the page at very
|
||||
# early load, probs same place in view as the enableJS check.
|
||||
if not qtutils.version_check('5.8'):
|
||||
return
|
||||
|
||||
# Since we are inserting scripts into profile.scripts they won't
|
||||
# just get replaced by new gm scripts like if we were injecting them
|
||||
# ourselves so we need to remove all gm scripts, while not removing
|
||||
# any other stuff that might have been added. Like the one for
|
||||
# stylsheets.
|
||||
# Could either use a different world for gm scripts, check for gm metadata
|
||||
# values (would mean no non-gm userscripts), or check the code for
|
||||
# _qute_script_id
|
||||
for profile in [webenginesettings.default_profile,
|
||||
webenginesettings.private_profile]:
|
||||
scripts = profile.scripts()
|
||||
for script in scripts.toList():
|
||||
if script.worldId() == QWebEngineScript.MainWorld:
|
||||
scripts.remove(script)
|
||||
|
||||
# Should we be adding to private profile too?
|
||||
for profile in [webenginesettings.default_profile,
|
||||
webenginesettings.private_profile]:
|
||||
scripts = profile.scripts()
|
||||
greasemonkey = objreg.get('greasemonkey')
|
||||
for script in greasemonkey.all_scripts():
|
||||
new_script = QWebEngineScript()
|
||||
new_script.setWorldId(QWebEngineScript.MainWorld)
|
||||
new_script.setSourceCode(script.code())
|
||||
log.greasemonkey.debug('adding script: %s', new_script.name)
|
||||
scripts.insert(new_script)
|
||||
|
||||
|
||||
class WebEngineAction(browsertab.AbstractAction):
|
||||
|
||||
"""QtWebEngine implementations related to web actions."""
|
||||
|
Loading…
Reference in New Issue
Block a user