New issue
Advanced search Search tips

Issue 624635 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature

Blocking:
issue 654309



Sign in to add a comment

Rewrite how InterpolationType comparison is done

Project Member Reported by suzyh@chromium.org, Jun 30 2016

Issue description

InterpolationType::operator!= is used to compare the type of an interpolation to its underlying value and relies on InterpolationType objects being singletons per property. It's not clear to me that this is the best way to do this.

 
It would be nice to have an alternate design to investigate or a list of problems with singleton equality to resolve. Otherwise there's little to be done with this issue.

Comment 2 by suzyh@chromium.org, Jun 30 2016

Yeah, this is just something that I want to give some thought to, so I wanted a bug to track it.

Note to self: this is also why the destructor for InterpolationType is ASSERT_NOT_REACHED()

Comment 3 by suzyh@chromium.org, Oct 5 2016

InterpolationType comparison is a crucial part of registered custom property support, so any work here will need to be careful of that.

Comment 4 by suzyh@chromium.org, Oct 10 2016

Blocking: 654309

Comment 5 by suzyh@chromium.org, Jan 11 2017

Cc: suzyh@chromium.org
Owner: ----
Status: Available (was: Assigned)
I'm not likely to work on this soon, so making it Available. I'm actively working on the broader Objective (issue 654309), however, and happy to brief someone if they want to take it up before I get back to it.
Would you be able to document the brief here? I'm not convinced this is actually an issue.

Comment 7 by suzyh@chromium.org, Jan 11 2017

My intuition is that the design is fragile, but I can't put my finger on why. I think some part of my brain is rebelling at the notion of having an object to represent a type, when types are more like classes. Maybe it's a naming issue in disguise, or maybe it's a sign that the design of this code is off-kilter. I find the concept of the design somewhat difficult to grasp, and hence I think something here falls under the "Simplify interpolation code in Blink" Objective. It troubles me that I can't see what might be needed, and at this stage am hoping that other simplification work will start to make it clearer.
A design closer to AnimatableValues would probably resolve your unease.
I imagine one path could be to push InterpolableValues and InterpolationTypes into NonInterpolableValues. NIVs already have the ability to know when two objects are of different subclasses (see the virtual getType() method), that could be used in place of InterpolationType's operator==() pointer comparison.

Comment 9 by suzyh@chromium.org, Jun 13 2017

Cc: -suzyh@chromium.org
Project Member

Comment 10 by sheriffbot@chromium.org, Jun 13 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 11 by yigu@chromium.org, Jun 14 2018

Labels: -Hotlist-Recharge-Cold
Status: Available (was: Untriaged)

Sign in to add a comment