aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/ui_component.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'content_scripts/ui_component.coffee')
-rw-r--r--content_scripts/ui_component.coffee12
1 files changed, 12 insertions, 0 deletions
diff --git a/content_scripts/ui_component.coffee b/content_scripts/ui_component.coffee
index ba141b23..e4cfc293 100644
--- a/content_scripts/ui_component.coffee
+++ b/content_scripts/ui_component.coffee
@@ -7,6 +7,18 @@ class UIComponent
constructor: (iframeUrl, className, @handleMessage) ->
styleSheet = document.createElement "style"
+
+ unless styleSheet.style
+ # If this is an XML document, nothing we do here works:
+ # * <style> elements show their contents inline,
+ # * <iframe> elements don't load any content,
+ # * document.createElement generates elements that have style == null and ignore CSS.
+ # If this is the case we don't want to pollute the DOM to no or negative effect. So we bail
+ # immediately, and disable all externally-called methods.
+ @postMessage = @activate = @show = @hide = ->
+ console.log "This vimium feature is disabled because it is incompatible with this page."
+ return
+
styleSheet.type = "text/css"
# Default to everything hidden while the stylesheet loads.
styleSheet.innerHTML = "@import url(\"#{chrome.runtime.getURL("content_scripts/vimium.css")}\");"