[tint] Remove last references to chromium_experimental_dynamic_binding

Removed:
- The enum from wgsl.def
- The markdown document
- A special-case check in the E2E test template

Also updated a few copy/paste instances of {get,has}Binding.

Change-Id: I642d6f5dd09e36988f1cfc2a29e24c80dbb229c2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/283936
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
diff --git a/docs/tint/extensions/chromium_experimental_dynamic_binding.md b/docs/tint/extensions/chromium_experimental_dynamic_binding.md
deleted file mode 100644
index 0d6e66d..0000000
--- a/docs/tint/extensions/chromium_experimental_dynamic_binding.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# Chromium Experimental Dynamic Binding
-
-The `chromium_experimental_dynamic_binding` is an experimental extension that provides different
-prototype options to support the WebGPU bindless prototypes.
-
-# Status
-
-This extension is experimental and the syntax is being discussed. No official WebGPU specification
-has been written yet.
-
-# Availability
-
-| Platform | Notes |
-| SPIR-V | Requires `SPV_EXT_descriptor_indexing` extension and `RuntimeDescriptorArray` capability |
-| HLSL | Supported for DXC, not FXC |
-| MSL | Supported (TODO determine if there are Metal version restrictions) |
-| GLSL | Not supported |
-
-Due to limited availability, this will need an `enable` statement to be used. For this experimental
-extension it would be `enable chromium_experimental_dynamic_binding`.
-
-# Specification
-
-## `resource_binding`
-
-* A new `resource_binding` type is added
-* A `resource_binding` cannot be passed as a function parameter. This is because there is no way
-  in WGSL to currently write the needed pointer type (e.g. `ptr<handle, resource_binding, write>`).
-* A `resource_binding` can not be accessed with the usual array subscript operators. e.g. the following
-  is disallowed:
-
-  ```
-  var a: resource_binding;
-  fn foo() {
-      var b = a[0];
-  }
-  ```
-* Two helper methods `getBinding` and `hasBinding` are provided for accessing a `resource_binding`.
-
-### `hasBinding`
-```
-@must_use fn hasBinding<T>(a: resource_binding, index: I) -> bool
-```
-* `I` is an `i32` or `u32`
-* `T` is a format-less storage texture (e.g. `texture_storage_2d<f32>`), sampled texture, multisampled
-  texture, or depth texture.
-
-`hasBinding` returns true if the item a `index` of the array is of type `T`.
-
-### `getBinding`
-```
-@must_use fn getBinding<T>(a: resource_binding, index: I) -> T
-```
-* `I` is an `i32` or `u32`
-* `T` is a format-less storage texture (e.g. `texture_storage_2d<f32>`), sampled texture, multisampled
-  texture, or depth texture.
-
-`getBinding` returns the value at `index` of type `T`.
-
-If `index` is outside the bounds of the binding array then a default texture of type `T` will be
-returned. If the item at `index` is not of type `T` then a default texture of type `T` is returned.
-
-### `arrayLength`
-```
-@must_use fn arrayLength(a: resource_binding) -> u32
-```
-Returns the length of the array.
-
-# Example usage
-
-## `resource_binding`
-```
-enable chromium_experimental_dynamic_binding;
-
-@group(0) @binding(0) var textures : resource_binding;
-
-@fragment fn fs() {
-    if (hasBinding<texture_2d<f32>>(textures, 0)) {
-        let tex = textureLoad(getBinding<texture_2d<f32>>(textures, 0));
-    }
-}
-```
diff --git a/src/dawn/tests/end2end/ResourceTableTests.cpp b/src/dawn/tests/end2end/ResourceTableTests.cpp
index dfe1659..0fb6f17 100644
--- a/src/dawn/tests/end2end/ResourceTableTests.cpp
+++ b/src/dawn/tests/end2end/ResourceTableTests.cpp
@@ -564,7 +564,7 @@
     std::vector<TextureDescForTypeIDCase> cases;
 
     // TODO(https://issues.chromium.org/473354065): Add tests of filterable vs. unfilterable floats
