Community
Participate
Working Groups
A bug to gather small improvements to the CSS engine performance
Gerrit change https://git.eclipse.org/r/68753 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=7d6d0c1937820bc0c1acc9c0ee996a16dded2b7a
Gerrit change https://git.eclipse.org/r/70826 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=878e1f005bc16bd65c6ec9aa3c55d6b305280b3c
New Gerrit change created: https://git.eclipse.org/r/81151
Gerrit change https://git.eclipse.org/r/81151 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=b9635f00ed533cf27e67e4e02af98b79dea6f547
New Gerrit change created: https://git.eclipse.org/r/81293
Gerrit change https://git.eclipse.org/r/81293 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=37b05ffa257b214ade11b6b5fde2ba56eb9858a6
Hi we have a regression in Papyrus (bug 508537) due to the commit 878e1f005bc16bd65c6ec9aa3c55d6b305280b3c (https://git.eclipse.org/r/70826) Before the change E[foo] was returning false when the foo attribute was null, but now it's true. [1] say that: "E[foo] Matches any E element with the "foo" attribute set (whatever the value)." So for me, when foo==null, foo is not set, so match(..) should return false? See the actual code: /** * Tests whether this condition matches the given element. */ @Override public boolean match(Element e, String pseudoE) { if (!e.hasAttribute(getLocalName())) { return false; } String val = getValue(); if (val == null) { return true; //To be change by false here } return e.getAttribute(getLocalName()).equals(val); } [1] - https://www.w3.org/TR/CSS2/selector.html#pattern-matching
New Gerrit change created: https://git.eclipse.org/r/86156
It's appears that the link provide in https://git.eclipse.org/r/70826: the [1] is related to CSS2 with this definition: E[foo] : Matches any E element with the "foo" attribute set (whatever the value). In CSS3 [2] we have this definition: E[foo] : an E element with a "foo" attribute. Which is not th same thinks. In CSS it appears that the "foo" attribute does not need to be set. In this case it's our test which is in fault. Which version of CSS Oxygen is compliant ? [1] - https://www.w3.org/TR/CSS2/selector.html#pattern-matching [2] - https://www.w3.org/TR/css3-selectors/
Our CSS is based on Apache Batik's CSS engine, which is CSS2.
New Gerrit change created: https://git.eclipse.org/r/91120
Gerrit change https://git.eclipse.org/r/91120 was merged to [master]. Commit: http://git.eclipse.org/c/papyrus/org.eclipse.papyrus.git/commit/?id=f6bf23c1ec5462bb0ffcda202b6dc1038b44efce
I was chatting with a Mozilla contributor a while back, and asked about some of the performance optimizations they do for applying CSS. They use multiple threads to walk the DOM and schedule CSS changes. I realized one issue we face is that our SWT CSS engine doesn't have sole custody over the widget hierarchy (i.e., user code can and does make changes) so we can't assume our spoofed up DOM elements hold the truth, and so processing must be done on the SWT thread.
Please open new bugs if you see more options to improve CSS performance