Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(543)

Issue 144233008: Add [OverrideBuiltins] to HTMLCollection IDL interface (Closed)

Created:
6 years, 10 months ago by Inactive
Modified:
6 years, 10 months ago
CC:
blink-reviews, watchdog-blink-watchlist_google.com, dglazkov+blink, arv+blink, adamk+blink_chromium.org
Visibility:
Public.

Description

Add [OverrideBuiltins] to HTMLCollection IDL interface Add [OverrideBuiltins] to HTMLCollection IDL interface to match the behavior of NodeList before r166356, which removed NodeList's named getter. This fixes the performance regression on Dromaeo's dom-query caused by r166263, which made getElementByTagName() return an HTMLCollection instead of a NodeList. Iterating over an HTMLCollection was much slower than iterating over a NodeList and as it turns out, the profiler was telling me that we were spending ~20% of the time in HTMLCollection's namedPropertyGetter. I compared NodeList's namedPropertyGetter and HTMLCollection's and noticed that the former has a lot less branching due to [OverrideBuiltins]. Adding [OverrideBuiltins] to HTMLCollection IDL interface improves Dromaeo's dom-query score by ~16.5%. R=haraken, arv BUG=340325 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=166628

Patch Set 1 #

Patch Set 2 : Rebaseline failing test #

Total comments: 4

Patch Set 3 : Add FIXME comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+4 lines, -1 line) Patch
M LayoutTests/fast/dom/collection-length-should-not-be-overridden-expected.txt View 1 1 chunk +1 line, -1 line 0 comments Download
M Source/core/html/HTMLCollection.idl View 1 2 1 chunk +3 lines, -0 lines 0 comments Download

Messages

Total messages: 19 (0 generated)
Inactive
The diff on the generated bindings: http://pastebin.com/PCbrj5PQ The pprof profile of Dromaeo's dom-query without this ...
6 years, 10 months ago (2014-02-05 20:30:57 UTC) #1
Inactive
Patch which caused the regression: http://src.chromium.org/viewvc/blink?view=revision&revision=166263 Patch that removed NodeList's named property getter and thus ...
6 years, 10 months ago (2014-02-05 20:32:44 UTC) #2
Inactive
Sadly, it causes LayoutTests/fast/dom/collection-length-should-not-be-overridden.html to fail, which is to be expected. However, NodeList was already ...
6 years, 10 months ago (2014-02-05 20:40:39 UTC) #3
Inactive
According to the profiler the problem is that without [OverrideBuiltins], 3 checks are added at ...
6 years, 10 months ago (2014-02-05 20:50:26 UTC) #4
arv (Not doing code reviews)
https://codereview.chromium.org/144233008/diff/60001/LayoutTests/fast/dom/collection-length-should-not-be-overridden-expected.txt File LayoutTests/fast/dom/collection-length-should-not-be-overridden-expected.txt (right): https://codereview.chromium.org/144233008/diff/60001/LayoutTests/fast/dom/collection-length-should-not-be-overridden-expected.txt#newcode16 LayoutTests/fast/dom/collection-length-should-not-be-overridden-expected.txt:16: FAIL table.rows.length should be 2 (of type number). Was ...
6 years, 10 months ago (2014-02-05 20:53:05 UTC) #5
arv (Not doing code reviews)
LGTM since you said this is already broken in latest stable release. It is just ...
6 years, 10 months ago (2014-02-05 20:54:18 UTC) #6
Inactive
https://codereview.chromium.org/144233008/diff/60001/LayoutTests/fast/dom/collection-length-should-not-be-overridden-expected.txt File LayoutTests/fast/dom/collection-length-should-not-be-overridden-expected.txt (right): https://codereview.chromium.org/144233008/diff/60001/LayoutTests/fast/dom/collection-length-should-not-be-overridden-expected.txt#newcode16 LayoutTests/fast/dom/collection-length-should-not-be-overridden-expected.txt:16: FAIL table.rows.length should be 2 (of type number). Was ...
6 years, 10 months ago (2014-02-05 20:58:47 UTC) #7
Inactive
https://codereview.chromium.org/144233008/diff/60001/Source/core/html/HTMLCollection.idl File Source/core/html/HTMLCollection.idl (right): https://codereview.chromium.org/144233008/diff/60001/Source/core/html/HTMLCollection.idl#newcode25 Source/core/html/HTMLCollection.idl:25: OverrideBuiltins If you want, I can file a bug ...
6 years, 10 months ago (2014-02-05 21:07:01 UTC) #8
arv (Not doing code reviews)
Thanks, I would appreciate that. On Wed, Feb 5, 2014 at 4:07 PM, <ch.dumez@samsung.com> wrote: ...
6 years, 10 months ago (2014-02-05 21:17:30 UTC) #9
Inactive
https://codereview.chromium.org/144233008/diff/60001/Source/core/html/HTMLCollection.idl File Source/core/html/HTMLCollection.idl (right): https://codereview.chromium.org/144233008/diff/60001/Source/core/html/HTMLCollection.idl#newcode25 Source/core/html/HTMLCollection.idl:25: OverrideBuiltins On 2014/02/05 21:07:02, Chris Dumez wrote: > If ...
6 years, 10 months ago (2014-02-05 21:35:13 UTC) #10
Inactive
haraken, I'd like your feedback on this as well please if you have time.
6 years, 10 months ago (2014-02-06 01:16:43 UTC) #11
haraken
On 2014/02/06 01:16:43, Chris Dumez wrote: > haraken, I'd like your feedback on this as ...
6 years, 10 months ago (2014-02-06 01:22:20 UTC) #12
Inactive
On 2014/02/06 01:22:20, haraken wrote: > On 2014/02/06 01:16:43, Chris Dumez wrote: > > haraken, ...
6 years, 10 months ago (2014-02-06 01:37:43 UTC) #13
haraken
Thanks for the clarification. Understood. The web-exposed behavior before (1) was wrong, and the behavior ...
6 years, 10 months ago (2014-02-06 01:42:52 UTC) #14
Inactive
+jochen as API OWNER as there is a slight web exposed behavior change.
6 years, 10 months ago (2014-02-06 01:51:21 UTC) #15
jochen (gone - plz use gerrit)
lgtm
6 years, 10 months ago (2014-02-06 10:59:54 UTC) #16
Inactive
The CQ bit was checked by ch.dumez@samsung.com
6 years, 10 months ago (2014-02-06 13:09:29 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/ch.dumez@samsung.com/144233008/180001
6 years, 10 months ago (2014-02-06 13:11:31 UTC) #18
commit-bot: I haz the power
6 years, 10 months ago (2014-02-06 17:48:15 UTC) #19
Message was sent while issue was closed.
Change committed as 166628

Powered by Google App Engine
This is Rietveld 408576698