Dawn: support Tint's chromium_internal_graphite as unsafe.

This will be used in a follow-up for the r8unorm_storage_write Dawn
extension for Graphite.

Bug: dawn:2101
Change-Id: I8849909e236e8516cf1d1f2a4186513688b97792
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/177542
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/docs/tint/extensions/chromium_internal_graphite.md b/docs/tint/extensions/chromium_internal_graphite.md
new file mode 100644
index 0000000..c165283
--- /dev/null
+++ b/docs/tint/extensions/chromium_internal_graphite.md
@@ -0,0 +1,10 @@
+# Chromium Internal Graphite
+
+This is a WGSL extension enabling a grab bag of small features that are useful to Graphite:
+
+ - Adds `r8unorm` to the texel formats for storage textures.
+
+## Status
+
+This is an internal extensions that's highly specific to what Graphite needs.
+Don't use it unless you are Graphite (or Tint/Dawn's tests).
diff --git a/src/dawn/native/Device.cpp b/src/dawn/native/Device.cpp
index fa3c315..d2812c2 100644
--- a/src/dawn/native/Device.cpp
+++ b/src/dawn/native/Device.cpp
@@ -1615,6 +1615,7 @@
     if (IsToggleEnabled(Toggle::AllowUnsafeAPIs)) {
         mWGSLAllowedFeatures.extensions.insert(
             tint::wgsl::Extension::kChromiumDisableUniformityAnalysis);
+        mWGSLAllowedFeatures.extensions.insert(tint::wgsl::Extension::kChromiumInternalGraphite);
     }
     if (mEnabledFeatures.IsEnabled(Feature::DualSourceBlending)) {
         mWGSLAllowedFeatures.extensions.insert(
diff --git a/src/dawn/tests/unittests/validation/ShaderModuleValidationTests.cpp b/src/dawn/tests/unittests/validation/ShaderModuleValidationTests.cpp
index 362fd83..3f93e88 100644
--- a/src/dawn/tests/unittests/validation/ShaderModuleValidationTests.cpp
+++ b/src/dawn/tests/unittests/validation/ShaderModuleValidationTests.cpp
@@ -797,6 +797,7 @@
     {"chromium_experimental_pixel_local", true, "pixel-local-storage-coherent"},
     {"chromium_disable_uniformity_analysis", true, nullptr},
     {"chromium_internal_dual_source_blending", true, "dual-source-blending"},
+    {"chromium_internal_graphite", true, nullptr},
     {"chromium_experimental_framebuffer_fetch", true, "framebuffer-fetch"},
 
     // Currently the following WGSL extensions are not enabled under any situation.