From 50615a6f3ebb80cedf1807497a6cd73d12950cdb Mon Sep 17 00:00:00 2001 From: mrmr1993 Date: Fri, 29 Sep 2017 18:38:31 +0100 Subject: Inject custom user styles into all frames This fixes #2594. --- background_scripts/main.coffee | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee index 8afecd4f..8eb6e57d 100644 --- a/background_scripts/main.coffee +++ b/background_scripts/main.coffee @@ -263,10 +263,9 @@ selectTab = (direction, {count, tab}) -> Math.max 0, tabs.length - count chrome.tabs.update tabs[toSelect].id, active: true -chrome.tabs.onUpdated.addListener (tabId, changeInfo, tab) -> - return unless changeInfo.status == "loading" # Only do this once per URL change. +chrome.webNavigation.onCommitted.addListener ({tabId, frameId}) -> cssConf = - allFrames: true + frameId: frameId code: Settings.get("userDefinedLinkHintCss") runAt: "document_start" chrome.tabs.insertCSS tabId, cssConf, -> chrome.runtime.lastError -- cgit v1.2.3 From 7f45a5e40128aadf02fe598310d40fca850a8e1f Mon Sep 17 00:00:00 2001 From: mrmr1993 Date: Fri, 29 Sep 2017 19:01:39 +0100 Subject: Manually inject custom user CSS into our own frames/pages --- lib/dom_utils.coffee | 8 ++++++++ pages/help_dialog.coffee | 3 +++ pages/hud.coffee | 3 +++ pages/logging.coffee | 1 + pages/options.coffee | 1 + pages/vomnibar.coffee | 3 +++ 6 files changed, 19 insertions(+) diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index 65a14c34..32d402df 100644 --- a/lib/dom_utils.coffee +++ b/lib/dom_utils.coffee @@ -407,5 +407,13 @@ DomUtils = windowIsTooSmall: -> return window.innerWidth < 3 or window.innerHeight < 3 + # Inject user styles manually. This is only necessary for our chrome-extension:// pages and frames. + injectUserCss: -> + Settings.onLoaded -> + style = document.createElement "style" + style.type = "text/css" + style.textContent = Settings.get "userDefinedLinkHintCss" + document.head.appendChild style + root = exports ? window root.DomUtils = DomUtils diff --git a/pages/help_dialog.coffee b/pages/help_dialog.coffee index a0ad1af8..f36155e4 100644 --- a/pages/help_dialog.coffee +++ b/pages/help_dialog.coffee @@ -131,6 +131,9 @@ UIComponentServer.registerHandler (event) -> # Abandon any HUD which might be showing within the help dialog. HUD.abandon() +document.addEventListener "DOMContentLoaded", -> + DomUtils.injectUserCss() # Manually inject custom user styles. + root = exports ? window root.HelpDialog = HelpDialog root.isVimiumHelpDialog = true diff --git a/pages/hud.coffee b/pages/hud.coffee index ac7059ec..0d2ec2f7 100644 --- a/pages/hud.coffee +++ b/pages/hud.coffee @@ -12,6 +12,9 @@ setTextInInputElement = (inputElement, text) -> selection.removeAllRanges() selection.addRange range +document.addEventListener "DOMContentLoaded", -> + DomUtils.injectUserCss() # Manually inject custom user styles. + document.addEventListener "keydown", (event) -> inputElement = document.getElementById "hud-find-input" return unless inputElement? # Don't do anything if we're not in find mode. diff --git a/pages/logging.coffee b/pages/logging.coffee index 3ccef4ff..a437b442 100644 --- a/pages/logging.coffee +++ b/pages/logging.coffee @@ -1,6 +1,7 @@ $ = (id) -> document.getElementById id document.addEventListener "DOMContentLoaded", -> + DomUtils.injectUserCss() # Manually inject custom user styles. $("vimiumVersion").innerText = Utils.getCurrentVersion() chrome.storage.local.get "installDate", (items) -> diff --git a/pages/options.coffee b/pages/options.coffee index 19330271..035dd403 100644 --- a/pages/options.coffee +++ b/pages/options.coffee @@ -311,6 +311,7 @@ initPopupPage = -> # # Initialization. document.addEventListener "DOMContentLoaded", -> + DomUtils.injectUserCss() # Manually inject custom user styles. xhr = new XMLHttpRequest() xhr.open 'GET', chrome.extension.getURL('pages/exclusions.html'), true xhr.onreadystatechange = -> diff --git a/pages/vomnibar.coffee b/pages/vomnibar.coffee index 071604b7..8c790ca8 100644 --- a/pages/vomnibar.coffee +++ b/pages/vomnibar.coffee @@ -335,5 +335,8 @@ UIComponentServer.registerHandler (event) -> when "hidden" then Vomnibar.onHidden() when "activate" then Vomnibar.activate event.data +document.addEventListener "DOMContentLoaded", -> + DomUtils.injectUserCss() # Manually inject custom user styles. + root = exports ? window root.Vomnibar = Vomnibar -- cgit v1.2.3 From 55fde386c99bae9748212ef66fd57929ffd316a5 Mon Sep 17 00:00:00 2001 From: mrmr1993 Date: Fri, 29 Sep 2017 19:19:20 +0100 Subject: Add stub to fix unit tests --- tests/unit_tests/test_chrome_stubs.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/unit_tests/test_chrome_stubs.coffee b/tests/unit_tests/test_chrome_stubs.coffee index 53ca805d..44ec4f66 100644 --- a/tests/unit_tests/test_chrome_stubs.coffee +++ b/tests/unit_tests/test_chrome_stubs.coffee @@ -60,6 +60,8 @@ exports.chrome = addListener: () -> onReferenceFragmentUpdated: addListener: () -> + onCommitted: + addListener: () -> windows: onRemoved: -- cgit v1.2.3