Re: [webcomponents] Change deepPath() back to path (a FrozenArray<EventTarget> attribute) (#428)

It's a good opportunity to see the history of `Event.path`.

1.   Blink shipped `Event.path` as a property.
2.   Then, at F2F meeting in the last year, we agreed on renaming `Event.path` to `Event.deepPath`.
3.   Then, in the discussion, https://github.com/w3c/webcomponents/issues/361, `Event.deepPath` becomes a method, `Event.deepPath()`.
I agree with @rniwa's comment, https://github.com/w3c/webcomponents/issues/428#issuecomment-194518614,  here. That's reason I wanted to change this to a method.
4.   Then, @rniwa suggested one behavior change for Event.deepPath. See https://github.com/w3c/webcomponents/issues/373. I accepted this change because:
    -  We do not have to worry about a backward compatibility issue. Event.path and Event.deepPath() can have the different behavior.
    -  `Event.deepPath()` is now a method.
5. Then, reverting renaming (2),  is proposed (<-- Now)


Given this history, what is the best choice for us?

Option A) Event.path as a property, including the behavior change of 4.
- Cons: That is an incompatible change for Blink. Blink would break the Web.
- Cons: https://github.com/w3c/webcomponents/issues/428#issuecomment-194518614

Option B) Event.path as a property, also reverting behavior change of 4.
- Cons: We lost the behavior of 4. I prefer the behavior of 4.
- Cons: https://github.com/w3c/webcomponents/issues/428#issuecomment-194518614
- Cons: console.log(event) would upset developers, as we saw in https://bugs.chromium.org/p/chromium/issues/detail?id=401947

Option C) Event.path() as a method
- Cons: That is an incompatible change for Blink. Blink would break the Web.

Option C) No action. Event.deepPath() as a method.
- Cons: Blink will have `Event.path` and `Event.deepPath()`


---
Reply to this email directly or view it on GitHub:
https://github.com/w3c/webcomponents/issues/428#issuecomment-194650810

Received on Thursday, 10 March 2016 03:53:04 UTC