New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 829713 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 17
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Determine the fate of experimental '>>>' combinator

Project Member Reported by kochi@chromium.org, Apr 6 2018

Issue description

The '>>>' combinator, which is a replacement for '/deep/'
combinator for piercing all the shadow DOM boundaries to style,
which was implemented behind the flag in Blink.

It seems the feature looks never used anywhere,
https://www.chromestatus.com/metrics/feature/timeline/popularity/1691

The feature is not well accepted by other vendors e.g.:
https://github.com/w3c/csswg-drafts/issues/640#issuecomment-367293984

Even the spec is still there in CSS 
https://drafts.csswg.org/css-scoping/#deep-combinator

The removal from the spec is proposed at
https://github.com/w3c/csswg-drafts/pull/2511
 

Comment 1 by kochi@chromium.org, Apr 6 2018

We haven't heard any active request to make it available without the
experimental flag.
> It seems the feature looks never used anywhere,
> https://www.chromestatus.com/metrics/feature/timeline/popularity/1691

This feature is behind the flag, so you can't justify the removal by the usage.

I don't object to the removal, but your reason sounds wrong to me.
Have we asked feedback, after we implemented it behind a flag?

For a feature behind a flag, the feedback is more important than the usage.

Comment 3 by kochi@chromium.org, Apr 6 2018

It was implemented in late 2016 (at  issue 633007 ).

As far as I remember the request from lighthouse/devtools is the
only feedback since then.
https://github.com/ChromeDevTools/devtools-protocol/issues/19

The use case when originally Google proposed was i18n (e.g. finding
a specific ID or class that needs changing the text according to the
current locale), but it didn't persuade well about other vendors.

Going forward, I think it should be discussed as a webdriver API
or devtools protocol, not web-facing API.

For web-facing API, considering the opposition from other vendors,
we don't have a good reason to keep it in Blink in the current form.
Thanks. Please make sure to record their feedback in this issue.

Unless that, I'm afraid that people will complain about the removal.
They might think that we are removing a feature without asking/hearing feedback.



Also, please make sure to ping relevant stakeholders with a link to this issue, letting them know that we are removing this feature.

Comment 6 by kochi@chromium.org, Apr 9 2018

I've commented on all relevant github issues.

Will wait for a few days for the response for landing the change.

Could you share links to all github issues for the record?

We should know why this experiment didn't work well, and why they didn't give us feedback.

e.g.
- They didn't know this feature is available behind the flag.
- They knew this feature is available behind the flag, but they din't try to use it for some reasons.
- They tried to use it, but they didn't give us feedback, for some reasons, 
- Any other pitfalls are happening?
  

Comment 8 by kochi@chromium.org, Apr 9 2018

Here are the comments for the record:
https://github.com/w3c/webcomponents/issues/78#issuecomment-367294253
https://github.com/w3c/csswg-drafts/issues/640#issuecomment-379176645
https://github.com/ChromeDevTools/devtools-protocol/issues/19#issuecomment-379177109

With regards to spec, webcomponents#78 and csswg-drafts#640 should include
all feedback from stakeholders e.g.
https://github.com/w3c/csswg-drafts/issues/640#issuecomment-290952748
(for accessibility use case).

And the developer feedback was private mail with reference to
devtools-protocol#19.

I'd say it was a low-hanging fruits to *implement* behind the flag, but was
not a good way to gather feedback or attention to the feature, we should
have done the other way, like implement what we get more interest from developers to get it used and get more realistic feedback.

Let me send an "intent to remove" just in case for last-minute feedback.

Comment 9 by kochi@chromium.org, Apr 9 2018

Summary: Determine the fate of experimental '>>>' combinator (was: Remove experimental '>>>' combinator)
Sent a request for comment to blink-dev
https://groups.google.com/a/chromium.org/d/topic/blink-dev/ScMLN_Hj52E/discussion
and will contact anyone who had interest in the discussion in the past.

Comment 11 by kochi@chromium.org, Jun 13 2018

The summary of the comments sent to blink-dev:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/ScMLN_Hj52E/M2PjkIZUEAAJ

Comment 12 by kochi@chromium.org, Jun 13 2018

Remaining actions are (quote from the summary above):

- propose addition to webdriver
- propose treewalker extension
- remove the under-the-flag `>>>` support from Blink
Project Member

Comment 14 by bugdroid1@chromium.org, Jul 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c81707c532183d4e6b878041964e85b0441b9f50

commit c81707c532183d4e6b878041964e85b0441b9f50
Author: Takayoshi Kochi <kochi@chromium.org>
Date: Tue Jul 17 10:32:17 2018

Remove '>>>' (shadow-piercing combinator)

This was implemented in  crbug.com/633007  but was never adopted
by any standards, and could not get much attention from developers
except for testing use cases.

As this was dismissed from the standard, we have to pursue the
testing use cases in other forms.

Bug:  829713 
Change-Id: I2b053a15e96d68ff5a8c632e65b7b2feefb15dab
Reviewed-on: https://chromium-review.googlesource.com/999453
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Takayoshi Kochi <kochi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575599}
[modify] https://crrev.com/c81707c532183d4e6b878041964e85b0441b9f50/third_party/WebKit/LayoutTests/shadow-dom/query-selector.html
[delete] https://crrev.com/6ada5346b4eeceb41fda9e04e40f3026a5bf6931/third_party/WebKit/LayoutTests/shadow-dom/shadow-piercing-descendant-combinator-in-static-profile.html
[delete] https://crrev.com/6ada5346b4eeceb41fda9e04e40f3026a5bf6931/third_party/WebKit/LayoutTests/shadow-dom/shadow-piercing-descendant-combinator.html
[modify] https://crrev.com/c81707c532183d4e6b878041964e85b0441b9f50/third_party/blink/public/platform/web_feature.mojom
[modify] https://crrev.com/c81707c532183d4e6b878041964e85b0441b9f50/third_party/blink/renderer/core/css/css_selector.cc
[modify] https://crrev.com/c81707c532183d4e6b878041964e85b0441b9f50/third_party/blink/renderer/core/css/css_selector.h
[modify] https://crrev.com/c81707c532183d4e6b878041964e85b0441b9f50/third_party/blink/renderer/core/css/parser/css_selector_parser.cc
[modify] https://crrev.com/c81707c532183d4e6b878041964e85b0441b9f50/third_party/blink/renderer/core/css/parser/css_selector_parser_test.cc
[modify] https://crrev.com/c81707c532183d4e6b878041964e85b0441b9f50/third_party/blink/renderer/core/css/selector_checker.cc
[modify] https://crrev.com/c81707c532183d4e6b878041964e85b0441b9f50/third_party/blink/renderer/core/css/selector_filter.cc

Status: Fixed (was: Assigned)

Sign in to add a comment