# Copyright (c) 2013 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

# IMPORTANT: The regular expression filepath is tested against each path using
# re.search, so it is not usually necessary to add .*.

{
  'WATCHLIST_DEFINITIONS': {
    'accessibility': {
      'filepath': 'Source/core/accessibility' \
                  '|LayoutTests/accessibility',
    },
    'animations': {
      'filepath': 'animation|transition',
    },
    'bindings': {
      'filepath': 'Source/bindings',
    },
    'test_runner': {
      'filepath': 'Tools/DumpRenderTree/chromium/TestRunner',
    },
    'css': {
      'filepath': 'Source/core/css',
    },
    'devtools': {
      'filepath': 'inspector|DevTools|devtools',
    },
    'loader': {
      'filepath': 'Source/core/loader',
    },
    'owners': {
      'filepath': 'OWNERS',
    },
    'public_api': {
      'filepath': 'Source/Platform/chromium/public' \
                  '|Source/WebKit/chromium/public' \
                  '|Tools/DumpRenderTree/chromium/TestRunner/public/',
    },
    'wtf': {
      'filepath': 'Source/wtf',
    },
    'platform_graphics': {
      'filepath': 'Source/core/platform/graphics',
    },
    'platform': {
      'filepath': 'Source/core/platform' \
                  '|Source/Platform'
    },
    'svg': {
      'filepath': 'Source/core/svg|Source/core/rendering/svg',
    },
    'indexed_db': {
      'filepath': 'Source/modules/indexeddb/' \
                  '|Source/WebKit/chromium/.*IDB' \
                  '|Source/core/platform/leveldb' \
                  '|LayoutTests/storage/indexeddb'
    },
    'rendering': {
      'filepath': 'Source/core/rendering'
    },
    'layers': {
      'filepath': 'Source/WebCore/page/scrolling/ScrollingCoordinator.*' \
                  '|Source/WebCore/platform/graphics/GraphicsLayer.*' \
                  '|Source/WebCore/rendering/RenderLayer.*' \
                  '|Source/WebKit/chromium/src/NonCompositedContentHost.*'
    },
    "content_security_policy": {
      'filepath': 'Source/core/page/.*SecurityPolicy' \
                  '|Source/core/dom/SecurityPolicyViolationEvent' \
                  '|LayoutTests/http/tests/security/contentSecurityPolicy'
    },
    "prerender": {
      'filepath': 'Prerender' \
                  '|loader/LinkLoader' \
                  '|html/HTMLLinkElement'
    },
    'track': {
      'filepath': 'Source/core/html/track/' \
                  '|Source/core/loader/TextTrack' \
                  '|Source/core/html/HTMLMediaElement' \
                  '|Source/core/html/shadow/MediaControl' \
                  '|Source/core/css/mediaControl' \
                  '|LayoutTests/media/track/'
    },
    'media': {
      'filepath': 'Source/core/css/mediaControls.*' \
                  '|Source/core/platform/graphics/.*Media.*' \
                  '|Source/core/html/.*(Audio|Media|Video).*' \
                  '|Source/core/html/shadow/MediaControl.*' \
                  '|Source/core/rendering/RenderMedia.*' \
                  '|Source/modules/(encryptedmedia|mediasource)' \
                  '|Source/WebKit/chromium/.*Media.*' \
    },
    'fileapi': {
      'filepath': 'Source/modules/filesystem/' \
                  '|Source/core/fileapi/' \
                  '|Source/WebKit/chromium/.*File.*' \
                  '|Source/core/platform/.*File.*' \
                  '|LayoutTests/fast/file'
    },
    'quota': {
      'filepath': 'Source/modules/quota/' \
                  '|Source/WebKit/chromium/.*Quota.*'
    },
  },

  'WATCHLISTS': {
    'accessibility':['dmazzoni@chromium.org',
                     'aboxhall@chromium.org'],
    'animations': ['alexis.menard@intel.com',
                   'dstockwell@chromium.org',
                   'steveblock@chromium.org',
                   'shans@chromium.org'],
    'devtools': [ 'pfeldman+blink@chromium.org',
                  'aandrey+blink@chromium.org',
                  'alph+blink@chromium.org',
                  'apavlov+blink@chromium.org',
                  'loislo+blink@chromium.org',
                  'lushnikov+blink@chromium.org',
                  'vsevik+blink@chromium.org',
                  'yurys+blink@chromium.org',
                  'eustas+blink@chromium.org',
                  'caseq+blink@chromium.org'],
    'bindings': [ 'abarth@chromium.org',
                  'japhet@chromium.org',
                  'jsbell+bindings@chromium.org',
                  'haraken@chromium.org' ],
    'layers': [ 'blink-layers@chromium.org' ],
    'loader': [ 'japhet@chromium.org', 'gavinp+loader@chromium.org' ],
    'owners': [ 'abarth@chromium.org'],
    'test_runner': [ 'jochen+watch@chromium.org' ],
    'platform_graphics': [ 'jamesr@chromium.org',
                           'schenney@chromium.org',
                           'danakj@chromium.org' ],
    'platform': [ 'forgerbr@gmail.com' ],
    'svg': [ 'schenney@chromium.org', 'pdr@google.com', 'fmalita@chromium.org' ],
    'css': [ 'alexis.menard@intel.com', 'apavlov+blink@chromium.org' ],
    'public_api': [ 'abarth@chromum.org', 'jamesr@chromium.org' ],
    'wtf': [ 'abarth@chromium.org', 'forgerbr@gmail.com',
             'loislo+blink@chromium.org', 'yurys+blink@chromium.org' ],
    'indexed_db': ['alecflett@chromium.org','dgrogan@chromium.org',
                   'jsbell@chromium.org'],
    'rendering': [ 'jchaffraix+rendering@chromium.org' ],
    'content_security_policy': [ 'mkwst+watchlist@chromium.org' ],
    'prerender': [ 'gavinp+prerender@chromium.org' ],
    'track': ['vcarbune@chromium.org'],
    'media': [ 'feature-media-reviews@chromium.org' ],
    'fileapi': [ 'kinuko@chromium.org' ],
    'quota': [ 'kinuko@chromium.org' ],
  },
}
