chromium/tools/perf/chrome_telemetry_build/chromium_config.py

# Copyright 2015 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import os

# pylint: disable=wrong-import-position
from core import path_util

CLIENT_CONFIG_PATH = os.path.join(
    os.path.dirname(os.path.abspath(__file__)), 'binary_dependencies.json')

with path_util.SysPath(path_util.GetTelemetryDir()):
  from telemetry import project_config
with path_util.SysPath(path_util.GetVariationsDir()):
  import fieldtrial_util  # pylint: disable=import-error
with path_util.SysPath(path_util.GetAndroidPylibDir()):
  from pylib.constants import host_paths


class ChromiumConfig(project_config.ProjectConfig):

  def __init__(self, top_level_dir=None, benchmark_dirs=None,
               client_configs=None, default_chrome_root=None,
               expectations_files=None):
    if client_configs is None:
      client_configs = [CLIENT_CONFIG_PATH]
    if default_chrome_root is None:
      default_chrome_root = path_util.GetChromiumSrcDir()
    # Some android utilities in Catapult expect a java binary available on PATH,
    # so place chromium's heremetic JDK on PATH if we have it checked out.
    if os.path.exists(host_paths.JAVA_PATH):
      os.environ['PATH'] = (host_paths.JAVA_PATH + os.pathsep +
                            os.environ['PATH'])

    super(ChromiumConfig, self).__init__(
        top_level_dir=top_level_dir, benchmark_dirs=benchmark_dirs,
        client_configs=client_configs, default_chrome_root=default_chrome_root,
        expectations_files=expectations_files)

  def AdjustStartupFlags(self, args):
    return fieldtrial_util.MergeFeaturesAndFieldTrialsArgs(args)


def GetDefaultChromiumConfig():
  return ChromiumConfig(
      benchmark_dirs=[path_util.GetOfficialBenchmarksDir(),
                      path_util.GetContribDir()],
      top_level_dir=path_util.GetPerfDir(),
      expectations_files=[path_util.GetExpectationsPath()])