On Feb 17, 2013, at 1:04 AM, Dirk Schulze <dschu...@adobe.com> wrote:

> 
> On Feb 17, 2013, at 12:08 AM, Adam Barth <aba...@webkit.org> wrote:
> 
>> On Sat, Feb 16, 2013 at 11:26 PM, Dirk Schulze <dschu...@adobe.com> wrote:
>>> On Feb 16, 2013, at 10:50 PM, Maciej Stachowiak <m...@apple.com> wrote:
>>>> On Feb 16, 2013, at 10:16 PM, Dirk Schulze <dschu...@adobe.com> wrote:
>>>>> On Feb 16, 2013, at 6:54 PM, Adam Barth <aba...@webkit.org> wrote:
>>>>> 
>>>>>> It's much easier to discuss a concrete example.  Which interface are
>>>>>> you interested in deprecating?
>>>>> 
>>>>> I can understand that it is easier to discuss on a concrete example, even 
>>>>> if I would like to discuss this in a general scope. We have multiple 
>>>>> interfaces that we may want to deprecate at some point.
>>>>> 
>>>>> A concrete example I thought about is WebKitCSSMatrix[1]. It is not used 
>>>>> in WebCore yet but hopefully replaced by a standardized Matrix interface 
>>>>> in the future[2]. This new interface will not be fully compatible to 
>>>>> WebKitCSSMatrix and I would like to warn authors before they actually 
>>>>> start using it.
>>>> 
>>>> Since you're the one designing the new interface (or at least you are the 
>>>> spec editor), why don't you just make it compatible? Breaking changes to 
>>>> existing Web APIs should only be done as a last resort, and I don't 
>>>> understand the justification for doing it here.
>>> 
>>> It is a proposal so far and no draft yet. Technically, I am not the editor 
>>> of it so. The proposal has quite some way to go (hopefully not too much) 
>>> and I do not plan to land anything in this direction as long as the 
>>> responsible WGs did not agree on continuing with the proposal and the 
>>> general direction. I will post a separate mail with the actual feature 
>>> implementation announcement when the time comes.
>>> 
>>>> Then we have a much simper transition story, and WebKitCSSMatrix can be 
>>>> aliased to the new class.
>>> 
>>> I indeed tried to preserve the behavior of WebKitCSSMatrix as much as 
>>> possible. I got an action of the SVG WG to work on a replacement for 
>>> SVGMatrix. The highest priority was to preserver the behavior of SVGMatrix 
>>> (which is definitely actively used by web content) and provide a basic 
>>> interface that can be used beyond just SVG. There are a lot of use cases in 
>>> the near future for a generalized matrix IMO. SVG, CSS Transforms, Canvas 
>>> and WebGL are the obvious once. A specification interoperable format to 
>>> share transformation data seems extremely desirable. I encourage everyone 
>>> who is interested to look at the proposal and give feedback.
>>> 
>>>> 
>>>>> 
>>>>> Again, I think it would be better to discuss this in a wider scope but am 
>>>>> happy to discuss it on the concrete example as well. This actually might 
>>>>> make it easier to come up with general rules in the future.
>>>> 
>>>> I think spamming the console is not a useful thing to do for interfaces 
>>>> that actually have significant usage in the wild. A more productive step 
>>>> would be to measure usage of WebKitCSSMatrix. If it's reasonably high, 
>>>> we're not going to be able to remove it.
>>> 
>>> I agree that we need more metrics to discuss the next active steps on 
>>> WebKitCSSMatrix and I already uploaded a patch to add it to the 
>>> FeatureObserver[1].
>>> 
>>> The question remains: How do we want to continue with deprecating WebKit 
>>> specific features in the long term. Especially when we have a standard 
>>> compliant replacement. It is extremely hard to maintain all different 
>>> behaviors. So far we have multiple implementations of background, flex-box, 
>>> gradients to name some. This doesn't scale very well and there will be a 
>>> time where we can not guarantee for the correct functioning of old 
>>> features. This is a problem that other browsers like IE are focused for 
>>> quite some time as well (not necessarily successfully). As long as we are 
>>> concerned to deprecate and remove features, we increase the complexity of 
>>> the code base. Less and less reviewers will be able to determine the 
>>> behavior of patches to the general code base, while we increase the feature 
>>> count and interoperability between modules more and more. There is no other 
>>> way then to risk breaking content that relies on non-standardized behavior 
>>> of platforms. And we should formalize th
 i
> s
>> to give a bit more reliability to web authors. The last section on [2] is 
>> too vague at the moment.
>> 
>> I don't think we're be successful at formalizing a general approach at
>> this time.  Instead, we should consider each case in turn and use our
>> best judgement.  If a pattern emerges over time, we might want to
>> document that pattern in
>> http://trac.webkit.org/wiki/DeprecatingFeatures.
>> 
>> At the moment, deprecating WebKitCSSMatrix seems premature as there
>> isn't yet a suitable replacement.
> 
> The discussion on each single feature let us forget the greater scope of this 
> problem. That is why I did not start with a concrete example.
> 
> What about going another direction? Right now we have compiler flags for a 
> lot of new features. What if we turn this around? Why not having a compiler 
> flag ENABLE_DEPRECATED_FEATURES? This must be turned on in trunk to make sure 
> deprecated features still work properly. Release builds should turn it on to 
> not break compatibility. But every binary build of a nightly or preview has 
> it turned off. A lot of developers experiment with Chrome Canary and WebKit 
> nightlies already. It might be a drop in the bucket, but still can have some 
> influence on decreasing the use of deprecated content. Features like CSS 
> gradients, transitions and animations might be good candidates at the 
> beginning for this flag.

This carries the risk of decreasing test coverage of Nightlies and Canaries.  I 
don't think that is acceptable.

Users who download them and cannot use a web page because that page had 
deprecated features will then not be able to experience what bugs we had, those 
deprecated features notwithstanding.

I empathize with the desire to remove cruft.  But we shouldn't remove things if 
it breaks the web, even in Nightlies and Canaries.

-F


> 
> Greetings,
> Dirk
> 
>> 
>> Adam
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev@lists.webkit.org
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
> 
> _______________________________________________
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to