[Extensions] Handle RTL and directional characters in extension names

This CL introduces base::i18n::EnsureTerminatedDirectionalFormatting
to ensure that the supplied text contains no unterminated directional
formatting characters. Additionally, this CL introduces
base::i18n::SanitizeUserSuppliedString which adjusts the supplied text
according to the locale direction and relies on the previous method
to handle unterminated directional formatting characters.

The SanitizeUserSuppliedString is applied to sanitize RTL and
directional characters in extension names.

Bug: 685747
Change-Id: I48db3a37b8a54d5c4ca5556d56cde4c9da31abe3
Reviewed-on: https://chromium-review.googlesource.com/876522
Commit-Queue: catmullings <catmullings@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Matt Giuca <mgiuca@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536375}

CrOS-Libchrome-Original-Commit: 867fbaacc16ed58d5a7c8cb682bf5fafc79d47f9
3 files changed
tree: 36a44159727f16b8164ebbf4eafa902a25853d1a
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/