     return -> id += 1
   )()
 
+  hasChromePrefix: (url) ->
+    chromePrefixes = [ 'about', 'view-source' ]
+    for prefix in chromePrefixes
+      return true if url.startsWith prefix
+    false
+
   # Completes a partial URL (without scheme)
   createFullUrl: (partialUrl) ->
-    if (!/^[a-z]{3,}:\/\//.test(partialUrl)) and not /^view-source:/.test partialUrl
+    if (!/^[a-z]{3,}:\/\//.test(partialUrl))
       "http://" + partialUrl
     else
       partialUrl

  # We don't bother with escaping characters as Chrome will do that for us.
  convertToUrl: (string) ->
    string = string.trim()
    if (Utils.isUrl(string)) then Utils.createFullUrl(string) else Utils.createSearchUrl(string)

# This creates a new function out of an existing function, where the new function takes fewer arguments.
# This allows us to pass around functions instead of functions + a partial list of arguments.


    # are there more?
    specialHostNames = [ 'localhost' ]

    # it starts with a scheme, so it's definitely an URL
    if (/^[a-z]{3,}:\/\//.test(str))
