browser/locales/filter.py
author Gregory Szorc <gps@mozilla.com>
Thu, 19 Feb 2015 10:58:41 -0800
changeset 245738 c97c977c92b97c9585011651b13a088f0cd4ed4f
parent 188853 49f7863e004fc2d52e39635c5f89ba38aba4a543
child 259212 bf1d0c9242d9ac334c7f7521789840a7c711b418
permissions -rwxr-xr-x
Bug 1132771 - moz.build fixups to enable execution in no config mode Various moz.build files fail to execute when a build config is not present. Many of these are due to assuming certain CONFIG entries are present. This patch attempts to fix that and enable every moz.build to be read without a build config.

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

def test(mod, path, entity = None):
  import re
  # ignore anything but Firefox
  if mod not in ("netwerk", "dom", "toolkit", "security/manager",
                 "browser", "webapprt",
                 "extensions/reporter", "extensions/spellcheck",
                 "other-licenses/branding/firefox",
                 "browser/branding/official",
                 "services/sync"):
    return "ignore"
  if mod not in ("browser", "extensions/spellcheck"):
    # we only have exceptions for browser and extensions/spellcheck
    return "error"
  if not entity:
    # the only files to ignore are spell checkers and search
    if mod == "extensions/spellcheck":
      return "ignore"
    # browser
    if (re.match(r"searchplugins\/.+\.xml", path) or
        path == "searchplugins/metrolist.txt"):
      return "ignore"
    return "error"
  if mod == "extensions/spellcheck":
    # l10n ships en-US dictionary or something, do compare
    return "error"
  if path == "defines.inc":
    return "ignore" if entity == "MOZ_LANGPACK_CONTRIBUTORS" else "error"

  if mod == "browser" and path == "chrome/browser-region/region.properties":
    # only region.properties exceptions remain, compare all others
    return ("ignore"
            if (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))
            else "error")
  return "error"