diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/dom_utils.coffee | 4 | ||||
| -rw-r--r-- | lib/utils.coffee | 19 | 
2 files changed, 12 insertions, 11 deletions
| diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index 73d29eb6..dfaa5d5f 100644 --- a/lib/dom_utils.coffee +++ b/lib/dom_utils.coffee @@ -32,8 +32,8 @@ DomUtils =    #    makeXPath: (elementArray) ->      xpath = [] -    for i of elementArray -      xpath.push("//" + elementArray[i], "//xhtml:" + elementArray[i]) +    for element in elementArray +      xpath.push("//" + element, "//xhtml:" + element)      xpath.join(" | ")    evaluateXPath: (xpath, resultType) -> diff --git a/lib/utils.coffee b/lib/utils.coffee index bbcee1a0..b7f8731a 100644 --- a/lib/utils.coffee +++ b/lib/utils.coffee @@ -26,28 +26,29 @@ Utils =      -> id += 1    hasChromePrefix: do -> -    chromePrefixes = [ "about:", "view-source:", "chrome-extension:", "data:" ] +    chromePrefixes = [ "about:", "view-source:", "extension:", "chrome-extension:", "data:" ]      (url) ->        if 0 < url.indexOf ":"          for prefix in chromePrefixes            return true if url.startsWith prefix        false +  hasFullUrlPrefix: do -> +    urlPrefix = new RegExp "^[a-z]{3,}://." +    (url) -> urlPrefix.test url +    # Completes a partial URL (without scheme)    createFullUrl: (partialUrl) -> -    unless /^[a-z]{3,}:\/\//.test partialUrl -      "http://" + partialUrl -    else -      partialUrl +    if @hasFullUrlPrefix(partialUrl) then partialUrl else ("http://" + partialUrl)    # Tries to detect if :str is a valid URL.    isUrl: (str) -> -    # Starts with a scheme: URL -    return true if /^[a-z]{3,}:\/\//.test str -      # Must not contain spaces      return false if ' ' in str +    # Starts with a scheme: URL +    return true if @hasFullUrlPrefix str +      # More or less RFC compliant URL host part parsing. This should be sufficient for our needs      urlRegex = new RegExp(        '^(?:([^:]+)(?::([^:]+))?@)?' + # user:password (optional) => \1, \2 @@ -98,7 +99,7 @@ Utils =    convertToUrl: (string) ->      string = string.trim() -    # Special-case about:[url] and view-source:[url] +    # Special-case about:[url], view-source:[url] and the like      if Utils.hasChromePrefix string        string      else if Utils.isUrl string | 
