author Ehsan Akhgari <>
Fri, 16 Sep 2011 16:22:44 -0400
changeset 77583 489f9e746213f7d4ae2ac51b3a0fb672e211c462
parent 68048 afc62991f24c05790276764185f83883a47647e8
child 95245 7c3cd4824f94609d4ad714bea9c687227c641e63
permissions -rwxr-xr-x
Bug 666414 - Prevent AddRef and Release from being called on the pointers wrapped in nsCOMPtr and nsRefPtr; r=bsmedberg

def test(mod, path, entity = None):
  import re
  # ignore anyhting but Firefox
  if mod not in ("netwerk", "dom", "toolkit", "security/manager",
                 "browser", "extensions/reporter", "extensions/spellcheck",
    return False
  if mod != "browser" and mod != "extensions/spellcheck":
    # we only have exceptions for browser and extensions/spellcheck
    return True
  if not entity:
    if mod == "extensions/spellcheck":
      return False
    # browser
    return not (re.match(r"searchplugins\/.+\.xml", path) or
                re.match(r"chrome\/help\/images\/[A-Za-z-_]+\.png", path))
  if mod == "extensions/spellcheck":
    # l10n ships en-US dictionary or something, do compare
    return True
  if path == "":
    return entity != "MOZ_LANGPACK_CONTRIBUTORS"

  if path != "chrome/browser-region/":
    # only exceptions remain, compare all others
    return True
  return not (re.match(r"browser\.search\.order\.[1-9]", entity) or
              re.match(r"browser\.contentHandlers\.types\.[0-5]", entity) or
              re.match(r"gecko\.handlerService\.schemes\.", entity) or
              re.match(r"gecko\.handlerService\.defaultHandlersVersion", entity))