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">