https://crrev.com/c/1414536 got ::afer and ::before working with ::part but ::placeholder doesn't. I suspect it's because placeholder rules go into their own bucket
case CSSSelector::kPseudoPlaceholder:
LOG(ERROR) << "Adding to placeholder rules";
AddToRuleSet(AtomicString("-webkit-input-placeholder"),
EnsurePendingRules()->shadow_pseudo_element_rules,
rule_data);
and not into the part_pseudo_rules_ bucket.
I'm not sure what's an elegant way to address this. Do we need to add another HeapVector just for this special case? If we want to support any other custom pseudos with ::part then another another CompactRuleMap could make sense but do we want to support any others?
F