# Copyright (c) 2006-2009 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.

# Watchlist Rules
# Refer: http://dev.chromium.org/developers/contributing-code/watchlists


{
  'WATCHLIST_DEFINITIONS': {
    'this_file': {
      'filepath': '^WATCHLISTS$',
    },
    'valgrind': {
      'filepath': 'valgrind',
    },
    'mac': {
      'filepath': 'cocoa|\.mm$|(_mac|_posix)\.(cc|h)$',
    },
    'base': {
      'filepath': '^base/.*',
    },
    'extension': {
      'filepath': 'extension',
    },
    'views': {
      # Applies to all files and subdirs within this directory.
      'filepath': 'views/.*',
    },
    'browser': {
      'filepath': 'chrome/browser/.*',
    },
    'download': {
      'filepath': 'download|save_',
    },
    'history': {
      'filepath': 'chrome/browser/history/.*',
    },
    'renderer': {
      'filepath': 'chrome/browser/renderer_host/.*|chrome/renderer/.*|'\
        'chrome/common/render.*',
    },
    'safe_browsing': {
      'filepath': 'chrome/browser/safe_browsing/.*|'\
        'chrome/browser/renderer_host/safe.*',
    },
    'tab_contents': {
      'filepath': 'chrome/browser/tab_contents/.*',
    },
    'webkit': {
      'filepath': 'webkit/.*',
    },
    'plugin': {
      'filepath': 'chrome/browser/plugin.*|chrome/plugin/.*|'\
        'chrome/common/plugin.*|webkit/glue/webplugin.*|webkit/glue/plugins/.*',
    },
    'worker': {
      'filepath': 'chrome/browser/worker_host/.*|chrome/worker/.*|'\
        'chrome/common/worker_messages.*|webkit/glue/webworker.*',
    },
    'net': {
      'filepath': 'net/.*',
    },
    'ftp': {
      'filepath': 'ftp',
    },
    'installer': {
      'filepath': 'chrome/installer/.*',
    },
    'importer': {
      'filepath': '.*import.*',
    },
    'media': {
      'filepath': 'media|Media|^third_party/ffmpeg/',
    },
    'ipc': {
      'filepath': 'ipc/ipc.*',
    },
    'linux-sandboxing': {
      'filepath': 'sandbox/linux/.*',
    },
    'sync': {
      'filepath': 'chrome/browser/sync/.*|chrome/browser/views/sync/.*|'\
        'chrome/test/live_sync/.*',
    },
    'layout_tests': {
      'filepath': 'webkit/(tools|data)/(layout_tests|test_shell)/.*',
    },
    'tools': {
      'filepath': 'tools/.*',
    },
    'tests': {
      'filepath': 'apitest|unittest|browsertest|uitest|chrome/test/.*',
    },
    'automation': {
      'filepath': 'chrome/browser/automation/.*|chrome/test/automation/.*',
    },
    'chrome_frame': {
      'filepath': 'chrome_frame/.*',
    },
    'nacl': {
      'filepath': 'chrome/nacl/.*|chrome/test/nacl/.*|'\
        'chrome/browser/nacl_process_host.*|chrome/common/nacl.*',
    },
    'appcache': {
      'filepath': 'appcache/.*',
    },
    'gpu': {
      'filepath': 'gpu/.*',
    },
  },

  'WATCHLISTS': {
    'this_file': ['nirnimesh@chromium.org'],
    'valgrind': ['dank@chromium.org',
                 'timurrrr@chromium.org',
                 'stuartmorgan@chromium.org',
                 'ramosian.glider@gmail.com'],
    'mac': ['jrg@chromium.org', 'pam+watch@chromium.org'],
    'base': ['brettw+cc@chromium.org'],
    'views': ['ben+cc@chromium.org'],
    'browser': ['ben+cc@chromium.org'],
    'download': ['paul@chromium.org'],
    'history': ['brettw+cc@chromium.org'],
    'renderer': ['darin@chromium.org',
                 'brettw+cc@chromium.org',
                 'jam@chromium.org'],
    'safe_browsing': ['paul@chromium.org'],
    'tab_contents': ['brettw+cc@chromium.org'],
    'webkit': ['darin@chromium.org'],
    'plugin': ['darin@chromium.org', 'jam@chromium.org'],
    'worker': ['jam@chromium.org'],
    'extension': ['aa@chromium.org',
                  'erikkay@chromium.org',
                  'pam+watch@chromium.org'],
    'net': ['darin@chromium.org'],
    'ftp': ['phajdan.jr@chromium.org'],
    'installer': ['kuchhal@chromium.org'],
    'importer': ['kuchhal@chromium.org'],
    'media': ['ajwong@chromium.org', 'fbarchard@chromium.org',
              'hclam@chromium.org', 'scherkus@chromium.org'],
    'ipc': ['jam@chromium.org', 'darin@chromium.org'],
    'linux-sandboxing': ['agl@chromium.org'],
    'sync': ['tim@chromium.org', 'nick@chromium.org',
             'idana@chromium.org'],
    'layout_tests': ['pam+watch@chromium.org', 'dpranke+watch@chromium.org'],
    'tools': ['pam+watch@chromium.org'],
    'tests': ['phajdan.jr@chromium.org'],
    'automation': ['phajdan.jr@chromium.org'],
    'chrome_frame' : ['amit@chromium.org'],
    'nacl' : ['native-client-reviews@googlegroups.com'],
    'appcache': ['michaeln@chromium.org'],
    'gpu': ['apatrick@chromium.org'],
  },
}
