[Bug 23887] [Shadow] Put only the final destination insertion point to the event path

https://www.w3.org/Bugs/Public/show_bug.cgi?id=23887

--- Comment #164 from Koji Ishii <kojiishi@gmail.com> ---
Hayato and I discussed today and came up with a new proposal, in the hope of
achieving both-win.

The proposal is to add an exception to the spec:

CURRENT:
The event path calculation algorithm must be used to determine event path and
must be equivalent to processing the following steps

PROPOSED:
The event path must be equivalent to processing the event path calculation
algorithm described below, except that insertion points may appear in different
order, as long as they’re after the content distributed to them (or fallback
content in the case of fallback) and before their parents


In case you’re uncertain whether this is a good idea, please allow me to give
some background of this proposal.

What made the most sense to us was Dimitri’s comment 125 saying web developers
would never notice this difference.

Still we needed to try hard to come up with a better algorithm, one because
mental models vary by people, and the other because all of us want this
algorithm simple and fast, while the “simple and fast” was different by the
underlying architecture.

The algorithm in the current spec works good for Blink architecture, while, as
far as I understand from the discussion in Bugzilla, it adds insanely complex
burden to Gecko.

On the other hand, we implemented the proposed new algorithm, but we figured
out that it makes our code more complex, and we are still unable to fix 3
regressions.

This indicates that, in this case, we can’t make all implementations --
including ones in future -- happy with single algorithm.

We considered another option discussed earlier, which is not to include any
insertion points in the event path. But Steve, as one of the representatives of
web developers, said in comment 16 that he prefers “all insertion points in
event path” than “no insertion points”. This option may still work, but it
looks like a both-lose option.

Our conclusion is to allow implementation dependency in the manner of not to
trouble web developers is the only way to make all of us happy.

We’re hoping that this option provides good enough interoperability for web
developers, while allowing simple and fast implementations on any underlying
architecture to implementers, and thus also provides faster event dispatch to
web developers.

Does this look like a workable solution? Comments appreciated.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Wednesday, 25 February 2015 19:07:10 UTC