diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/dom_utils.coffee | 8 | ||||
| -rw-r--r-- | lib/utils.coffee | 12 | 
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`. | 
