Intent to deprecate and Remove: currentView, useCurrentView and SVGViewSpec
Primary eng (and PM) emails
Summary
Deprecate and Remove the SVGViewSpec interface and currentView, useCurrentView of SVGSVGElement Interface.
Motivation
It has been removed from the SVG 2.0 specification:
https://github.com/w3c/svgwg/commit/4c26fd36937a65192024208d85c144a21071b057
https://www.w3.org/Graphics/SVG/WG/track/actions/3800?changelog
Compatibility Risk
UseCounter is indicating very low usage. (only zeros reported)
Usage information from UseCounter
https://www.chromestatus.com/metrics/feature/timeline/popularity/1036
OWP launch tracking bug
No OWP launch tracking bug but there is:
https://bugs.chromium.org/p/chromium/issues/detail?id=629445
Entry on the feature dashboard
https://www.chromestatus.com/features/4511711998509056
Requesting approval to remove too?
Yes
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
The SVGSVGElementFragmentSVGViewElement counter in SVGSVGElement::inheritViewAttributes is also relevant, measuring how often the view comes from an SVGViewElement. I suspect that removing currentView, useCurrentView and all of SVGViewSpec (not just the IDL file) would result in SVGViewElement becoming entirely unused or at least useless. But it's still in the SVG spec.
Yes, I left it hanging, sorry.I'm trying to understand what group of things makes sense to remove together and the motivation for removing this from the SVG spec. I end up at https://www.w3.org/Graphics/SVG/WG/track/actions/3800 but am unable to find more context.
What is suspect to me in https://codereview.chromium.org/2163213007/ is that only surface-level changes were made, the only internal simplifications are some helpers in SVGViewSpec.cpp that went away. This doesn't seems like a reasonable end state, so I'm wondering if there's a next step where the real wins are?
I was interested to find that Gecko has only useCurrentView but no currentView attribute, while Edge doesn't have either, and neither has the SVGViewSpec interface. But does this correspond to some functionality being missing as well?
Even with the list of suggested simplification I was not sure about how much code it would actually amount to, so I tried applying Shanmuga's CL and then also ripping out SVGViewElement. AFAICT, it's really only SVGViewElement.* and a chunk of SVGSVGElement::setupInitialView that goes away. Notably, nothing about the internal useCurrentView/currentView changes. It seems to me that unless support for fragment identifiers and the viewBox+zoomAndPan attributes are dropped, which isn't on the table, then internally the simplification will be modest in the end.
Does this sound about right? If so, then I think it's just a question of how best to reach interop here. The API isn't entirely useless AFAICT, one can at least tell what the viewport is, or is that information available by other means? I still lean towards removal, but perhaps with a very long deprecation period.
OK, so given the state of currentView, useCurrentView and SVGViewSpec in Gecko and Edge and the usage, this removal is very likely safe compat-wise, and a win for interop if they're also removed in WebKit eventually. Towards that end, a svg/historical.html in web-platform-tests and a WebKit issue would be very useful.Since it's possible that someone is using this information for something useful, I suggest deprecation now and removal in M56. Shanmuga, does that sounds reasonable to you? LGTM1 assuming no new information comes to light.