aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts
diff options
context:
space:
mode:
authormrmr19932015-09-18 18:45:41 +0100
committermrmr19932015-09-18 18:45:41 +0100
commit2c6d67c05b6ef57aabda288a164dd2885894ae89 (patch)
treea42d82e20c4a527e145ddad2137cfdd46763ba7f /content_scripts
parent37ba00af0e89641d0c54c19968c8986719eecde1 (diff)
downloadvimium-2c6d67c05b6ef57aabda288a164dd2885894ae89.tar.bz2
Load UIComponent stylesheet via XMLHttpRequest, use background as needed
Diffstat (limited to 'content_scripts')
-rw-r--r--content_scripts/ui_component.coffee26
1 files changed, 22 insertions, 4 deletions
diff --git a/content_scripts/ui_component.coffee b/content_scripts/ui_component.coffee
index 2348d00b..2218c3c7 100644
--- a/content_scripts/ui_component.coffee
+++ b/content_scripts/ui_component.coffee
@@ -4,15 +4,16 @@ class UIComponent
showing: null
options: null
shadowDOM: null
+ styleSheetGetter: null
constructor: (iframeUrl, className, @handleMessage) ->
styleSheet = DomUtils.createElement "style"
styleSheet.type = "text/css"
# Default to everything hidden while the stylesheet loads.
- styleSheet.innerHTML = """
- @import url("#{chrome.runtime.getURL("content_scripts/vimium.css")}");
- iframe {display: none;}
- """
+ styleSheet.innerHTML = "iframe {display: none;}"
+
+ UIComponent::styleSheetGetter ?= new AsyncDataFetcher @fetchStyles
+ @styleSheetGetter.use (styles) -> styleSheet.innerHTML = styles
@iframeElement = DomUtils.createElement "iframe"
extend @iframeElement,
@@ -115,5 +116,22 @@ class UIComponent
window.removeEventListener "focus", handler
refocusSourceFrame()
+ fetchStyles: (callback) ->
+ stylesheetRequest = new XMLHttpRequest()
+
+ stylesheetRequest.onload = ->
+ return stylesheetRequest.onerror() unless stylesheetRequest.status == 200
+ callback stylesheetRequest.responseText
+
+ stylesheetRequest.onerror = ->
+ chrome.runtime.sendMessage
+ handler: "fetchFileContents"
+ fileName: "content_scripts/vimium.css"
+ , callback
+
+ stylesheetRequest.open "GET", (chrome.runtime.getURL "content_scripts/vimium.css"), true
+ stylesheetRequest.send()
+
+
root = exports ? window
root.UIComponent = UIComponent