aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormrmr19932015-04-28 15:00:01 +0100
committermrmr19932015-04-28 15:00:01 +0100
commitfe9933796baa9fd1c1cf717b9055a5ebcdc18c41 (patch)
treefd158a124db5a72c40d84984f9895893d4431468
parent96b7a256d007e7faee8eb23c41bf4a46ed99dabc (diff)
downloadvimium-fe9933796baa9fd1c1cf717b9055a5ebcdc18c41.tar.bz2
Load stylesheet via XHR to fix styles in UIComponent Shadow DOM
Shadow DOM doesn't support <link>s, so we have to load the stylesheet manually and inject it into a <style> element.
-rw-r--r--content_scripts/ui_component.coffee15
1 files changed, 10 insertions, 5 deletions
diff --git a/content_scripts/ui_component.coffee b/content_scripts/ui_component.coffee
index 64831794..21431bd7 100644
--- a/content_scripts/ui_component.coffee
+++ b/content_scripts/ui_component.coffee
@@ -5,11 +5,16 @@ class UIComponent
options: null
constructor: (iframeUrl, className, @handleMessage) ->
- styleSheet = document.createElement "link"
- extend styleSheet,
- rel: "stylesheet"
- type: "text/css"
- href: chrome.runtime.getURL "content_scripts/vimium.css"
+ styleSheet = document.createElement "style"
+ styleSheet.type = "text/css"
+ # Default to everything hidden while the stylesheet loads.
+ styleSheet.innerHTML = "* {display: none !important;}"
+ # Load stylesheet.
+ xhr = new XMLHttpRequest()
+ xhr.onload = (e) -> styleSheet.innerHTML = xhr.responseText
+ xhr.open "GET", chrome.runtime.getURL("content_scripts/vimium.css"), true
+ xhr.send()
+
@iframeElement = document.createElement "iframe"
extend @iframeElement,
className: className