# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
  'conditions': [
    ['OS=="android" or OS=="linux"', {
      'variables': {
        'isolate_dependency_untracked': [
          '<(PRODUCT_DIR)/test_data/',
        ],
      },
    }],
    ['OS=="android" or OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'isolate_dependency_tracked': [
          '../third_party/accessibility-audit/axs_testing.js',
          '<(PRODUCT_DIR)/resources.pak',
        ],
        'isolate_dependency_untracked': [
          '../base/test/data/',
          '../components/test/data/',
          '../extensions/test/data/',
          '../net/data/',
          '../third_party/hunspell_dictionaries/',
          '../third_party/zlib/google/test/data/',
          'test/data/',
          'third_party/mock4js/',
        ],
      },
    }],
    ['OS=="android" or OS=="linux" or OS=="win"', {
      'variables': {
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/chrome_100_percent.pak',
          '<(PRODUCT_DIR)/locales/en-US.pak',
        ],
      },
    }],
    ['OS=="linux"', {
      'variables': {
        'command': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)',
          '<(PRODUCT_DIR)/unit_tests<(EXECUTABLE_SUFFIX)',
          '--brave-new-test-launcher',
          '--test-launcher-bot-mode',
        ],
        'isolate_dependency_tracked': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)/libffmpegsumo.so',
          '<(PRODUCT_DIR)/libosmesa.so',
          '<(PRODUCT_DIR)/locales/fr.pak',
          '<(PRODUCT_DIR)/xdisplaycheck<(EXECUTABLE_SUFFIX)',
        ],
        'isolate_dependency_touched': [
          '<(PRODUCT_DIR)/libppGoogleNaClPluginChrome.so',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'isolate_dependency_tracked': [
          '../testing/test_env.py',
          '<(PRODUCT_DIR)/unit_tests<(EXECUTABLE_SUFFIX)',
          'browser/safe_browsing/two_phase_testserver.py',
        ],
        'isolate_dependency_untracked': [
          '../net/tools/testserver/',
          '../third_party/pyftpdlib/',
          '../third_party/pywebsocket/',
          '../third_party/tlslite/',
          '<(PRODUCT_DIR)/pyproto/',
          '<(PRODUCT_DIR)/test_data/chrome/renderer/resources/extensions/',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac"', {
      'variables': {
        # Can't be enabled on Windows due to http://crbug.com/342913
        'read_only': 1,
      },
    }],
    ['OS=="mac"', {
      'variables': {
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/exif.so',
          '<(PRODUCT_DIR)/ffmpegsumo.so',
          '<(PRODUCT_DIR)/osmesa.so',
        ],
        'isolate_dependency_untracked': [
          '<(PRODUCT_DIR)/<(mac_product_name) Framework.framework/',
        ],
      },
    }],
    ['OS=="mac" or OS=="win"', {
      'variables': {
        'command': [
          '../testing/test_env.py',
          '<(PRODUCT_DIR)/unit_tests<(EXECUTABLE_SUFFIX)',
          '--brave-new-test-launcher',
          '--test-launcher-bot-mode',
        ],
        'isolate_dependency_untracked': [
          '<(PRODUCT_DIR)/test_data/chrome/browser/resources/google_now/',
          '<(PRODUCT_DIR)/test_data/chrome/browser/resources/print_preview/',
          '<(PRODUCT_DIR)/test_data/chrome/test/data/unit/',
          '<(PRODUCT_DIR)/test_data/ui/',
        ],
      },
    }],
    ['OS=="win"', {
      'variables': {
        'isolate_dependency_tracked': [
          '<(PRODUCT_DIR)/chrome_elf.dll',
          '<(PRODUCT_DIR)/ffmpegsumo.dll',
          '<(PRODUCT_DIR)/libexif.dll',
          '<(PRODUCT_DIR)/osmesa.dll',
        ],
        'isolate_dependency_untracked': [
          '../ppapi/lib/gl/include/KHR/',
          '../skia/ext/data/',
          '../ui/base/glib/',
        ],
      },
    }],
  ],
  'includes': [
    '../base/base.isolate',
  ],
}