-    // when get/hasBinding is able to make the difference.
+    // when get/hasResource is able to make the difference.
 
     // Regular 1D textures.
     cases.push_back({
@@ -783,7 +783,7 @@
         table.Update(i, &resource);
     }
 
-    // Test hasBinding returning for each of the supported WGSL types, against each texture.
+    // Test hasResource returning for each of the supported WGSL types, against each texture.
     for (auto wgslType : kWgslSampledTextureTypes) {
         std::vector<bool> expected;
         for (auto textureCase : textureCases) {
@@ -795,7 +795,7 @@
 }
 
 // Test that calling hasResource() with values outside of the resource table size returns false.
-TEST_P(ResourceTableTests, HasBindingOOBIsFalse) {
+TEST_P(ResourceTableTests, HasResourceOOBIsFalse) {
     // Create the test pipeline
     wgpu::ShaderModule module = utils::CreateShaderModule(device, R"(
         enable chromium_experimental_resource_table;
diff --git a/src/tint/cmd/bench/enums_wgsl_bench.cc b/src/tint/cmd/bench/enums_wgsl_bench.cc
index da5014d..6ec2ead 100644
--- a/src/tint/cmd/bench/enums_wgsl_bench.cc
+++ b/src/tint/cmd/bench/enums_wgsl_bench.cc
@@ -152,97 +152,90 @@
         "chromium_experimencal_barycentric_coord",
         "chromium_experimental_Oarycentric_coord",
         "chrttmium_experimental_bv__rycentric_KKoord",
-        "chrxxmium_8perimental_dynamic_5inding",
-        "__hromFumexperimental_ynqqmic_binding",
-        "chromium_xperimentqql_dynamic_binding",
-        "chromium_experimental_dynamic_binding",
-        "chromum_experim33ntal_dynam66c_biOding",
-        "chromium_QQxperimental_6y9amic_ttoonding",
-        "chromium_experimenta_dynamic_bin66ing",
-        "hromxum_experimental_zzr66mebufferOfetch",
-        "chromium_experimental_framebyyffer_fetch",
-        "chrmium_experimental_fraeHHuffer_feZch",
+        "chromium_epxxrimenta8_framebuffer_fe5ch",
+        "chromim_experimental_frame__uffer_qqtcF",
+        "chromium_exerimental_fqqamebuffer_fetch",
         "chromium_experimental_framebuffer_fetch",
-        "chromium_expeimeWWtal_framebuq4fer_fetch",
-        "chromium_experimental_fOOamebuffer_etch",
-        "chroomium_experimntalhframebuffr_fetcY",
-        "chomium_experiental_pixel_loca",
-        "chromum_experimental_pixel_lFcal",
-        "chromium_expewimentalpixel_local",
+        "h66omiu33_experimenOal_framebuffer_fetch",
+        "ch6ottiumooexperQQmental_frameb9ffer_fetch",
+        "chomium_experimen66al_framebuffer_fetch",
+        "chrmiuO_exp66rimentalzzpixxl_local",
+        "chromium_experimental_yyixel_local",
+        "hromiZ_experimZnHHal_pixel_local",
         "chromium_experimental_pixel_local",
-        "chromffum_expeKmentG_pixel_local",
-        "chromiuq_KKxperimental_pixel_local",
-        "chromium_eFpe3imental_mmixel_local",
-        "chromium_experimental_reource_table",
-        "chromium_experimentalresourcq_table",
-        "chromium_ebbprimental_resource_table",
+        "chromium_e44peimental_WWixel_qocal",
+        "chromiu_experimenOOal_pixel_local",
+        "chromYum_expoorienal_pihel_local",
+        "chromium_experiental_resorce_tabl",
+        "chromiumFexpermental_resource_table",
+        "chromium_experiental_resourcw_table",
         "chromium_experimental_resource_table",
-        "chromium_expirimental_resource_tabe",
-        "chromium_experimentl_resoOOrce_tablq",
-        "chromium_experimental_TTvvsource_table",
-        "chromium_experimental_subgrouFF_matrix",
-        "chromifm_experimenta00PsubgroQp_mtrix",
-        "chromium_experPmental_subgroup_matrix",
+        "chromKum_experimenta_resoure_tablff",
+        "chromium_experimental_resouKqce_table",
+        "chromium_expeFimental_res3urce_mmable",
+        "chromium_experimental_subgroup_mtrix",
+        "chromium_experimental_subgoqp_matrix",
+        "chromium_ebperimental_subgroub_matrix",
         "chromium_experimental_subgroup_matrix",
-        "cssomium_experimental_subgroup_mat77ix",
-        "chromium_exbberimenCal_subgroup_mRRtrix",
-        "chromium_experimental_subgroup_mXXtrix",
-        "chromium_expqrimental_CCubgOOoup_size_OOontol",
-        "chromim_experimentaL_subgroup_size_contuol",
-        "chromiuX_experimental_subgroup_size_control",
+        "ciiomim_experimental_subgroup_matrix",
+        "chromOOum_experimeqtal_subgroup_matix",
+        "chrovvium_experimentalTTsubgroup_matrix",
+        "chromium_experiFFental_subgroup_size_control",
+        "fh00omQuP_experimental_subgrup_size_control",
+        "chPomium_experimental_subgroup_size_control",
         "chromium_experimental_subgroup_size_control",
-        "chromium_experimental_subgroup_size_contol",
-        "chromium_exerimentlqqsubgroup_size_ontOol",
-        "chromium_experimental_subgroup_size_contr22l",
-        "chromiuXX_interzza_graphity",
-        "chromPum_internal_grapVite",
-        "chromum_internal_grCphitnn",
+        "chrmium_experimental_subgrssup_size77control",
+        "chromiubb_eCperimental_subRRroup_size_control",
+        "chromium_experimentalXXsubgroup_size_control",
+        "chromium_inqerOCCal_OOaphite",
+        "chrmium_Lntesnal_guaphite",
+        "chromium_internal_gXaphite",
         "chromium_internal_graphite",
-        "chromium_nqqeAAnal_gHHphite",
-        "chromium_interal_graphite",
-        "chrmium_intfrnl_graphitKK",
-        "chromiul_intenal_inggut_Pttachmets",
-        "chromium_internal_input_attachmens",
-        "cTTrom4uc_internal_input_attachmNnts",
+        "cromium_internal_graphite",
+        "chromiOm_inerqqal_gahite",
+        "chr22mium_internal_graphite",
+        "chzzomium0inteXXny_input_attachments",
+        "chromium_internalVVinpP_aitachments",
+        "chnnomium_internalCinput_attachmnts",
         "chromium_internal_input_attachments",
-        "phromium_77nternal_input_attalhments",
-        "chromium_inteNNzzl_npug_attachments",
-        "chromim_intXXrnal_inpuutatbbachments",
-        "cli_distances",
-        "cliK_diQa88es",
-        "cli9_qisances",
+        "chrHHmim_inqqernalinput_attachmentAA",
+        "chromium_internal_input_attchments",
+        "chromiuf_internal_input_KKachments",
+        "clipditaPcggs",
+        "clip_istances",
+        "4lip_disTTaNcec",
         "clip_distances",
-        "clip_dis11ances",
-        "clip_ds22Fniies",
-        "clip_distnce77",
-        "du2_source_blenNNing",
-        "dual_source_blenVVing",
-        "WW11al_sourcewblenFing",
+        "cli_distpp7lces",
+        "cgzip_dstancNs",
+        "uulip_bitanXXes",
+        "dual_soure_blending",
+        "dualsoQrce_bled88nK",
+        "dual_souce_blend9qg",
         "dual_source_blending",
-        "dual_souwwceblending",
-        "dual_sDurce_blending",
-        "duKl_souce_blending",
-        "1PP1h",
-        "f1",
-        "f1YY",
+        "dual_source_bl11nding",
+        "Fuaii_source_bl22ding",
+        "dual_soure_b77ending",
+        "NN6",
+        "VV16",
+        "Fw11W",
         "f16",
-        "1tkk",
-        "rr16",
-        "fWW6",
-        "prmitive_iYdex",
-        "primfLiqe_ndex",
-        "vvrmitive_22nduux",
+        "ww6",
+        "fD6",
+        "fK",
+        "primif11ve_inPPeh",
+        "prmitive_index",
+        "primitive_indeYY",
         "primitive_index",
-        "piitive_index",
-        "primtive_indeY",
-        "pEimityYYe_inde77",
-        "Muoodrous",
-        "subMMrous",
-        "subgrou55s",
+        "pHHimittveikkdex",
+        "rrrimitive_index",
+        "pWWimitive_ndssx",
+        "suYroups",
+        "sbgroqpL",
+        "sfbv22rouus",
         "subgroups",
-        "Ngroups",
-        "subgro33p",
-        "subgroup3",
+        "subgous",
+        "suYgrous",
+        "subyr77upEY",
     };
     for (auto _ : state) {
         for (auto* str : kStrings) {
diff --git a/src/tint/cmd/fuzz/wgsl/dictionary.txt b/src/tint/cmd/fuzz/wgsl/dictionary.txt
index f7d83b2..881f0e1 100644
--- a/src/tint/cmd/fuzz/wgsl/dictionary.txt
+++ b/src/tint/cmd/fuzz/wgsl/dictionary.txt
@@ -166,7 +166,6 @@
 "centroid"
 "chromium_disable_uniformity_analysis"
 "chromium_experimental_barycentric_coord"
-"chromium_experimental_dynamic_binding"
 "chromium_experimental_framebuffer_fetch"
 "chromium_experimental_pixel_local"
 "chromium_experimental_resource_table"
diff --git a/src/tint/lang/wgsl/enums.cc b/src/tint/lang/wgsl/enums.cc
index bdb9017..9ce47b9 100644
--- a/src/tint/lang/wgsl/enums.cc
+++ b/src/tint/lang/wgsl/enums.cc
@@ -54,9 +54,6 @@
     if (str == "chromium_experimental_barycentric_coord") {
         return Extension::kChromiumExperimentalBarycentricCoord;
     }
-    if (str == "chromium_experimental_dynamic_binding") {
-        return Extension::kChromiumExperimentalDynamicBinding;
-    }
     if (str == "chromium_experimental_framebuffer_fetch") {
         return Extension::kChromiumExperimentalFramebufferFetch;
     }
@@ -103,8 +100,6 @@
             return "chromium_disable_uniformity_analysis";
         case Extension::kChromiumExperimentalBarycentricCoord:
             return "chromium_experimental_barycentric_coord";
-        case Extension::kChromiumExperimentalDynamicBinding:
-            return "chromium_experimental_dynamic_binding";
         case Extension::kChromiumExperimentalFramebufferFetch:
             return "chromium_experimental_framebuffer_fetch";
         case Extension::kChromiumExperimentalPixelLocal:
diff --git a/src/tint/lang/wgsl/enums.h b/src/tint/lang/wgsl/enums.h
index aaad14f..a3de573 100644
--- a/src/tint/lang/wgsl/enums.h
+++ b/src/tint/lang/wgsl/enums.h
@@ -116,7 +116,6 @@
     kUndefined,
     kChromiumDisableUniformityAnalysis,
     kChromiumExperimentalBarycentricCoord,
-    kChromiumExperimentalDynamicBinding,
     kChromiumExperimentalFramebufferFetch,
     kChromiumExperimentalPixelLocal,
     kChromiumExperimentalResourceTable,
@@ -152,7 +151,6 @@
 constexpr std::string_view kExtensionStrings[] = {
     "chromium_disable_uniformity_analysis",
     "chromium_experimental_barycentric_coord",
-    "chromium_experimental_dynamic_binding",
     "chromium_experimental_framebuffer_fetch",
     "chromium_experimental_pixel_local",
     "chromium_experimental_resource_table",
@@ -171,7 +169,6 @@
 static constexpr Extension kAllExtensions[] = {
     Extension::kChromiumDisableUniformityAnalysis,
     Extension::kChromiumExperimentalBarycentricCoord,
-    Extension::kChromiumExperimentalDynamicBinding,
     Extension::kChromiumExperimentalFramebufferFetch,
     Extension::kChromiumExperimentalPixelLocal,
     Extension::kChromiumExperimentalResourceTable,
diff --git a/src/tint/lang/wgsl/enums_test.cc b/src/tint/lang/wgsl/enums_test.cc
index 4a4b8cf..5f2c79e 100644
--- a/src/tint/lang/wgsl/enums_test.cc
+++ b/src/tint/lang/wgsl/enums_test.cc
@@ -218,7 +218,6 @@
 static constexpr ExtensionCase kValidExtensionCases[] = {
     {"chromium_disable_uniformity_analysis", Extension::kChromiumDisableUniformityAnalysis},
     {"chromium_experimental_barycentric_coord", Extension::kChromiumExperimentalBarycentricCoord},
-    {"chromium_experimental_dynamic_binding", Extension::kChromiumExperimentalDynamicBinding},
     {"chromium_experimental_framebuffer_fetch", Extension::kChromiumExperimentalFramebufferFetch},
     {"chromium_experimental_pixel_local", Extension::kChromiumExperimentalPixelLocal},
     {"chromium_experimental_resource_table", Extension::kChromiumExperimentalResourceTable},
@@ -240,45 +239,42 @@
     {"chomium_experiooetal_barcentric_coord", Extension::kUndefined},
     {"chromium_experimentl_barycentzzc_coord", Extension::kUndefined},
     {"chromium_expperimental1barycentric_coori", Extension::kUndefined},
-    {"chromium_experimental_dyXXamic_binding", Extension::kUndefined},
-    {"chromi55m_eIIperimental_dynnami99_binding", Extension::kUndefined},
-    {"chroSSium_experiaaYntal_dynamic_binrrHHng", Extension::kUndefined},
-    {"chromum_xperimentalframebuffHrkkfetch", Extension::kUndefined},
-    {"chrojium_xRReimental_frgmebuffer_fetch", Extension::kUndefined},
-    {"hromium_experimental_ramebbffer_fetch", Extension::kUndefined},
-    {"chromium_experimentjl_pixel_local", Extension::kUndefined},
-    {"chroium_experimental_pixel_local", Extension::kUndefined},
-    {"cromium_qxperimental_pixl_local", Extension::kUndefined},
-    {"chromium_experimetal_resource_NNable", Extension::kUndefined},
-    {"chrvvmium_experimentl_resource_tble", Extension::kUndefined},
-    {"chromium_experiental_resource_taQQle", Extension::kUndefined},
-    {"hromium_exprimertal_subgroup_ffatrix", Extension::kUndefined},
-    {"chromium_ejperimental_subgroup_matrix", Extension::kUndefined},
-    {"chromium_expewim8n2al_subgroupNNmatrix", Extension::kUndefined},
-    {"chromium_experimental_sbgroup_size_control", Extension::kUndefined},
-    {"chromium_experimental_subgroup_size_conrrrol", Extension::kUndefined},
-    {"chromium_expGrimental_subgroup_size_control", Extension::kUndefined},
-    {"chromium_internalFFgraphite", Extension::kUndefined},
-    {"chroium_interEal_aphite", Extension::kUndefined},
-    {"chromirrm_inernal_graphite", Extension::kUndefined},
-    {"chromium_internal_inpu_attahments", Extension::kUndefined},
-    {"chomium_internDlXinputJJattachments", Extension::kUndefined},
-    {"ch8omium_interal_input_attacmets", Extension::kUndefined},
-    {"clip_ksa11ce", Extension::kUndefined},
-    {"cli_distances", Extension::kUndefined},
-    {"Jlp_distances", Extension::kUndefined},
-    {"dual_source_clending", Extension::kUndefined},
-    {"dual_sOurce_blending", Extension::kUndefined},
-    {"dualKKs__urce_blttvnding", Extension::kUndefined},
-    {"xx8", Extension::kUndefined},
-    {"__F", Extension::kUndefined},
-    {"f1q", Extension::kUndefined},
-    {"33r6mitive_Ondex", Extension::kUndefined},
-    {"p9imitiQQtt_6oodex", Extension::kUndefined},
-    {"prmit66ve_index", Extension::kUndefined},
-    {"zzxbO6rops", Extension::kUndefined},
-    {"subgyyoups", Extension::kUndefined},
-    {"HHugroZs", Extension::kUndefined},
+    {"chXXomium_experimental_framebuffer_fetch", Extension::kUndefined},
+    {"chr99mi55m_experiIIennnal_framebuffer_fetch", Extension::kUndefined},
+    {"chromiumSSerrperimenaaal_fraHHebuffer_fetYh", Extension::kUndefined},
+    {"homHumkkeperimental_pixel_local", Extension::kUndefined},
+    {"chromim_egperimental_pRRjel_loal", Extension::kUndefined},
+    {"cromiumbexperimental_pixellocal", Extension::kUndefined},
+    {"chromium_experimjntal_resource_table", Extension::kUndefined},
+    {"cromium_experimental_resource_table", Extension::kUndefined},
+    {"chromiu_qxperimetal_resource_table", Extension::kUndefined},
+    {"chromium_experimental_sNbgroup_matrix", Extension::kUndefined},
+    {"chromium_exprimenta_suvvgroup_matrix", Extension::kUndefined},
+    {"chromium_experimentaQQ_sbgroup_matrix", Extension::kUndefined},
+    {"chromium_expermental_subgour_sizff_control", Extension::kUndefined},
+    {"chromium_experimental_subgroup_size_cjntrol", Extension::kUndefined},
+    {"chro8ium_expe2imeNNtal_subgroup_size_cwwtrol", Extension::kUndefined},
+    {"chromium_internl_graphite", Extension::kUndefined},
+    {"chromium_irrternal_graphite", Extension::kUndefined},
+    {"cGromium_internal_graphite", Extension::kUndefined},
+    {"chromium_internal_input_attFFchments", Extension::kUndefined},
+    {"chromium_iEteral_input_attahment", Extension::kUndefined},
+    {"chrmium_internal_inprrt_attachments", Extension::kUndefined},
+    {"lip_distanes", Extension::kUndefined},
+    {"DXp_diJJtances", Extension::kUndefined},
+    {"cl8pdistane", Extension::kUndefined},
+    {"dul_okrc_blen11ing", Extension::kUndefined},
+    {"dua_source_blending", Extension::kUndefined},
+    {"duJl_source_blendig", Extension::kUndefined},
+    {"c16", Extension::kUndefined},
+    {"fO6", Extension::kUndefined},
+    {"_KKttvv", Extension::kUndefined},
+    {"pr8mitive_nxxex", Extension::kUndefined},
+    {"primitveFqqd__x", Extension::kUndefined},
+    {"priitive_indeqq", Extension::kUndefined},
+    {"subgr6u33O", Extension::kUndefined},
+    {"s96grQttupoo", Extension::kUndefined},
+    {"sugro66ps", Extension::kUndefined},
 };
 
 using ExtensionParseTest = testing::TestWithParam<ExtensionCase>;
@@ -338,63 +334,63 @@
 };
 
 static constexpr LanguageFeatureCase kInvalidLanguageFeatureCases[] = {
-    {"WWufer_viq4w", LanguageFeature::kUndefined},
-    {"buffeOO_iew", LanguageFeature::kUndefined},
-    {"bYohfr_vew", LanguageFeature::kUndefined},
-    {"cromiu_prit", LanguageFeature::kUndefined},
-    {"chomium_priFt", LanguageFeature::kUndefined},
-    {"whromiu_print", LanguageFeature::kUndefined},
-    {"chromium_tGsKingefferimental", LanguageFeature::kUndefined},
-    {"chrqmium_testKKng_experimental", LanguageFeature::kUndefined},
-    {"chromium_Fmmsting_experi3ental", LanguageFeature::kUndefined},
-    {"chromium_tesing_shipped", LanguageFeature::kUndefined},
-    {"chromqum_testing_shiped", LanguageFeature::kUndefined},
-    {"chromium_tbbstng_shipped", LanguageFeature::kUndefined},
-    {"chromium_testing_shiped_wth_killswiitch", LanguageFeature::kUndefined},
-    {"chomium_testing_shqpped_with_killswitOOh", LanguageFeature::kUndefined},
-    {"chromium_testing_sTTipvved_with_killswitch", LanguageFeature::kUndefined},
-    {"chromium_testing_unimpFFemented", LanguageFeature::kUndefined},
-    {"chrofium_testnQ_uP00mplemented", LanguageFeature::kUndefined},
-    {"chromium_testiPg_unimplemented", LanguageFeature::kUndefined},
-    {"chsomium_testing_unsafe77experimental", LanguageFeature::kUndefined},
-    {"chromium_tebbting_unsafe_expeCimentRRl", LanguageFeature::kUndefined},
-    {"chromium_testing_unsafe_experimentaXX", LanguageFeature::kUndefined},
-    {"fragmqntdepCCOOO", LanguageFeature::kUndefined},
-    {"frasment_eutL", LanguageFeature::kUndefined},
-    {"fXagment_depth", LanguageFeature::kUndefined},
-    {"immediate_address_spac", LanguageFeature::kUndefined},
-    {"immeiaOe_areqqs_space", LanguageFeature::kUndefined},
-    {"immed22ate_address_space", LanguageFeature::kUndefined},
-    {"packe0_zzy8_inXXeger_dot_produc", LanguageFeature::kUndefined},
-    {"packed_4x8_inteier_doVPproduct", LanguageFeature::kUndefined},
-    {"pacCed_x8_integenn_dot_product", LanguageFeature::kUndefined},
-    {"pintHH_qqomposite_aAAcess", LanguageFeature::kUndefined},
-    {"ointer_composite_access", LanguageFeature::kUndefined},
-    {"poiterKKcomposie_acfess", LanguageFeature::kUndefined},
-    {"readonly_ggnd_readwrite_sPorage_xturel", LanguageFeature::kUndefined},
-    {"readonly_and_readwrite_storage_texture", LanguageFeature::kUndefined},
-    {"readcnly_and_reaNwrite_stTTrag4_textures", LanguageFeature::kUndefined},
-    {"slzepp7_bining_array", LanguageFeature::kUndefined},
-    {"sgzed_bndigNNzarray", LanguageFeature::kUndefined},
-    {"sized_indibbg_XXrauu", LanguageFeature::kUndefined},
-    {"subgrou_id", LanguageFeature::kUndefined},
-    {"KbQrou88id", LanguageFeature::kUndefined},
-    {"sub9ropqid", LanguageFeature::kUndefined},
-    {"subgroup_uniform11ty", LanguageFeature::kUndefined},
-    {"subgr22ip_unifFrmity", LanguageFeature::kUndefined},
-    {"su77roup_uniformity", LanguageFeature::kUndefined},
-    {"texNNl_buf2rs", LanguageFeature::kUndefined},
-    {"texel_buffeVVs", LanguageFeature::kUndefined},
-    {"te11elwbWWfFers", LanguageFeature::kUndefined},
-    {"textue_and_samplerwwlet", LanguageFeature::kUndefined},
-    {"texture_aDd_sampler_let", LanguageFeature::kUndefined},
-    {"texture_aKdsampler_let", LanguageFeature::kUndefined},
-    {"unifPPf11_buffer_standard_lryouh", LanguageFeature::kUndefined},
-    {"uniform_buffer_stndard_layout", LanguageFeature::kUndefined},
-    {"uniform_buffer_standard_layouYY", LanguageFeature::kUndefined},
-    {"VnrtstricHHedkkpointer_paraeters", LanguageFeature::kUndefined},
-    {"urrrestricted_pointer_parameters", LanguageFeature::kUndefined},
-    {"unreWWtricted_pointess_paraeters", LanguageFeature::kUndefined},
+    {"bufxr66vieOz", LanguageFeature::kUndefined},
+    {"yyuffer_view", LanguageFeature::kUndefined},
+    {"uffeZZHiew", LanguageFeature::kUndefined},
+    {"cWW4romiuqprint", LanguageFeature::kUndefined},
+    {"chromium_rOOnt", LanguageFeature::kUndefined},
+    {"oohomYum_phnt", LanguageFeature::kUndefined},
+    {"chromium_testin_experienal", LanguageFeature::kUndefined},
+    {"chromium_tesFig_experimental", LanguageFeature::kUndefined},
+    {"chromium_testing_expewimentl", LanguageFeature::kUndefined},
+    {"chromiumtestinGKhippeff", LanguageFeature::kUndefined},
+    {"chrqKmium_testing_shipped", LanguageFeature::kUndefined},
+    {"cFromium_test3ng_shmmpped", LanguageFeature::kUndefined},
+    {"chromium_testing_shipped_wit_killswitch", LanguageFeature::kUndefined},
+    {"chromum_testing_shipqed_with_killswitch", LanguageFeature::kUndefined},
+    {"chromium_testing_shipped_with_killbbbtch", LanguageFeature::kUndefined},
+    {"chromiim_testing_unimplemnted", LanguageFeature::kUndefined},
+    {"chromiumOOtestqngunimplemented", LanguageFeature::kUndefined},
+    {"chromium_testivvg_unimplementTTd", LanguageFeature::kUndefined},
+    {"chroFFium_testing_unsafe_experimental", LanguageFeature::kUndefined},
+    {"chromiuftesting_uPsaQe_00xperimental", LanguageFeature::kUndefined},
+    {"chPomium_testing_unsafe_experimental", LanguageFeature::kUndefined},
+    {"fragment_77epsh", LanguageFeature::kUndefined},
+    {"RRrbbgment_Cepth", LanguageFeature::kUndefined},
+    {"fXXagment_depth", LanguageFeature::kUndefined},
+    {"imedOOatq_addrOOssCCspace", LanguageFeature::kUndefined},
+    {"imediLts_address_space", LanguageFeature::kUndefined},
+    {"immediate_addresX_space", LanguageFeature::kUndefined},
+    {"packed_4x8_intege_dot_product", LanguageFeature::kUndefined},
+    {"packed_48_intqqgO_do_product", LanguageFeature::kUndefined},
+    {"packed_4x8_integer_dot_produc22", LanguageFeature::kUndefined},
+    {"ointer_cympo0ite_aXzzcess", LanguageFeature::kUndefined},
+    {"poiiVVe_composiPe_access", LanguageFeature::kUndefined},
+    {"pointercompositennaccCss", LanguageFeature::kUndefined},
+    {"readonly_and_AeawriteqqstorageHHtextures", LanguageFeature::kUndefined},
+    {"readonly_and_readwrite_storge_textures", LanguageFeature::kUndefined},
+    {"reaonly_and_redwrite_storageKKtexturef", LanguageFeature::kUndefined},
+    {"szegg_bidPng_lrray", LanguageFeature::kUndefined},
+    {"sized_binding_arry", LanguageFeature::kUndefined},
+    {"sizec_biTT4ing_aNray", LanguageFeature::kUndefined},
+    {"pp7bgloup_id", LanguageFeature::kUndefined},
+    {"sNNbgzzp_id", LanguageFeature::kUndefined},
+    {"suubbgXXupid", LanguageFeature::kUndefined},
+    {"ubgroup_uniformity", LanguageFeature::kUndefined},
+    {"sbgKoup_88nfoQmity", LanguageFeature::kUndefined},
+    {"subgrou9_uniforqiy", LanguageFeature::kUndefined},
+    {"texel_buf11ers", LanguageFeature::kUndefined},
+    {"Fie22el_bffers", LanguageFeature::kUndefined},
+    {"teel_buffer77", LanguageFeature::kUndefined},
+    {"texturN_and_sampler_l2t", LanguageFeature::kUndefined},
+    {"textureVVand_sampler_let", LanguageFeature::kUndefined},
+    {"texture_Fnd_sa11WWler_wet", LanguageFeature::kUndefined},
+    {"wwniform_buffer_standad_layout", LanguageFeature::kUndefined},
+    {"uniform_buffer_sDandard_layout", LanguageFeature::kUndefined},
+    {"uniform_uffer_standarK_layout", LanguageFeature::kUndefined},
+    {"uhrestricted_PPoi11ter_parametrrf", LanguageFeature::kUndefined},
+    {"urestricted_pointer_parameters", LanguageFeature::kUndefined},
+    {"unrestricted_pointer_paYYameters", LanguageFeature::kUndefined},
 };
 
 using LanguageFeatureParseTest = testing::TestWithParam<LanguageFeatureCase>;
diff --git a/src/tint/lang/wgsl/inspector/inspector.cc b/src/tint/lang/wgsl/inspector/inspector.cc
index 321395f..2612740 100644
--- a/src/tint/lang/wgsl/inspector/inspector.cc
+++ b/src/tint/lang/wgsl/inspector/inspector.cc
@@ -714,8 +714,8 @@
                         return;
                     }
 
-                    // A texture of `sem::Call` means we're dealing with a `getBinding` or
-                    // `hasBinding` call. Skip it.
+                    // A texture of `sem::Call` means we're dealing with a `getResource` or
+                    // `hasResource` call. Skip it.
                     if (call->Arguments()[size_t(texture_index)]->Is<sem::Call>()) {
                         return;
                     }
diff --git a/src/tint/lang/wgsl/reader/parser/enable_directive_test.cc b/src/tint/lang/wgsl/reader/parser/enable_directive_test.cc
index d5a2584..e589f65 100644
--- a/src/tint/lang/wgsl/reader/parser/enable_directive_test.cc
+++ b/src/tint/lang/wgsl/reader/parser/enable_directive_test.cc
@@ -203,7 +203,7 @@
     // Error when unknown extension found
     EXPECT_TRUE(p->has_error());
     EXPECT_EQ(p->error(), R"(1:8: expected extension
-Possible values: 'chromium_disable_uniformity_analysis', 'chromium_experimental_barycentric_coord', 'chromium_experimental_dynamic_binding', 'chromium_experimental_framebuffer_fetch', 'chromium_experimental_pixel_local', 'chromium_experimental_resource_table', 'chromium_experimental_subgroup_matrix', 'chromium_experimental_subgroup_size_control', 'chromium_internal_graphite', 'chromium_internal_input_attachments', 'clip_distances', 'dual_source_blending', 'f16', 'primitive_index', 'subgroups')");
+Possible values: 'chromium_disable_uniformity_analysis', 'chromium_experimental_barycentric_coord', 'chromium_experimental_framebuffer_fetch', 'chromium_experimental_pixel_local', 'chromium_experimental_resource_table', 'chromium_experimental_subgroup_matrix', 'chromium_experimental_subgroup_size_control', 'chromium_internal_graphite', 'chromium_internal_input_attachments', 'clip_distances', 'dual_source_blending', 'f16', 'primitive_index', 'subgroups')");
     auto program = p->program();
     auto& ast = program.AST();
     EXPECT_EQ(ast.Enables().Length(), 0u);
diff --git a/src/tint/lang/wgsl/resolver/validator.cc b/src/tint/lang/wgsl/resolver/validator.cc
index 367e3d3..59bdf9e 100644
--- a/src/tint/lang/wgsl/resolver/validator.cc
+++ b/src/tint/lang/wgsl/resolver/validator.cc
@@ -465,15 +465,6 @@
         return false;
     }
 
-    if (t->Count()->Is<core::type::RuntimeArrayCount>()) {
-        if (!enabled_extensions_.Contains(wgsl::Extension::kChromiumExperimentalDynamicBinding)) {
-            AddError(source) << "use of a runtime " << style::Attribute("binding_array")
-                             << " requires enabling extension "
-                             << style::Code("chromium_experimental_dynamic_binding");
-            return false;
-        }
-    }
-
     if (!t->Count()->Is<core::type::ConstantArrayCount>()) {
         AddError(source) << "binding_array count must be a constant expression";
         return false;
diff --git a/src/tint/lang/wgsl/wgsl.def b/src/tint/lang/wgsl/wgsl.def
index 4f7cc48..baee42c 100644
--- a/src/tint/lang/wgsl/wgsl.def
+++ b/src/tint/lang/wgsl/wgsl.def
@@ -99,8 +99,6 @@
   chromium_experimental_subgroup_matrix
   // A Chromium-specific extension for barycentric_coord support
   chromium_experimental_barycentric_coord
-  // A Chromium-specific extension for dynamic binding
-  chromium_experimental_dynamic_binding
   // A Chromium-specific extension for resource table
   chromium_experimental_resource_table
   // A Chromium-specific extension for the attribute `subgroup_size`
diff --git a/test/tint/builtins/gen/gen.wgsl.tmpl b/test/tint/builtins/gen/gen.wgsl.tmpl
index 2bea147..1df4484 100644
--- a/test/tint/builtins/gen/gen.wgsl.tmpl
+++ b/test/tint/builtins/gen/gen.wgsl.tmpl
@@ -13,7 +13,7 @@
 
 {{- /* For each permutation of each overload of each function... */ -}}
 {{- range $I.Sem.Builtins -}}
-{{    if and (and (and (and (not (HasPrefix .Name "_")) (not (HasPrefix .Name "getBinding"))) (not (HasPrefix .Name "getResource"))) (not (HasPrefix .Name "bufferView"))) (not (HasPrefix .Name "bufferLength")) }}
+{{    if and (and (and (not (HasPrefix .Name "_")) (not (HasPrefix .Name "getResource"))) (not (HasPrefix .Name "bufferView"))) (not (HasPrefix .Name "bufferLength")) }}
 {{-     range .Overloads  -}}
 {{-       range $I.Permute . -}}
 {{- /*      Generate a ./literal/<function>/<permuataion-hash>.wgsl file using
@@ -326,7 +326,7 @@
 enable subgroups;
 {{    end -}}
 
-{{- /* Emit 'enable chromium_experimental_dynamic_binding' if required */ -}}
+{{- /* Emit 'enable chromium_experimental_resource_table' if required */ -}}
 {{-   if or (HasPrefix $builtin_name "getResource") (HasPrefix $builtin_name "hasResource")}}
 enable chromium_experimental_resource_table;
 {{    end -}}