# 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': '[Aa]nimat|[Tt]ransition',
    },
    'audio': {
      'filepath': 'Source/platform/audio' \
                  '|Source/modules/webaudio',
    },
    'bidi': {
      'filepath': 'Source/platform/text/.*Bidi' \
                  '|Source/core/rendering/.*Bidi',
    },
    'bindings': {
      'filepath': 'Source/bindings',
    },
    'test_runner': {
      'filepath': 'Tools/DumpRenderTree/chromium/TestRunner',
    },
    'canvas': {
      'filepath': 'Source/core/html/canvas/'
    },
    'clipboard': {
      'filepath': 'Source/core/clipboard' \
                  '|Source/core/page/.*Drag' \
                  '|Source/platform/.*Drag' \
                  '|Source/platform/clipboard' \
                  '|Source/web/.*Drag' \
                  '|public/platform/.*Drag' \
                  '|public/web/.*Drag',
    },
    'css': {
      'filepath': 'Source/core/css',
    },
    'custom_elements': {
      'filepath': 'Source/core/dom/CustomElement' \
                  '|Source/bindings/v8/.*CustomElement',
    },
    'devtools': {
      'filepath': 'inspector|DevTools|devtools',
    },
    'dom': {
      'filepath': 'Source/core/dom/'
    },
    'events': {
      'filepath': 'Source/core/page/.*Event' \
                  '|Source/core/dom/.*Event' \
                  '|Source/core/css/.*Event' \
                  '|Source/platform/.*Event'
    },
    'fetch': {
      'filepath': 'Source/core/fetch',
    },
    'filters': {
      'filepath': 'Source/platform/graphics/filters' \
                  '|Source/core/svg/graphics/filters'
    },
    'heap': {
      'filepath': 'Source/heap' \
                  '|Source/platform/heap',
    },
    'html': {
      'filepath': 'Source/core/html/'
    },
    'loader': {
      'filepath': 'Source/core/loader',
    },
    'owners': {
      'filepath': 'OWNERS',
    },
    'preloadScanner': {
      'filepath': 'Source/core/html/parser/HTMLPreloadScanner',
    },
    'public_api': {
      'filepath': 'public'
    },
    'serviceworkers' : {
      'filepath': 'Source/modules/serviceworkers' \
                  '|LayoutTests/http/tests/serviceworker'
    },
    'serviceworkers_tests' : {
      'filepath': 'LayoutTests/http/tests/serviceworker'
    },
    'sheriff_o_matic' : {
      'filepath': 'Tools/GardeningServer'
    },
    'spellcheck' : {
      'filepath':  'Source/core/editing/Editor' \
                   '|Source/core/editing/Spell' \
                   '|Source/core/editing/TextCheckingHelper' \
                   '|Source/platform/text/TextCheck' \
                   '|Source/web/EditorClientImpl' \
                   '|LayoutTests/editing/spelling' \
                   '|public/web/WebSpellCheckClient.h',
    },
    'workers': {
      'filepath': 'Source/core/workers',
    },
    'wtf': {
      'filepath': 'Source/wtf',
    },
    'platform_graphics': {
      'filepath': 'Source/platform/fonts' \
                  '|Source/platform/geometry' \
                  '|Source/platform/graphics'
    },
    'platform': {
      'filepath': 'Source/platform'
    },
    'svg': {
      'filepath': 'Source/core/svg|Source/core/rendering/svg',
    },
    'indexed_db': {
      'filepath': 'Source/modules/indexeddb/' \
                  '|Source/web/.*IDB' \
                  '|LayoutTests/storage/indexeddb' \
                  '|public/platform/.*IDB'
    },
    'rendering': {
      'filepath': 'Source/core/rendering'
    },
    'compositing': {
      'filepath': 'Source/core/rendering/compositing'
    },
    'layers': {
      'filepath': 'Source/core/page/scrolling/ScrollingCoordinator' \
                  '|Source/platform/graphics/GraphicsLayer' \
                  '|Source/core/rendering/RenderLayer'
    },
    "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/HTMLTrackElement' \
                  '|Source/core/html/shadow/MediaControl' \
                  '|Source/core/css/mediaControl' \
                  '|LayoutTests/media/track/'
    },
    'media': {
      'filepath': 'Source/core/css/mediaControls' \
                  '|Source/core/html/.*(Audio|Media|Video)' \
                  '|Source/core/html/shadow/MediaControl' \
                  '|Source/core/rendering/RenderMedia' \
                  '|Source/modules/(encryptedmedia|mediasource)' \
                  '|Source/platform/drm/' \
                  '|Source/platform/graphics/media/' \
                  '|Source/web/.*Media' \
                  '|LayoutTests/media/' \
                  '|public/.*Media'
    },
    'media_queries': {
        'filepath': 'Source/core/css/CSSMediaRule' \
                    '|Source/core/css/MediaList' \
                    '|Source/core/css/MediaQuery' \
                    '|Source/core/css/parser/MediaQuery'
    },
    'modules': {
      'filepath': 'Source/modules/'
    },
    'navigator_content_utils': {
      'filepath': 'Source/modules/navigatorcontentutils' \
                  '|LayoutTests/fast/dom/navigatorcontentutils'
    },
    'out_of_process_frames': {
      'filepath': 'Source/core/frame/FrameOwner' \
                  '|Source/web/WebFrame' \
                  '|Source/web/WebRemoteFrameImpl'
    },
    'fileapi': {
      'filepath': 'Source/modules/filesystem/' \
                  '|Source/core/fileapi/' \
                  '|Source/platform/.*File' \
                  '|Source/web/.*File' \
                  '|LayoutTests/fast/file' \
                  '|public/.*File'
    },
    'quota': {
      'filepath': 'Source/modules/quota/' \
                  '|Source/web/.*Quota' \
                  '|public/.*Quota'
    },
    'viewport_interaction': {
      'filepath': 'Source/core/css/.*Viewport' \
                  '|Source/core/dom/ViewportArguments' \
                  '|Source/core/html/HTMLMetaElement' \
                  '|Source/core/page/FrameView' \
                  '|Source/core/page/scrolling'
    },
    'css_regions': {
      'filepath': 'Source/core/rendering/.*(Region|FlowThread)' \
                  '|Source/core/dom/NodeRendering' \
                  '|Source/core/dom/.*NamedFlow' \
                  '|Source/core/css/.*Region' \
                  '|LayoutTests/compositing/regions/' \
                  '|LayoutTests/fast/regions/' \
                  '|LayoutTests/platform/chromium.*/fast/regions/'
    },
    'web_idl': {
      'filepath': 'Source/core/.*\.idl'
    },
    'webcomponents': {
      'filepath': 'Source/core/dom/shadow/' \
                  '|Source/core/dom/custom/' \
                  '|Source/core/html/imports/' \
                  '|Source/bindings/v8/custom/V8CustomElementConstructorCustom' \
                  '|Source/bindings/v8/CustomElementHelpers'
    },
    'mediastream': {
      'filepath': 'Source/modules/mediastream/' \
                  '|Source/platform/mediastream/' \
                  '|Source/platform/exported/WebMediaStream' \
                  '|Source/platform/exported/WebRTC' \
                  '|LayoutTests/fast/mediastream/'
    },
    'geolocation': {
      'filepath': 'LayoutTests/fast/dom/Geolocation/' \
                  '|Source/modules/geolocation/' \
                  '|Source/web/.*Geolocation' \
                  '|public/web/.*Geolocation'
    },
    'vibration': {
      'filepath': 'LayoutTests/vibration/' \
                  '|Source/modules/vibration/'
    },
    'device_orientation': {
      'filepath': 'Source/modules/device_orientation/' \
                  '|LayoutTests/fast/dom/DeviceMotion/' \
                  '|LayoutTests/fast/dom/DeviceOrientation/' \
                  '|Source/core/frame/PlatformEvent(Controller|Dispatcher)' \
                  '|Source/core/frame/DeviceSingleWindowEventController'
    },
    'web': {
      'filepath': 'Source/web/'
    },
    'webp': {
      'filepath': 'Source/platform/image-decoders/webp' \
                  '|Source/platform/image-encoders/skia/WEBP'
    },
    'css_grid_layout': {
      'filepath': 'Source/core/rendering/.*Grid' \
                  '|Source/core/css/.*Grid' \
                  '|LayoutTests/fast/css-grid-layout/' \
                  '|LayoutTests/ietestcenter/css3/grid/' \
                  '|LayoutTests/platform/.*/fast/css-grid-layout/' \
                  '|LayoutTests/platform/.*/ietestcenter/css3/grid/'
    },
    'css_flexbox': {
      'filepath': 'Source/core/rendering/.*Flex' \
                  '|LayoutTests/fast/flexbox/' \
                  '|LayoutTests/css3/flexbox/' \
                  '|LayoutTests/ietestcenter/css3/flexbox/'
    },
    'fragment_layout': {
      'filepath': 'Source/core/rendering/.*(FlowThread|MultiCol|Region)' \
                  '|Source/core/rendering/ColumnInfo' \
                  '|LayoutTests/.*/multicol/' \
                  '|LayoutTests/.*/regions/'
    },
    'table_layout': {
      'filepath': 'Source/core/rendering/.*Table'
    },
    'battery_status': {
      'filepath': 'Source/modules/battery/' \
                  '|LayoutTests/battery-status/' \
                  '|Source/core/frame/PlatformEvent(Controller|Dispatcher)'
    },
    'device_light': {
      'filepath': 'Source/modules/device_light/' \
                  '|LayoutTests/fast/dom/DeviceLight/'
    },
    'websockets': {
      'filepath': 'Source/modules/websockets/'
    },
  },

  'WATCHLISTS': {
    'accessibility':['dmazzoni@chromium.org',
                     'aboxhall@chromium.org'],
    'animations': ['alexis.menard@intel.com',
                   'dstockwell@chromium.org',
                   'ericwilligers@chromium.org',
                   'mikelawther@chromium.org',
                   'rjwright@chromium.org',
                   'shans@chromium.org',
                   'steveblock@chromium.org',
                   'timloh@chromium.org',
                   'blink-reviews-animation@chromium.org'],
    'audio': ['rtoy@chromium.org'],
    'devtools': [ 'pfeldman+blink@chromium.org',
                  'aandrey+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',
                  'paulirish+reviews@chromium.org',
                  'malch+blink@chromium.org',
                  'sergeyv+blink@chromium.org',
                  'devtools-reviews@chromium.org' ],
    'bidi': [ 'leviw+bidiwatch@chromium.org' ],
    'bindings': [ 'arv+blink@chromium.org',
                  'blink-reviews-bindings@chromium.org' ],
    'canvas': [ 'cabanier@adobe.com', 'aandrey+blink@chromium.org' ],
    'clipboard': [ 'dcheng@chromium.org', ],
    'custom_elements': [ 'dominicc+watchlist@chromium.org', 'dglazkov+blink@chromium.org' ],
    'fetch': [ 'japhet@chromium.org', 'gavinp+loader@chromium.org' ],
    'layers': [ 'blink-layers+watch@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',
                           'pdr+graphicswatchlist@chromium.org',
                           'cabanier@adobe.com',
                           'dschulze@chromium.org',
                           'rob.buis@samsung.com',
                           'jbroman@chromium.org' ],
    'platform': [ 'mkwst+moarreviews@chromium.org' ],
    'web': [ 'mkwst+moarreviews@chromium.org' ],
    'svg': [ 'schenney@chromium.org', 'pdr+svgwatchlist@chromium.org', 'fmalita@chromium.org', 'dschulze@chromium.org', 'rob.buis@samsung.com', 'fs@opera.com', 'ed+blinkwatch@opera.com', 'gyuyoung.kim@webkit.org', 'kouhei+svg@chromium.org' ],
    'css': [ 'alexis.menard@intel.com', 'apavlov+blink@chromium.org', 'dglazkov+blink@chromium.org', 'ed+blinkwatch@opera.com', 'rune+blink@opera.com', 'rob.buis@samsung.com', 'blink-reviews-css@chromium.org' ],
    'dom': [ 'eae+blinkwatch@chromium.org',
             'dglazkov+blink@chromium.org',
             'sigbjornf@opera.com',
             'rob.buis@samsung.com',
             'blink-reviews-dom@chromium.org' ],
    'events': [ 'eae+blinkwatch@chromium.org', 'dglazkov+blink@chromium.org', 'blink-reviews-events@chromium.org' ],
    'heap': [ 'ager@chromium.org', 'haraken@chromium.org', 'kouhei+heap@chromium.org' ],
    'html': [ 'dglazkov+blink@chromium.org', 'blink-reviews-html@chromium.org' ],
    'public_api': [ 'jamesr@chromium.org', 'dglazkov+blink@chromium.org' ],
    'workers': [ 'kinuko+worker@chromium.org',
                 'horo+watch@chromium.org',
                 'falken@chromium.org' ],
    'wtf': [ 'mikhail.pozdnyakov@intel.com',
             'aandrey+blink@chromium.org',
             'blink-reviews-wtf@chromium.org',
             'mkwst+moarreviews@chromium.org' ],
    'indexed_db': ['dgrogan@chromium.org',
                   'jsbell+idb@chromium.org', 'cmumford@chromium.org'],
    'rendering': [ 'pdr+renderingwatchlist@chromium.org',
                   'eae+blinkwatch@chromium.org',
                   'jchaffraix+rendering@chromium.org',
                   'leviw+renderwatch@chromium.org',
                   'zoltan@webkit.org',
                   'rune+blink@opera.com',
                   'blink-reviews-rendering@chromium.org' ],
    'compositing': [ ],
    'content_security_policy': [ 'mkwst+watchlist@chromium.org' ],
    'prerender': [ 'gavinp+prerender@chromium.org',
                   'yoav@yoav.ws' ],
    'preloadScanner': [ 'yoav@yoav.ws' ],
    'track': [ 'vcarbune@chromium.org', 'silviapf@chromium.org', 'philipj@opera.com', 'glenn@chromium.org', 'fs@opera.com', 'eric.carlson@apple.com' ],
    'media': [ 'feature-media-reviews@chromium.org', 'philipj@opera.com', 'eric.carlson@apple.com' ],
    'media_queries': [ 'kenneth.christiansen@gmail.com',
                       'yoav@yoav.ws' ],
    'fileapi': [ 'kinuko+fileapi@chromium.org',
                 'tzik@chromium.org',
                 'nhiroki@chromium.org' ],
    'quota': [ 'kinuko+fileapi@chromium.org',
               'tzik@chromium.org',
               'nhiroki@chromium.org' ],
    'viewport_interaction': [ 'kenneth.christiansen@gmail.com' ],
    'css_regions': [ 'ChromiumBugTracker@adobe.com' ],
    'web_idl': [ 'arv+blink@chromium.org', 'ch.dumez@samsung.com' ],
    'webcomponents': [ 'webcomponents-bugzilla@chromium.org', 'dglazkov+blink@chromium.org' ],
    'mediastream': [ 'tommyw+watchlist@chromium.org' ],
    'navigator_content_utils': [ 'gyuyoung.kim@webkit.org' ],
    'geolocation': [ 'mvanouwerkerk+watch@chromium.org', 'timvolodine@chromium.org' ],
    'vibration': [ 'mvanouwerkerk+watch@chromium.org' ],
    'serviceworkers': [ 'jsbell+serviceworker@chromium.org',
                        'kinuko+serviceworker@chromium.org',
                        'tzik@chromium.org',
                        'nhiroki@chromium.org',
                        'horo+watch@chromium.org',
                        'falken@chromium.org',
                        'michaeln@chromium.org',
                        'serviceworker-reviews@chromium.org' ],
    'serviceworkers_tests': [ 'kenjibaheux+watch@chromium.org' ],
    'sheriff_o_matic': [ 'jochen@chromium.org',
                         'szager@chromium.org',
                         'dsinclair@chromium.org',
                         'ojan@chromium.org',
                         'leviw@chromium.org',
                         'michaelpg@chromium.org',
                         'cbiesinger@chromium.org',
                         'teravest@chromium.org' ],
    'spellcheck' : [ 'groby+blinkspell@chromium.org' ],
    'device_orientation': [ 'timvolodine@chromium.org', 'mvanouwerkerk+watch@chromium.org', 'ch.dumez@samsung.com' ],
    'webp': [ 'urvang@google.com',
              'jzern@chromium.org',
              'skal@google.com',
              'vikasa@google.com' ],
    'css_grid_layout': [ 'svillar@igalia.com', 'jfernandez@igalia.com', 'rego@igalia.com' ],
    'css_flexbox': [ 'cbiesinger@chromium.org' ],
    'battery_status': [ 'timvolodine@chromium.org' ],
    'out_of_process_frames': [ 'dcheng@chromium.org' ],
    'device_light': [ 'timvolodine@chromium.org' ],
    'websockets': [ 'tyoshino+watch@chromium.org', 'yhirano+watch@chromium.org' ],
  },
}