Commit eb3d0c4c authored by Kent Tamura's avatar Kent Tamura Committed by Commit Bot

Add a counter for ::-webkit-details-marker in stylesheets

This CL has no user-visible behavior changes.

Bug: 590014
Change-Id: I01eeafd34fe9dd02431501d44676e418b547a300
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2262358
Auto-Submit: Kent Tamura <tkent@chromium.org>
Reviewed-by: default avatarYoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#781754}
parent 5977e50b
...@@ -2671,6 +2671,7 @@ enum WebFeature { ...@@ -2671,6 +2671,7 @@ enum WebFeature {
kContentVisibilityHiddenMatchable = 3334, kContentVisibilityHiddenMatchable = 3334,
kInlineOverflowAutoWithInlineEndPadding = 3335, kInlineOverflowAutoWithInlineEndPadding = 3335,
kInlineOverflowScrollWithInlineEndPadding = 3336, kInlineOverflowScrollWithInlineEndPadding = 3336,
kCSSSelectorPseudoWebKitDetailsMarker = 3337,
// Add new features immediately above this line. Don't change assigned // Add new features immediately above this line. Don't change assigned
// numbers of any item, and don't reuse removed slots. // numbers of any item, and don't reuse removed slots.
......
...@@ -58,6 +58,7 @@ ...@@ -58,6 +58,7 @@
#include "third_party/blink/renderer/core/html/html_slot_element.h" #include "third_party/blink/renderer/core/html/html_slot_element.h"
#include "third_party/blink/renderer/core/html/media/html_video_element.h" #include "third_party/blink/renderer/core/html/media/html_video_element.h"
#include "third_party/blink/renderer/core/html/parser/html_parser_idioms.h" #include "third_party/blink/renderer/core/html/parser/html_parser_idioms.h"
#include "third_party/blink/renderer/core/html/shadow/shadow_element_names.h"
#include "third_party/blink/renderer/core/html/track/vtt/vtt_element.h" #include "third_party/blink/renderer/core/html/track/vtt/vtt_element.h"
#include "third_party/blink/renderer/core/html_names.h" #include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/page/focus_controller.h" #include "third_party/blink/renderer/core/page/focus_controller.h"
...@@ -1407,9 +1408,18 @@ bool SelectorChecker::CheckPseudoElement(const SelectorCheckingContext& context, ...@@ -1407,9 +1408,18 @@ bool SelectorChecker::CheckPseudoElement(const SelectorCheckingContext& context,
} }
return false; return false;
case CSSSelector::kPseudoWebKitCustomElement: { case CSSSelector::kPseudoWebKitCustomElement: {
if (ShadowRoot* root = element.ContainingShadowRoot()) if (ShadowRoot* root = element.ContainingShadowRoot()) {
return root->IsUserAgent() && if (!root->IsUserAgent())
element.ShadowPseudoId() == selector.Value(); return false;
if (element.ShadowPseudoId() != selector.Value())
return false;
if (!is_ua_rule_ &&
selector.Value() == shadow_element_names::WebKitDetailsMarker()) {
UseCounter::Count(element.GetDocument(),
WebFeature::kCSSSelectorPseudoWebKitDetailsMarker);
}
return true;
}
return false; return false;
} }
case CSSSelector::kPseudoBlinkInternalElement: case CSSSelector::kPseudoBlinkInternalElement:
......
...@@ -31,13 +31,14 @@ ...@@ -31,13 +31,14 @@
#include "third_party/blink/renderer/core/html/shadow/details_marker_control.h" #include "third_party/blink/renderer/core/html/shadow/details_marker_control.h"
#include "third_party/blink/renderer/core/html/html_summary_element.h" #include "third_party/blink/renderer/core/html/html_summary_element.h"
#include "third_party/blink/renderer/core/html/shadow/shadow_element_names.h"
#include "third_party/blink/renderer/core/layout/layout_details_marker.h" #include "third_party/blink/renderer/core/layout/layout_details_marker.h"
namespace blink { namespace blink {
DetailsMarkerControl::DetailsMarkerControl(Document& document) DetailsMarkerControl::DetailsMarkerControl(Document& document)
: HTMLDivElement(document) { : HTMLDivElement(document) {
SetShadowPseudoId(AtomicString("-webkit-details-marker")); SetShadowPseudoId(shadow_element_names::WebKitDetailsMarker());
} }
LayoutObject* DetailsMarkerControl::CreateLayoutObject(const ComputedStyle&, LayoutObject* DetailsMarkerControl::CreateLayoutObject(const ComputedStyle&,
......
...@@ -104,6 +104,11 @@ const AtomicString& TextFieldContainer() { ...@@ -104,6 +104,11 @@ const AtomicString& TextFieldContainer() {
return name; return name;
} }
const AtomicString& WebKitDetailsMarker() {
DEFINE_STATIC_LOCAL(AtomicString, name, ("-webkit-details-marker"));
return name;
}
const AtomicString& FileUploadButton() { const AtomicString& FileUploadButton() {
DEFINE_STATIC_LOCAL(AtomicString, name, ("file-upload-button")); DEFINE_STATIC_LOCAL(AtomicString, name, ("file-upload-button"));
return name; return name;
......
...@@ -40,6 +40,7 @@ namespace shadow_element_names { ...@@ -40,6 +40,7 @@ namespace shadow_element_names {
const AtomicString& DetailsContent(); const AtomicString& DetailsContent();
const AtomicString& DetailsSummary(); const AtomicString& DetailsSummary();
// An ID attribute value for a details marker.
const AtomicString& DetailsMarker(); const AtomicString& DetailsMarker();
const AtomicString& DateTimeEdit(); const AtomicString& DateTimeEdit();
CORE_EXPORT const AtomicString& SpinButton(); CORE_EXPORT const AtomicString& SpinButton();
...@@ -52,6 +53,8 @@ const AtomicString& PasswordRevealButton(); ...@@ -52,6 +53,8 @@ const AtomicString& PasswordRevealButton();
CORE_EXPORT const AtomicString& SliderThumb(); CORE_EXPORT const AtomicString& SliderThumb();
const AtomicString& SliderTrack(); const AtomicString& SliderTrack();
const AtomicString& TextFieldContainer(); const AtomicString& TextFieldContainer();
// Pseudo element name ::-webkit-details-marker
const AtomicString& WebKitDetailsMarker();
const AtomicString& FileUploadButton(); const AtomicString& FileUploadButton();
const AtomicString& OptGroupLabel(); const AtomicString& OptGroupLabel();
......
...@@ -28070,6 +28070,7 @@ Called by update_use_counter_feature_enum.py.--> ...@@ -28070,6 +28070,7 @@ Called by update_use_counter_feature_enum.py.-->
<int value="3334" label="ContentVisibilityHiddenMatchable"/> <int value="3334" label="ContentVisibilityHiddenMatchable"/>
<int value="3335" label="InlineOverflowAutoWithInlineEndPadding"/> <int value="3335" label="InlineOverflowAutoWithInlineEndPadding"/>
<int value="3336" label="InlineOverflowScrollWithInlineEndPadding"/> <int value="3336" label="InlineOverflowScrollWithInlineEndPadding"/>
<int value="3337" label="CSSSelectorPseudoWebKitDetailsMarker"/>
</enum> </enum>
<enum name="FeaturePolicyAllowlistType"> <enum name="FeaturePolicyAllowlistType">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment