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)
|
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):
|
def init(args):
|
||||||
"""Initialize the global QWebSettings."""
|
"""Initialize the global QWebSettings."""
|
||||||
if args.enable_webengine_inspector:
|
if args.enable_webengine_inspector:
|
||||||
|
@ -70,8 +70,8 @@ def init():
|
|||||||
objreg.register('webengine-download-manager', download_manager)
|
objreg.register('webengine-download-manager', download_manager)
|
||||||
|
|
||||||
greasemonkey = objreg.get('greasemonkey')
|
greasemonkey = objreg.get('greasemonkey')
|
||||||
greasemonkey.scripts_reloaded.connect(inject_userscripts)
|
greasemonkey.scripts_reloaded.connect(webenginesettings.inject_userscripts)
|
||||||
inject_userscripts()
|
webenginesettings.inject_userscripts()
|
||||||
|
|
||||||
|
|
||||||
# Mapping worlds from usertypes.JsWorld to QWebEngineScript world IDs.
|
# 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):
|
class WebEngineAction(browsertab.AbstractAction):
|
||||||
|
|
||||||
"""QtWebEngine implementations related to web actions."""
|
"""QtWebEngine implementations related to web actions."""
|
||||||
|
Loading…
Reference in New Issue
Block a user