Remove WGSL extension `chromium_internal_dual_source_blending`

This patch removes `chromium_internal_dual_source_blending` from
Dawn after the removal of its last reference in Skia.

This patch also removes the `[dawn]` tag on the blend factors with
`Src1` as the proposal to add dual source blending in WebGPU is
very close to be accepted.

Bug: chromium:341973423
Change-Id: Id661595b3528e1d0a63a62b30efcc94759fe5671
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/191761
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/src/dawn/dawn.json b/src/dawn/dawn.json
index 8188df3..9dc6374 100644
--- a/src/dawn/dawn.json
+++ b/src/dawn/dawn.json
@@ -556,7 +556,6 @@
     },
     "blend factor": {
         "category": "enum",
-        "_comment": "TODO(github.com/gpuweb/gpuweb/issues/4283): make sure the dual source blending names match the spec when it lands, and remove the tags.",
         "values": [
             {"value": 0, "name": "undefined", "jsrepr": "undefined"},
             {"value": 1, "name": "zero"},
@@ -572,10 +571,10 @@
             {"value": 11, "name": "src alpha saturated"},
             {"value": 12, "name": "constant"},
             {"value": 13, "name": "one minus constant"},
-            {"value": 14, "name": "src1", "tags": ["dawn"]},
-            {"value": 15, "name": "one minus src1", "tags": ["dawn"]},
-            {"value": 16, "name": "src1 alpha", "tags": ["dawn"]},
-            {"value": 17, "name": "one minus src1 alpha", "tags": ["dawn"]}
+            {"value": 14, "name": "src1"},
+            {"value": 15, "name": "one minus src1"},
+            {"value": 16, "name": "src1 alpha"},
+            {"value": 17, "name": "one minus src1 alpha"}
         ]
     },
     "blend operation": {
diff --git a/src/dawn/native/Device.cpp b/src/dawn/native/Device.cpp
index ad32632..713a6eb 100644
--- a/src/dawn/native/Device.cpp
+++ b/src/dawn/native/Device.cpp
@@ -1802,8 +1802,6 @@
         mWGSLAllowedFeatures.extensions.insert(tint::wgsl::Extension::kChromiumInternalGraphite);
     }
     if (mEnabledFeatures.IsEnabled(Feature::DualSourceBlending)) {
-        mWGSLAllowedFeatures.extensions.insert(
-            tint::wgsl::Extension::kChromiumInternalDualSourceBlending);
         mWGSLAllowedFeatures.extensions.insert(tint::wgsl::Extension::kDualSourceBlending);
     }
     if (mEnabledFeatures.IsEnabled(Feature::PixelLocalStorageNonCoherent) ||
diff --git a/src/tint/cmd/fuzz/wgsl/dictionary.txt b/src/tint/cmd/fuzz/wgsl/dictionary.txt
index 1adc488..4a0055d 100644
--- a/src/tint/cmd/fuzz/wgsl/dictionary.txt
+++ b/src/tint/cmd/fuzz/wgsl/dictionary.txt
@@ -160,7 +160,6 @@
 "chromium_experimental_pixel_local"
 "chromium_experimental_push_constant"
 "chromium_experimental_subgroups"
-"chromium_internal_dual_source_blending"
 "chromium_internal_graphite"
 "chromium_internal_input_attachments"
 "chromium_internal_relaxed_uniform_layout"
diff --git a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
index c71943c..513d70b 100644
--- a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
@@ -287,7 +287,6 @@
             Vector{
                 wgsl::Extension::kChromiumDisableUniformityAnalysis,
                 wgsl::Extension::kChromiumExperimentalPushConstant,
-                wgsl::Extension::kChromiumInternalDualSourceBlending,
                 wgsl::Extension::kChromiumInternalGraphite,
                 wgsl::Extension::kF16,
                 wgsl::Extension::kDualSourceBlending,
@@ -389,8 +388,7 @@
         requires_f16_extension_ = true;
     }
 
-    if (enable->HasExtension(wgsl::Extension::kChromiumInternalDualSourceBlending) ||
-        enable->HasExtension(wgsl::Extension::kDualSourceBlending)) {
+    if (enable->HasExtension(wgsl::Extension::kDualSourceBlending)) {
         requires_dual_source_blending_extension_ = true;
     }
 }
diff --git a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
index b70890f..f528764 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
@@ -396,7 +396,6 @@
                 wgsl::Extension::kChromiumExperimentalPixelLocal,
                 wgsl::Extension::kChromiumExperimentalPushConstant,
                 wgsl::Extension::kChromiumExperimentalSubgroups,
-                wgsl::Extension::kChromiumInternalDualSourceBlending,
                 wgsl::Extension::kChromiumInternalGraphite,
                 wgsl::Extension::kF16,
                 wgsl::Extension::kDualSourceBlending,
diff --git a/src/tint/lang/msl/writer/ast_printer/ast_printer.cc b/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
index 6fb4080..266d26d 100644
--- a/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
@@ -284,7 +284,6 @@
                 wgsl::Extension::kChromiumExperimentalFramebufferFetch,
                 wgsl::Extension::kChromiumExperimentalPixelLocal,
                 wgsl::Extension::kChromiumExperimentalSubgroups,
-                wgsl::Extension::kChromiumInternalDualSourceBlending,
                 wgsl::Extension::kChromiumInternalGraphite,
                 wgsl::Extension::kChromiumInternalRelaxedUniformLayout,
                 wgsl::Extension::kF16,
diff --git a/src/tint/lang/spirv/writer/ast_printer/builder.cc b/src/tint/lang/spirv/writer/ast_printer/builder.cc
index 668015c..890968d 100644
--- a/src/tint/lang/spirv/writer/ast_printer/builder.cc
+++ b/src/tint/lang/spirv/writer/ast_printer/builder.cc
@@ -280,7 +280,6 @@
                 wgsl::Extension::kChromiumDisableUniformityAnalysis,
                 wgsl::Extension::kChromiumExperimentalPushConstant,
                 wgsl::Extension::kChromiumExperimentalSubgroups,
-                wgsl::Extension::kChromiumInternalDualSourceBlending,
                 wgsl::Extension::kChromiumInternalGraphite,
                 wgsl::Extension::kChromiumInternalInputAttachments,
                 wgsl::Extension::kF16,
diff --git a/src/tint/lang/wgsl/extension.cc b/src/tint/lang/wgsl/extension.cc
index 395a0a4..25bd7ba 100644
--- a/src/tint/lang/wgsl/extension.cc
+++ b/src/tint/lang/wgsl/extension.cc
@@ -57,9 +57,6 @@
     if (str == "chromium_experimental_subgroups") {
         return Extension::kChromiumExperimentalSubgroups;
     }
-    if (str == "chromium_internal_dual_source_blending") {
-        return Extension::kChromiumInternalDualSourceBlending;
-    }
     if (str == "chromium_internal_graphite") {
         return Extension::kChromiumInternalGraphite;
     }
@@ -92,8 +89,6 @@
             return "chromium_experimental_push_constant";
         case Extension::kChromiumExperimentalSubgroups:
             return "chromium_experimental_subgroups";
-        case Extension::kChromiumInternalDualSourceBlending:
-            return "chromium_internal_dual_source_blending";
         case Extension::kChromiumInternalGraphite:
             return "chromium_internal_graphite";
         case Extension::kChromiumInternalInputAttachments:
diff --git a/src/tint/lang/wgsl/extension.h b/src/tint/lang/wgsl/extension.h
index dbf3ff7..ccf5429 100644
--- a/src/tint/lang/wgsl/extension.h
+++ b/src/tint/lang/wgsl/extension.h
@@ -51,7 +51,6 @@
     kChromiumExperimentalPixelLocal,
     kChromiumExperimentalPushConstant,
     kChromiumExperimentalSubgroups,
-    kChromiumInternalDualSourceBlending,
     kChromiumInternalGraphite,
     kChromiumInternalInputAttachments,
     kChromiumInternalRelaxedUniformLayout,
@@ -82,7 +81,6 @@
     "chromium_experimental_pixel_local",
     "chromium_experimental_push_constant",
     "chromium_experimental_subgroups",
-    "chromium_internal_dual_source_blending",
     "chromium_internal_graphite",
     "chromium_internal_input_attachments",
     "chromium_internal_relaxed_uniform_layout",
@@ -97,7 +95,6 @@
     Extension::kChromiumExperimentalPixelLocal,
     Extension::kChromiumExperimentalPushConstant,
     Extension::kChromiumExperimentalSubgroups,
-    Extension::kChromiumInternalDualSourceBlending,
     Extension::kChromiumInternalGraphite,
     Extension::kChromiumInternalInputAttachments,
     Extension::kChromiumInternalRelaxedUniformLayout,
diff --git a/src/tint/lang/wgsl/extension_bench.cc b/src/tint/lang/wgsl/extension_bench.cc
index 18731c7..c0f6ce0 100644
--- a/src/tint/lang/wgsl/extension_bench.cc
+++ b/src/tint/lang/wgsl/extension_bench.cc
@@ -80,48 +80,41 @@
         "chromium_exprimenal_ubgrouoos",
         "chrmiumexperimenzzal_subgroups",
         "chrmi11m_experppmeiita_subgroups",
-        "chromium_internal_dual_sourcXX_blending",
-        "chromium_internal_dual_99ou5IInce_blending",
-        "crrroSSium_internYlaadual_source_bHHending",
-        "chromium_internal_dual_source_blending",
-        "chromium_internakk_ualsourc_blendHng",
-        "chromium_inRRrnal_dujl_sourceblgnding",
-        "chromiuminternal_duab_source_blendin",
-        "chromiumjinternal_graphite",
-        "chromium_inernal_graphite",
-        "cromiu_internaq_graphite",
+        "chXXomium_internal_graphite",
+        "chromi55m_internnal_gra99hiIIe",
+        "chSSomiuY_internal_aarHHphrrte",
         "chromium_internal_graphite",
-        "chromium_intenalNNgraphite",
-        "chromiuminternal_gvaphite",
-        "chromium_internal_grphitQQ",
-        "chromirm_ffnternalinpt_attachments",
-        "chromium_internal_input_attachmenjs",
-        "chwwomiu2_interNNal_inpu_att8chments",
+        "kkhromium_nternal_rahHte",
+        "chromium_nRegnaj_graphite",
+        "chromium_ntebnal_gaphite",
+        "chromium_internal_input_atjachments",
+        "chromium_internal_inpt_attachments",
+        "chromium_nteral_iqput_attachments",
         "chromium_internal_input_attachments",
-        "chromium_internalinput_attachments",
-        "crrromium_internal_input_attachments",
-        "Ghromium_internal_input_attachments",
-        "chromium_internalFFrelaxed_uniform_layout",
-        "chromEum_internal_relaxed_unifrmlyout",
-        "chromium_internalrrrelaxd_uniform_layout",
+        "chromium_internal_input_aNNtachents",
+        "chromium_internalinpt_attavvhments",
+        "chromium_internal_inut_attacQQments",
+        "chromirm_intenal_rfflaxed_unifrm_layout",
+        "chromium_internal_jelaxed_uniform_layout",
+        "chromium_interna_relNNxed_uwwiform_lay82t",
         "chromium_internal_relaxed_uniform_layout",
-        "chromiuminternal_relaxed_uniform_layut",
-        "cXroDium_internal_rJJlaed_uniform_layout",
-        "chromium_int8nal_relaed_uniform_layut",
-        "dul_okrc_blen11ing",
-        "dua_source_blending",
-        "duJl_source_blendig",
+        "chromium_internal_relaxed_uniform_layut",
+        "chromium_internal_relaxed_rrniform_layout",
+        "chromium_internal_relaxedGuniform_layout",
+        "dual_source_blendFFng",
+        "dEl_surce_bending",
+        "drra_source_blending",
         "dual_source_blending",
-        "dual_source_clending",
-        "dual_sOurce_blending",
-        "dualKKs__urce_blttvnding",
-        "xx8",
-        "__F",
-        "f1q",
+        "dual_suce_blending",
+        "dul_DoXrcJJ_blending",
+        "dul_source_lening",
+        "k",
+        "16",
+        "J1",
         "f16",
-        "331O",
-        "ftt6QQ",
-        "666",
+        "c16",
+        "fO6",
+        "_KKttvv",
     };
     for (auto _ : state) {
         for (auto* str : kStrings) {
diff --git a/src/tint/lang/wgsl/extension_test.cc b/src/tint/lang/wgsl/extension_test.cc
index 0237bd5..2e2dba4 100644
--- a/src/tint/lang/wgsl/extension_test.cc
+++ b/src/tint/lang/wgsl/extension_test.cc
@@ -62,7 +62,6 @@
     {"chromium_experimental_pixel_local", Extension::kChromiumExperimentalPixelLocal},
     {"chromium_experimental_push_constant", Extension::kChromiumExperimentalPushConstant},
     {"chromium_experimental_subgroups", Extension::kChromiumExperimentalSubgroups},
-    {"chromium_internal_dual_source_blending", Extension::kChromiumInternalDualSourceBlending},
     {"chromium_internal_graphite", Extension::kChromiumInternalGraphite},
     {"chromium_internal_input_attachments", Extension::kChromiumInternalInputAttachments},
     {"chromium_internal_relaxed_uniform_layout", Extension::kChromiumInternalRelaxedUniformLayout},
@@ -86,24 +85,21 @@
     {"chromiuX_experimentl_sugggroups", Extension::kUndefined},
     {"chromiu_exuerimntal_XVbgroups", Extension::kUndefined},
     {"chromium_experimen3al_subgroups", Extension::kUndefined},
-    {"chromium_internal_dual_soErce_blending", Extension::kUndefined},
-    {"chromiuPP_internal_dual_sourceblenTTing", Extension::kUndefined},
-    {"chromim_internadd_dual_sxxurce_blending", Extension::kUndefined},
-    {"chromi44m_internal_graphite", Extension::kUndefined},
-    {"chromSSuVV_internal_graphite", Extension::kUndefined},
-    {"cRromium_nternR22_graphite", Extension::kUndefined},
-    {"chromium_int9rnaF_inpu_attachments", Extension::kUndefined},
-    {"chrmium_internal_input_attachments", Extension::kUndefined},
-    {"cOOromium_internVlHinput_ttachRRents", Extension::kUndefined},
-    {"chromium_internl_relaxyd_uniform_layout", Extension::kUndefined},
-    {"chromnnum_internrr77_Gelaxell_uniform_layout", Extension::kUndefined},
-    {"chromium_intern4l_relaxe00_uniform_layout", Extension::kUndefined},
-    {"dua_ource_bledoong", Extension::kUndefined},
-    {"dualsorce_blendzzng", Extension::kUndefined},
-    {"ua_sopiirce_bl11nding", Extension::kUndefined},
-    {"f1XX", Extension::kUndefined},
-    {"55199II", Extension::kUndefined},
-    {"frSSHHa", Extension::kUndefined},
+    {"chromium_internal_graphitE", Extension::kUndefined},
+    {"chromium_nternal_gTTPaphite", Extension::kUndefined},
+    {"chxxdomium_interal_graphite", Extension::kUndefined},
+    {"c44romium_internal_input_attachments", Extension::kUndefined},
+    {"chromium_internal_inputSSaVVtachments", Extension::kUndefined},
+    {"chrom22Rm_internal_input_atRchments", Extension::kUndefined},
+    {"chromium_int9rnal_relaxed_Fnifor_layout", Extension::kUndefined},
+    {"chrmium_internal_relaxed_uniform_layout", Extension::kUndefined},
+    {"VRhHomium_internal_relaxd_uniform_OOayout", Extension::kUndefined},
+    {"dual_souyce_bleding", Extension::kUndefined},
+    {"dualrrllnource_blendiG77", Extension::kUndefined},
+    {"dual00source_ble4ding", Extension::kUndefined},
+    {"5", Extension::kUndefined},
+    {"u16", Extension::kUndefined},
+    {"f", Extension::kUndefined},
 };
 
 using ExtensionParseTest = testing::TestWithParam<Case>;
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 3051677..604fefc 100644
--- a/src/tint/lang/wgsl/reader/parser/enable_directive_test.cc
+++ b/src/tint/lang/wgsl/reader/parser/enable_directive_test.cc
@@ -205,7 +205,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_framebuffer_fetch', 'chromium_experimental_pixel_local', 'chromium_experimental_push_constant', 'chromium_experimental_subgroups', 'chromium_internal_dual_source_blending', 'chromium_internal_graphite', 'chromium_internal_input_attachments', 'chromium_internal_relaxed_uniform_layout', 'dual_source_blending', 'f16')");
+Possible values: 'chromium_disable_uniformity_analysis', 'chromium_experimental_framebuffer_fetch', 'chromium_experimental_pixel_local', 'chromium_experimental_push_constant', 'chromium_experimental_subgroups', 'chromium_internal_graphite', 'chromium_internal_input_attachments', 'chromium_internal_relaxed_uniform_layout', 'dual_source_blending', 'f16')");
     auto program = p->program();
     auto& ast = program.AST();
     EXPECT_EQ(ast.Enables().Length(), 0u);
