aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/dom_utils.coffee8
-rw-r--r--lib/utils.coffee12
2 files changed, 14 insertions, 6 deletions
diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee
index a0ac0bd3..8db71001 100644
--- a/lib/dom_utils.coffee
+++ b/lib/dom_utils.coffee
@@ -33,13 +33,17 @@ DomUtils =
makeXPath: (elementArray) ->
xpath = []
for element in elementArray
- xpath.push("//" + element, "//xhtml:" + element)
+ xpath.push(".//" + element, ".//xhtml:" + element)
xpath.join(" | ")
+ # Evaluates an XPath on the whole document, or on the contents of the fullscreen element if an element is
+ # fullscreen.
evaluateXPath: (xpath, resultType) ->
+ contextNode =
+ if document.webkitIsFullScreen then document.webkitFullscreenElement else document.documentElement
namespaceResolver = (namespace) ->
if (namespace == "xhtml") then "http://www.w3.org/1999/xhtml" else null
- document.evaluate(xpath, document.documentElement, namespaceResolver, resultType, null)
+ document.evaluate(xpath, contextNode, namespaceResolver, resultType, null)
#
# Returns the first visible clientRect of an element if it exists. Otherwise it returns null.
diff --git a/lib/utils.coffee b/lib/utils.coffee
index 8f6dca2a..661f7e84 100644
--- a/lib/utils.coffee
+++ b/lib/utils.coffee
@@ -26,11 +26,10 @@ Utils =
-> id += 1
hasChromePrefix: do ->
- chromePrefixes = [ "about:", "view-source:", "extension:", "chrome-extension:", "data:" ]
+ chromePrefixes = [ "about:", "view-source:", "extension:", "chrome-extension:", "data:", "javascript:" ]
(url) ->
- if 0 < url.indexOf ":"
- for prefix in chromePrefixes
- return true if url.startsWith prefix
+ for prefix in chromePrefixes
+ return true if url.startsWith prefix
false
hasFullUrlPrefix: do ->
@@ -137,6 +136,11 @@ Utils =
return 1
0
+ # True if the current Chrome version is at least the required version.
+ haveChromeVersion: (required) ->
+ chromeVersion = navigator.appVersion.match(/Chrome\/(.*?) /)?[1]
+ chromeVersion and 0 <= Utils.compareVersions chromeVersion, required
+
# Zip two (or more) arrays:
# - Utils.zip([ [a,b], [1,2] ]) returns [ [a,1], [b,2] ]
# - Length of result is `arrays[0].length`.