webgpu: Remove WGSLFeatureName enum in IDL

Spec issue: https://github.com/gpuweb/gpuweb/issues/5057

Change-Id: Ifb9698a5304b48a49c93410cbff293809fde50eb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6218233
Commit-Queue: Fr <beaufort.francois@gmail.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1414860}
diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni
index 62b8dca..7d331a6 100644
--- a/third_party/blink/renderer/bindings/generated_in_modules.gni
+++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
@@ -1886,8 +1886,6 @@
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_webgl_power_preference.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_well_known_directory.cc",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_well_known_directory.h",
-  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_wgsl_feature_name.cc",
-  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_wgsl_feature_name.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_write_command_type.cc",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_write_command_type.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_depth_data_format.cc",
diff --git a/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc b/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc
index 0799a37..3ba7694 100644
--- a/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc
+++ b/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc
@@ -32,7 +32,6 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_texture_view_dimension.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_format.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_step_mode.h"
-#include "third_party/blink/renderer/bindings/modules/v8/v8_wgsl_feature_name.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 
 namespace blink {
@@ -1026,50 +1025,30 @@
   NOTREACHED();
 }
 
-bool FromDawnEnum(wgpu::WGSLLanguageFeatureName dawn_enum,
-                  V8WGSLFeatureName* result) {
+const char* FromDawnEnum(wgpu::WGSLLanguageFeatureName dawn_enum) {
   switch (dawn_enum) {
     case wgpu::WGSLLanguageFeatureName::ReadonlyAndReadwriteStorageTextures:
-      *result = V8WGSLFeatureName(
-          V8WGSLFeatureName::Enum::kReadonlyAndReadwriteStorageTextures);
-      return true;
+      return "readonly_and_readwrite_storage_textures";
     case wgpu::WGSLLanguageFeatureName::Packed4x8IntegerDotProduct:
-      *result = V8WGSLFeatureName(
-          V8WGSLFeatureName::Enum::kPacked4X8IntegerDotProduct);
-      return true;
+      return "packed_4x8_integer_dot_product";
     case wgpu::WGSLLanguageFeatureName::UnrestrictedPointerParameters:
-      *result = V8WGSLFeatureName(
-          V8WGSLFeatureName::Enum::kUnrestrictedPointerParameters);
-      return true;
+      return "unrestricted_pointer_parameters";
     case wgpu::WGSLLanguageFeatureName::PointerCompositeAccess:
-      *result =
-          V8WGSLFeatureName(V8WGSLFeatureName::Enum::kPointerCompositeAccess);
-      return true;
+      return "pointer_composite_access";
 
+    // Non-standard.
     case wgpu::WGSLLanguageFeatureName::ChromiumTestingUnimplemented:
-      *result = V8WGSLFeatureName(
-          V8WGSLFeatureName::Enum::kChromiumTestingUnimplemented);
-      return true;
+      return "chromium_testing_unimplemented";
     case wgpu::WGSLLanguageFeatureName::ChromiumTestingUnsafeExperimental:
-      *result = V8WGSLFeatureName(
-          V8WGSLFeatureName::Enum::kChromiumTestingUnsafeExperimental);
-      return true;
+      return "chromium_testing_unsafe_experimental";
     case wgpu::WGSLLanguageFeatureName::ChromiumTestingExperimental:
-      *result = V8WGSLFeatureName(
-          V8WGSLFeatureName::Enum::kChromiumTestingExperimental);
-      return true;
+      return "chromium_testing_experimental";
     case wgpu::WGSLLanguageFeatureName::ChromiumTestingShippedWithKillswitch:
-      *result = V8WGSLFeatureName(
-          V8WGSLFeatureName::Enum::kChromiumTestingShippedWithKillswitch);
-      return true;
+      return "chromium_testing_shipped_with_killswitch";
     case wgpu::WGSLLanguageFeatureName::ChromiumTestingShipped:
-      *result =
-          V8WGSLFeatureName(V8WGSLFeatureName::Enum::kChromiumTestingShipped);
-      return true;
-
-    default:
-      return false;
+      return "chromium_testing_shipped";
   }
+  return nullptr;
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.h b/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.h
index 0121d367..ea72491 100644
--- a/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.h
+++ b/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.h
@@ -32,7 +32,6 @@
 class V8GPUFrontFace;
 class V8GPUTextureAspect;
 class V8GPUErrorFilter;
-class V8WGSLFeatureName;
 enum class PredefinedColorSpace;
 
 // Convert WebGPU bitfield values to Dawn enums. These have the same value.
@@ -78,8 +77,7 @@
 V8GPUBufferMapState FromDawnEnum(wgpu::BufferMapState dawn_enum);
 const char* FromDawnEnum(wgpu::BackendType dawn_enum);
 const char* FromDawnEnum(wgpu::AdapterType dawn_enum);
-[[nodiscard]] bool FromDawnEnum(wgpu::WGSLLanguageFeatureName dawn_enum,
-                                V8WGSLFeatureName* result);
+const char* FromDawnEnum(wgpu::WGSLLanguageFeatureName dawn_enum);
 
 }  // namespace blink
 
diff --git a/third_party/blink/renderer/modules/webgpu/wgsl_language_features.cc b/third_party/blink/renderer/modules/webgpu/wgsl_language_features.cc
index d116b601..272c0b3 100644
--- a/third_party/blink/renderer/modules/webgpu/wgsl_language_features.cc
+++ b/third_party/blink/renderer/modules/webgpu/wgsl_language_features.cc
@@ -11,10 +11,8 @@
 WGSLLanguageFeatures::WGSLLanguageFeatures(
     const std::vector<wgpu::WGSLLanguageFeatureName>& features) {
   for (const auto& dawn_feature : features) {
-    V8WGSLFeatureName v8_feature{
-        V8WGSLFeatureName::Enum::kPointerCompositeAccess};
-    if (FromDawnEnum(dawn_feature, &v8_feature)) {
-      features_.insert(v8_feature.AsString());
+    if (const char* feature = FromDawnEnum(dawn_feature)) {
+      features_.insert(feature);
     }
   }
 }
diff --git a/third_party/blink/renderer/modules/webgpu/wgsl_language_features.h b/third_party/blink/renderer/modules/webgpu/wgsl_language_features.h
index 9f9c347..f2a161ccb 100644
--- a/third_party/blink/renderer/modules/webgpu/wgsl_language_features.h
+++ b/third_party/blink/renderer/modules/webgpu/wgsl_language_features.h
@@ -9,7 +9,6 @@
 
 #include "third_party/blink/renderer/bindings/core/v8/iterable.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_sync_iterator_wgsl_language_features.h"
-#include "third_party/blink/renderer/bindings/modules/v8/v8_wgsl_feature_name.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/graphics/gpu/webgpu_cpp.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/modules/webgpu/wgsl_language_features.idl b/third_party/blink/renderer/modules/webgpu/wgsl_language_features.idl
index 018830e..af482a2 100644
--- a/third_party/blink/renderer/modules/webgpu/wgsl_language_features.idl
+++ b/third_party/blink/renderer/modules/webgpu/wgsl_language_features.idl
@@ -4,20 +4,6 @@
 
 // https://gpuweb.github.io/gpuweb/
 
-enum WGSLFeatureName {
-    "readonly_and_readwrite_storage_textures",
-    "packed_4x8_integer_dot_product",
-    "unrestricted_pointer_parameters",
-    "pointer_composite_access",
-
-    // Non-standard.
-    "chromium_testing_unimplemented",
-    "chromium_testing_unsafe_experimental",
-    "chromium_testing_experimental",
-    "chromium_testing_shipped_with_killswitch",
-    "chromium_testing_shipped",
-};
-
 [
     Exposed=(Window, Worker),
     SecureContext