diff --git a/src/tint/lang/wgsl/reader/reader.cc b/src/tint/lang/wgsl/reader/reader.cc
index d446964..86bacef 100644
--- a/src/tint/lang/wgsl/reader/reader.cc
+++ b/src/tint/lang/wgsl/reader/reader.cc
@@ -83,7 +83,6 @@
             case tint::wgsl::Extension::kChromiumExperimentalFramebufferFetch:
             case tint::wgsl::Extension::kChromiumExperimentalPixelLocal:
             case tint::wgsl::Extension::kChromiumExperimentalPushConstant:
-            case tint::wgsl::Extension::kChromiumInternalDualSourceBlending:
             case tint::wgsl::Extension::kChromiumInternalRelaxedUniformLayout:
                 return true;
             default:
diff --git a/src/tint/lang/wgsl/resolver/validator.cc b/src/tint/lang/wgsl/resolver/validator.cc
index 3463f9d..aaa1259 100644
--- a/src/tint/lang/wgsl/resolver/validator.cc
+++ b/src/tint/lang/wgsl/resolver/validator.cc
@@ -2490,8 +2490,7 @@
 bool Validator::BlendSrcAttribute(const ast::BlendSrcAttribute* attr,
                                   ast::PipelineStage stage,
                                   const std::optional<bool> is_input) const {
-    if (!enabled_extensions_.Contains(wgsl::Extension::kChromiumInternalDualSourceBlending) &&
-        !enabled_extensions_.Contains(wgsl::Extension::kDualSourceBlending)) {
+    if (!enabled_extensions_.Contains(wgsl::Extension::kDualSourceBlending)) {
         AddError(attr->source) << "use of " << style::Attribute("@blend_src")
                                << " requires enabling extension "
                                << style::Code("dual_source_blending");
diff --git a/src/tint/lang/wgsl/wgsl.def b/src/tint/lang/wgsl/wgsl.def
index 770c6c7..240dcb8 100644
--- a/src/tint/lang/wgsl/wgsl.def
+++ b/src/tint/lang/wgsl/wgsl.def
@@ -85,10 +85,6 @@
   chromium_internal_input_attachments
   // A Chromium-specific extension that relaxes memory layout requirements for uniform storage.
   chromium_internal_relaxed_uniform_layout
-  // A Chromium-specific extension that enables dual source blending.
-  // TODO(chromium:341973423): Remove `chromium_internal_dual_source_blending` when it is totally
-  // replaced with `dual_source_blending`.
-  chromium_internal_dual_source_blending
   // A Chromium-specific extension that enables pixel local storage.
   // Cannot be used with chromium_experimental_framebuffer_fetch
   chromium_experimental_pixel_local
diff --git a/test/tint/extensions/dual_source_blending/input_output.wgsl b/test/tint/extensions/dual_source_blending/input_output.wgsl
index ba9bb95..89577e0 100644
--- a/test/tint/extensions/dual_source_blending/input_output.wgsl
+++ b/test/tint/extensions/dual_source_blending/input_output.wgsl
@@ -1,4 +1,4 @@
-enable chromium_internal_dual_source_blending;
+enable dual_source_blending;
 
 struct FragInput {
   @location(0) a : vec4<f32>,
diff --git a/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.wgsl b/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.wgsl
index d6c9013..529c73c 100644
--- a/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.wgsl
+++ b/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-enable chromium_internal_dual_source_blending;
+enable dual_source_blending;
 
 struct FragInput {
   @location(0)
diff --git a/test/tint/extensions/dual_source_blending/output.wgsl b/test/tint/extensions/dual_source_blending/output.wgsl
index 3ffc701..4477ac4 100644
--- a/test/tint/extensions/dual_source_blending/output.wgsl
+++ b/test/tint/extensions/dual_source_blending/output.wgsl
@@ -1,4 +1,4 @@
-enable chromium_internal_dual_source_blending;
+enable dual_source_blending;
 
 struct FragOutput {
   @location(0) @blend_src(0) color : vec4<f32>,
diff --git a/test/tint/extensions/dual_source_blending/output.wgsl.expected.wgsl b/test/tint/extensions/dual_source_blending/output.wgsl.expected.wgsl
index e2a9123..2ef1b88 100644
--- a/test/tint/extensions/dual_source_blending/output.wgsl.expected.wgsl
+++ b/test/tint/extensions/dual_source_blending/output.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-enable chromium_internal_dual_source_blending;
+enable dual_source_blending;
 
 struct FragOutput {
   @location(0) @blend_src(0)