| Index: lib/basedomain.js | 
| =================================================================== | 
| deleted file mode 100644 | 
| --- a/lib/basedomain.js | 
| +++ /dev/null | 
| @@ -1,173 +0,0 @@ | 
| -/*! | 
| - * Parts of original code from ipv6.js <https://github.com/beaugunderson/javascript-ipv6> | 
| - * Copyright 2011 Beau Gunderson | 
| - * Available under MIT license <http://mths.be/mit> | 
| - */ | 
| - | 
| -const RE_V4 = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|0x[0-9a-f][0-9a-f]?|0[0-7]{3})\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|0x[0-9a-f][0-9a-f]?|0[0-7]{3})$/i; | 
| -const RE_V4_HEX = /^0x([0-9a-f]{8})$/i; | 
| -const RE_V4_NUMERIC = /^[0-9]+$/; | 
| -const RE_V4inV6 = /(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; | 
| - | 
| -const RE_BAD_CHARACTERS = /([^0-9a-f:])/i; | 
| -const RE_BAD_ADDRESS = /([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]$)/i; | 
| - | 
| -function isIPv4(address) | 
| -{ | 
| -  if (RE_V4.test(address)) | 
| -    return true; | 
| -  if (RE_V4_HEX.test(address)) | 
| -    return true; | 
| -  if (RE_V4_NUMERIC.test(address)) | 
| -    return true; | 
| -  return false; | 
| -} | 
| - | 
| -function isIPv6(address) | 
| -{ | 
| -  var a4addon = 0; | 
| -  var address4 = address.match(RE_V4inV6); | 
| -  if (address4) | 
| -  { | 
| -    var temp4 = address4[0].split('.'); | 
| -    for (var i = 0; i < 4; i++) | 
| -    { | 
| -      if (/^0[0-9]+/.test(temp4[i])) | 
| -        return false; | 
| -    } | 
| -    address = address.replace(RE_V4inV6, ''); | 
| -    if (/[0-9]$/.test(address)) | 
| -      return false; | 
| - | 
| -    address = address + temp4.join(':'); | 
| -    a4addon = 2; | 
| -  } | 
| - | 
| -  if (RE_BAD_CHARACTERS.test(address)) | 
| -    return false; | 
| - | 
| -  if (RE_BAD_ADDRESS.test(address)) | 
| -    return false; | 
| - | 
| -  function count(string, substring) | 
| -  { | 
| -    return (string.length - string.replace(new RegExp(substring,"g"), '').length) / substring.length; | 
| -  } | 
| - | 
| -  var halves = count(address, '::'); | 
| -  if (halves == 1 && count(address, ':') <= 6 + 2 + a4addon) | 
| -    return true; | 
| -  if (halves == 0 && count(address, ':') == 7 + a4addon) | 
| -    return true; | 
| -  return false; | 
| -} | 
| - | 
| -/** | 
| - * Returns base domain for specified host based on Public Suffix List. | 
| - */ | 
| -function getBaseDomain(/**String*/ hostname) /**String*/ | 
| -{ | 
| -  // remove trailing dot(s) | 
| -  hostname = hostname.replace(/\.+$/, ''); | 
| - | 
| -  // return IP address untouched | 
| -  if (isIPv6(hostname) || isIPv4(hostname)) | 
| -    return hostname; | 
| - | 
| -  // decode punycode if exists | 
| -  if (hostname.indexOf('xn--') >= 0) | 
| -  { | 
| -    hostname = punycode.toUnicode(hostname); | 
| -  } | 
| - | 
| -  // search through PSL | 
| -  var prevDomains = []; | 
| -  var curDomain = hostname; | 
| -  var nextDot = curDomain.indexOf('.'); | 
| -  var tld = 0; | 
| - | 
| -  while (true) | 
| -  { | 
| -    var suffix = publicSuffixes[curDomain]; | 
| -    if (typeof(suffix) != 'undefined') | 
| -    { | 
| -      tld = suffix; | 
| -        break; | 
| -    } | 
| - | 
| -    if (nextDot < 0) | 
| -    { | 
| -      tld = 1; | 
| -      break; | 
| -    } | 
| - | 
| -    prevDomains.push(curDomain.substring(0,nextDot)); | 
| -    curDomain = curDomain.substring(nextDot+1); | 
| -    nextDot = curDomain.indexOf('.'); | 
| -  } | 
| - | 
| -  while (tld > 0 && prevDomains.length > 0) | 
| -  { | 
| -    curDomain = prevDomains.pop() + '.' + curDomain; | 
| -    tld--; | 
| -  } | 
| - | 
| -  return curDomain; | 
| -} | 
| - | 
| -/** | 
| - * Checks whether a request is third party for the given document, uses | 
| - * information from the public suffix list to determine the effective domain | 
| - * name for the document. | 
| - */ | 
| -function isThirdParty(/**String*/ requestHost, /**String*/ documentHost) | 
| -{ | 
| -  // Remove trailing dots | 
| -  requestHost = requestHost.replace(/\.+$/, ""); | 
| -  documentHost = documentHost.replace(/\.+$/, ""); | 
| - | 
| -  // Extract domain name - leave IP addresses unchanged, otherwise leave only base domain | 
| -  var documentDomain = getBaseDomain(documentHost); | 
| -  if (requestHost.length > documentDomain.length) | 
| -    return (requestHost.substr(requestHost.length - documentDomain.length - 1) != "." + documentDomain); | 
| -  else | 
| -    return (requestHost != documentDomain); | 
| -} | 
| - | 
| -/** | 
| - * Extracts host name from a URL. | 
| - */ | 
| -function extractHostFromURL(/**String*/ url) | 
| -{ | 
| -  if (url && extractHostFromURL._lastURL == url) | 
| -    return extractHostFromURL._lastDomain; | 
| - | 
| -  var host = new URL(url).hostname; | 
| -  extractHostFromURL._lastURL = url; | 
| -  extractHostFromURL._lastDomain = host; | 
| -  return host; | 
| -} | 
| - | 
| -/** | 
| - * Extracts host name from the URL of the given frame. If the URL don't have host | 
| - * information (like about:blank or data: URLs) it falls back to the parent frame. | 
| - */ | 
| -function extractHostFromFrame(frame) | 
| -{ | 
| -  var host = extractHostFromURL(frame.url); | 
| -  if (!host) | 
| -  { | 
| -    var parentFrame = frame.parent; | 
| -    if (parentFrame) | 
| -      return extractHostFromFrame(parentFrame); | 
| -  } | 
| -  return host; | 
| -} | 
| - | 
| -/** | 
| - * Strips the fragment from a URL. | 
| - */ | 
| -function stripFragmentFromURL(/**String*/ url) | 
| -{ | 
| -  return url.replace(/#.*/, ""); | 
| -} | 
|  |