Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(444)

Issue 2415413002: Add '... implement SVGUnitTypes' to a bunch of SVG*Elements (Closed)

Created:
4 years, 2 months ago by fs
Modified:
4 years ago
Reviewers:
pdr., foolip
CC:
blink-reviews, blink-reviews-w3ctests_chromium.org, chromium-reviews, krit, f(malita), gyuyoung2, kouhei+svg_chromium.org, pdr+svgwatchlist_chromium.org, rwlbuis, Stephen Chennney, tfarina
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add '... implement SVGUnitTypes' to a bunch of SVG*Elements Per the SVG2, Filter Effects and CSS Masking specifications, SVGClipPathElement (https://drafts.fxtf.org/css-masking-1/#InterfaceSVGClipPathElement) SVGFilterElement, (https://drafts.fxtf.org/filters/#InterfaceSVGFilterElement) SVGGradientElement, (https://svgwg.org/svg2-draft/pservers.html#InterfaceSVGGradientElement) SVGMaskElement and (https://drafts.fxtf.org/css-masking-1/#InterfaceSVGMaskElement) SVGPatternElement (https://svgwg.org/svg2-draft/pservers.html#InterfaceSVGPatternElement) should implement SVGUnitTypes. Matches Gecko and Edge. BUG=651796

Patch Set 1 #

Patch Set 2 : SVGClipPathElement too #

Patch Set 3 : Update interface expectations #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+99 lines, -37 lines) Patch
M third_party/WebKit/LayoutTests/imported/wpt/svg/interfaces-expected.txt View 7 chunks +30 lines, -30 lines 0 comments Download
M third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt View 1 2 5 chunks +15 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt View 1 2 5 chunks +15 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/svg/SVGClipPathElement.h View 1 1 chunk +7 lines, -0 lines 2 comments Download
M third_party/WebKit/Source/core/svg/SVGClipPathElement.idl View 1 1 chunk +4 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/svg/SVGFilterElement.h View 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/svg/SVGFilterElement.idl View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/svg/SVGGradientElement.h View 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/svg/SVGGradientElement.idl View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/svg/SVGMaskElement.h View 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/svg/SVGMaskElement.idl View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/svg/SVGPatternElement.h View 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/svg/SVGPatternElement.idl View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 28 (11 generated)
fs
4 years, 2 months ago (2016-10-17 10:53:55 UTC) #12
foolip
Also add NoInterfaceObject to SVGUnitTypes, or do you intend to do that separately?
4 years, 2 months ago (2016-10-17 12:06:46 UTC) #13
foolip
https://codereview.chromium.org/2415413002/diff/40001/third_party/WebKit/Source/core/svg/SVGClipPathElement.h File third_party/WebKit/Source/core/svg/SVGClipPathElement.h (right): https://codereview.chromium.org/2415413002/diff/40001/third_party/WebKit/Source/core/svg/SVGClipPathElement.h#newcode41 third_party/WebKit/Source/core/svg/SVGClipPathElement.h:41: kSvgUnitTypeUnknown = SVGUnitTypes::kSvgUnitTypeUnknown, If the enum is moved from ...
4 years, 2 months ago (2016-10-17 12:09:54 UTC) #14
fs
On 2016/10/17 at 12:06:46, foolip wrote: > Also add NoInterfaceObject to SVGUnitTypes, or do you ...
4 years, 2 months ago (2016-10-17 12:31:11 UTC) #15
fs
https://codereview.chromium.org/2415413002/diff/40001/third_party/WebKit/Source/core/svg/SVGClipPathElement.h File third_party/WebKit/Source/core/svg/SVGClipPathElement.h (right): https://codereview.chromium.org/2415413002/diff/40001/third_party/WebKit/Source/core/svg/SVGClipPathElement.h#newcode41 third_party/WebKit/Source/core/svg/SVGClipPathElement.h:41: kSvgUnitTypeUnknown = SVGUnitTypes::kSvgUnitTypeUnknown, On 2016/10/17 at 12:09:54, foolip wrote: ...
4 years, 2 months ago (2016-10-17 12:40:21 UTC) #16
foolip
On 2016/10/17 12:31:11, fs wrote: > On 2016/10/17 at 12:06:46, foolip wrote: > > Also ...
4 years, 2 months ago (2016-10-17 13:19:20 UTC) #17
fs
On 2016/10/17 at 13:19:20, foolip wrote: > On 2016/10/17 12:31:11, fs wrote: > > On ...
4 years, 2 months ago (2016-10-17 13:39:05 UTC) #18
foolip
On 2016/10/17 13:39:05, fs wrote: > On 2016/10/17 at 13:19:20, foolip wrote: > > On ...
4 years, 2 months ago (2016-10-17 13:58:12 UTC) #19
fs
On 2016/10/17 at 13:58:12, foolip wrote: > On 2016/10/17 13:39:05, fs wrote: > > On ...
4 years, 2 months ago (2016-10-17 14:25:06 UTC) #20
foolip
On 2016/10/17 14:25:06, fs wrote: > On 2016/10/17 at 13:58:12, foolip wrote: > > On ...
4 years, 2 months ago (2016-10-17 14:34:25 UTC) #21
fs
On 2016/10/17 at 14:34:25, foolip wrote: > On 2016/10/17 14:25:06, fs wrote: > > On ...
4 years, 2 months ago (2016-10-17 14:42:00 UTC) #22
foolip
On 2016/10/17 14:42:00, fs wrote: > On 2016/10/17 at 14:34:25, foolip wrote: > > On ...
4 years, 2 months ago (2016-10-17 15:00:31 UTC) #23
fs
On 2016/10/17 at 15:00:31, foolip wrote: > On 2016/10/17 14:42:00, fs wrote: > > On ...
4 years, 2 months ago (2016-10-17 15:17:10 UTC) #24
foolip
On 2016/10/17 15:17:10, fs wrote: > On 2016/10/17 at 15:00:31, foolip wrote: > > On ...
4 years, 2 months ago (2016-10-18 08:10:25 UTC) #25
fs
On 2016/10/18 at 08:10:25, foolip wrote: > On 2016/10/17 15:17:10, fs wrote: > > On ...
4 years, 2 months ago (2016-10-18 08:28:53 UTC) #26
foolip
On 2016/10/18 08:28:53, fs wrote: > On 2016/10/18 at 08:10:25, foolip wrote: > > On ...
4 years, 2 months ago (2016-10-18 08:43:12 UTC) #27
fs
4 years, 2 months ago (2016-10-18 08:59:48 UTC) #28
On 2016/10/18 at 08:43:12, foolip wrote:
> On 2016/10/18 08:28:53, fs wrote:
> > On 2016/10/18 at 08:10:25, foolip wrote:
> > > On 2016/10/17 15:17:10, fs wrote:
> > > > On 2016/10/17 at 15:00:31, foolip wrote:
> > > > > On 2016/10/17 14:42:00, fs wrote:
> > > > > > On 2016/10/17 at 14:34:25, foolip wrote:
> > > > > > > On 2016/10/17 14:25:06, fs wrote:
> > > > > > > > On 2016/10/17 at 13:58:12, foolip wrote:
> > > > > > > > > On 2016/10/17 13:39:05, fs wrote:
> > > > > > > > > > On 2016/10/17 at 13:19:20, foolip wrote:
> > > > > > > > > > > On 2016/10/17 12:31:11, fs wrote:
> > > > > > > > > > > > On 2016/10/17 at 12:06:46, foolip wrote:
> > > > > > > > > > > > > Also add NoInterfaceObject to SVGUnitTypes, or do you
> > intend
> > > > to do
> > > > > > > > that
> > > > > > > > > > > > separately?
> > > > > > > > > > > > 
> > > > > > > > > > > > As I noted in the bug Gecko (and Edge) still have
> > SVGUnitTypes
> > > > > > exposed,
> > > > > > > > and
> > > > > > > > > > > > presumably that may be non-trivial to remove. Also
> > > > > > > > > > > > https://github.com/w3c/svgwg/issues/291.
> > > > > > > > > > > 
> > > > > > > > > > > Commented there, would like to hear pdr@'s thoughts too.
Since
> > we
> > > > > > already
> > > > > > > > have
> > > > > > > > > > SVGUnitTypes exposed, also having `x implements
SVGUnitTypes`
> > seems
> > > > not
> > > > > > very
> > > > > > > > > > useful.
> > > > > > > > > > 
> > > > > > > > > > I think this is all a bit confused because of how the IDL
was
> > > > structured
> > > > > > in
> > > > > > > > SVG
> > > > > > > > > > 1.1 (multiple inheritance, likely assuming these constants
would
> > > > appear
> > > > > > as
> > > > > > > > if
> > > > > > > > > > 'implements' had been used. Hard to tell really.)
> > > > > > > > > 
> > > > > > > > > Yep, a bit of a mess it is. What do you think would be the
best
> > > > outcome?
> > > > > > > > 
> > > > > > > > If wishing I think I'd just go with what we have now
(SVGUnitTypes
> > > > exposed;
> > > > > > no
> > > > > > > > implements.)
> > > > > > > 
> > > > > > > I agree. And for SVGZoomAndPan?
> > > > > > 
> > > > > > Well, "nuke from orbit" would be my preference I think =) [1]. If
not
> > that,
> > > > then
> > > > > > "keep as is".
> > > > > > 
> > > > > > [1] We have a use counter for the attribute in the interface
> > > > > >
(https://www.chromestatus.com/metrics/feature/timeline/popularity/1102),
> > but
> > > > > > nothing to indicate use of the constants.
> > > > > 
> > > > > It's a pretty safe bet that usage of the constants is no higher than
use
> > of
> > > > the zoomAndPan attribute itself. Does this thing have no utility at all
for
> > > > developers, would removing it make anybody sad?
> > > > 
> > > > The main (only) utility of ZoomAndPan is to prevent UA panning. So the
only
> > use
> > > > of the interface (attribute) would be to be able to toggle that at
runtime.
> > > > Something that arguably could be achieved as easy (if not easier) by the
> > just
> > > > setting the attribute ('zoomAndPan'.) So removing the interface would
> > prevent
> > > > that particular way of enabling/disabling UA panning. (Also, IIRC, UA
> > panning
> > > > only works on standalone documents.)
> > > 
> > > Oh, so there's a zoomAndPan content attribute with the values "disable"
and
> > "magnifiy", and there's a one-way reflection to this unsigned short IDL
> > attribute. Per https://github.com/w3c/svgwg/issues/56 the whole thing is at
> > risk, so figuring out if there's a path to removal would be nice.
> > 
> > Removing only the DOM bits ought to be reasonably straightforward and safe I
> > think (I don't think I've ever seen anything use the IDL attribute - granted
> > there's a low number of users per the use counters. Usage of the content
> > attribute I believe might be more common.) From a removal PoV, the only
> > technical issue I see is with the reflection on SVGViewSpec - but we have
that
> > scheduled for removal (in 56?) IIRC.
> 
> Yep:
>     case UseCounter::V8SVGSVGElement_UseCurrentView_AttributeGetter:
>       return willBeRemoved("SVGSVGElement.useCurrentView", M56,
>                            "4511711998509056");
> 
>     case UseCounter::V8SVGSVGElement_CurrentView_AttributeGetter:
>       return willBeRemoved("SVGSVGElement.currentView", M56,
>                            "4511711998509056");
> 
>     case UseCounter::V8SVGViewElement_ViewTarget_AttributeGetter:
>       return willBeRemoved("SVGViewElement.viewTarget", M56,
>                            "5665473114931200");
> 
> For the fate of zoomAndPan, I guess a close look at its interoperability would
be a start. If it already does something semi-useful interoperably, then unless
usage is super low, just leaving the interoperable intersection might be the
least amount of work for everyone.

The most difficult part of that is probably to figure out how to trigger UA
zoom/pan (if even possible...) =)

Powered by Google App Engine
This is Rietveld 408576698