# Owner approval for 3rd party is only required for
# adding new libraries. Be sure to follow the instructions for adding
# new third party libraries.
#
# https://chromium.googlesource.com/chromium/src.git/+/main/docs/adding_to_third_party.md
#
# For changes to existing code that has no OWNER file, simply TBR= one of
# people below in addition to getting an appropriate code review. Generally
# third_party modules should have owners, so if you find yourself doing this
# more than once or twice for a directory, consider adding an OWNER file. If
# you're making changes and there isn't a more obvious person, the owner is
# probably you!

# ATL reviewer
file://ATL_OWNERS

# Automatic round-robin assignment of reviewer for third-party licenses.
# No one receives email to this list, just use it as a reviewer.
chromium-third-party@google.com

thakis@chromium.org

per-file .gitignore=*

# Translation artifacts:
per-file ....xtb=file://tools/translation/TRANSLATION_OWNERS
