# 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/+/master/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!

# Eng reviewer
file://ENG_REVIEW_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
