Add use counter for declarative Shadow DOM

Bug: 1063153
Change-Id: I4c71cd32b1b4183c0f671729a8bc0199a2a75e57
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2122244
Auto-Submit: Mason Freed <masonfreed@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#753927}
diff --git a/third_party/blink/public/mojom/web_feature/web_feature.mojom b/third_party/blink/public/mojom/web_feature/web_feature.mojom
index 56979bc..b899875 100644
--- a/third_party/blink/public/mojom/web_feature/web_feature.mojom
+++ b/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -2531,6 +2531,7 @@
   kThirdPartyCacheStorage = 3193,
   kThirdPartyLocalStorage = 3194,
   kThirdPartySessionStorage = 3195,
+  kDeclarativeShadowRoot = 3196,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/renderer/core/html/parser/html_tree_builder.cc b/third_party/blink/renderer/core/html/parser/html_tree_builder.cc
index 649b046..425df08 100644
--- a/third_party/blink/renderer/core/html/parser/html_tree_builder.cc
+++ b/third_party/blink/renderer/core/html/parser/html_tree_builder.cc
@@ -930,7 +930,8 @@
         DCHECK(template_stack_item->IsElementNode());
         DCHECK(shadow_host_stack_item);
         DCHECK(shadow_host_stack_item->IsElementNode());
-        // TODO(1063153): Add a use counter here.
+        UseCounter::Count(shadow_host_stack_item->GetElement()->GetDocument(),
+                          WebFeature::kDeclarativeShadowRoot);
         bool delegates_focus = template_stack_item->GetAttributeItem(
             html_names::kShadowrootdelegatesfocusAttr);
         // TODO(1063157): Add an attribute for imperative slot assignment.
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 3f5eaba..4b280b5 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -26859,6 +26859,7 @@
   <int value="3193" label="ThirdPartyCacheStorage"/>
   <int value="3194" label="ThirdPartyLocalStorage"/>
   <int value="3195" label="ThirdPartySessionStorage"/>
+  <int value="3196" label="DeclarativeShadowRoot"/>
 </enum>
 
 <enum name="FeaturePolicyAllowlistType">