New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 114 users

Comments by non-members will not trigger notification emails to users who starred this issue.

DOM attributes should be moved to prototype chains and should expose JavaScript getters/setters

Project Member Reported by arv@chromium.org, May 6 2010

Issue description

Given

Object.getOwnPropertyNames(Node.prototype)

it does not list 'firstChild'

If I do the same thing on an instance it is available but it returns a value 
property. Exposing these as getters and setters would be extremely useful

Expected result

Object.getOwnPropertyDescriptor(Node.prototype, 'firstChild')

{
  "get": function getFirstChild() { [native code] },
  "enumerable": true,
  "configurable": true
}
 
Showing comments 80 - 179 of 179 Older
We investigated the issue with Dan, and found that we're not yet getting close, unfortunately.

[Summary]
Dromaeo/dom-traverse does not regress, but Dromaeo/jslib-traverse-jquery (and some other Dromaeo benchmarks) regresses. The reason is as follows:

- Performance progresses if we traverse six or less DOM types. However, performance regresses if we traverse more than six DOM types.

- Dromaeo/dom-traverse is not traversing many DOM types, and thus it doesn't regress (it progresses in some perf bots). On the other hand, Dromaeo/jslib-traverse-jquery is traversing a lot of DOM types, and thus it regresses.

This regression is real and non-negligible, because real-world JS traverses a lot of DOM types.


[Details]
Consider the following code:

// Performance test 1
var treeSize = 10000;
var div = document.createElement(“div”);
for (var i = 0; i < treeSize / 2; i++) {
  div.appendChild(document.createElement(“div”));
  div.appendChild(document.createElement(“a”));
}
runTest(function() {
  var element = div.firstChild;
  while (element)
    element = element.nextSibling;
});

// Performance test 2
var treeSize = 10000;
var div = document.createElement(“div”);
for (var i = 0; i < treeSize / 8; i++) {
  div.appendChild(document.createElement(“div”));
  div.appendChild(document.createElement(“a”));
  div.appendChild(document.createElement(“br”));
  div.appendChild(document.createElement(“form”));
  div.appendChild(document.createElement(“canvas”));
  div.appendChild(document.createElement(“img”));
  div.appendChild(document.createElement(“details”));
  div.appendChild(document.createElement(“font”));
}
runTest(function() {
  var element = div.firstChild;
  while (element)
    element = element.nextSibling;
});

When we execute the performance tests in an on-instance version (in which DOM attributes are defined on instances) and an on-prototype version (in which DOM attributes are defined on prototype chains), we get the following results:

- The on-prototype version is faster than the on-instance version in the performance test 1.
- The on-instance version is faster than the on-prototype version in the performance test 2.

More specifically, we confirmed the following results:

- The on-prototype version is faster than the on-instance version when we traverse six or less types of Nodes.
- The on-instance version is faster than the on-prototype version when we traverse more than six types of Nodes.

This result can be explained as follows:

- The on-instance version is not crankshafted. When we access element.nextSibling, the following happens:

(1) We look up IC (inline caching).
(2) If we hit the IC, we call the binding callback via the IC. The code is not crankshafted.
(3) Otherwise, we look up the nextSibling attribute on the element and then call the binding callback.

- On the other hand, the on-prototype version is crankshafted. When we access element.nextSibling, the following happens:

(1) We look up IC.
(2) If we hit the IC, we call the binding callback via the IC. The code is crankshafted and thus super fast. We don’t need to look up the nextSibling attribute on the prototype chain. The crankshafted code directly calls the binding callback. (The crankshafted code is discarded when the shape of the prototype chain is changed.)
(3) Otherwise, we look up the nextSibling attribute on the prototype chain and then call the binding callback.

- Given the above, as long as we’re hitting the IC, the on-prototype version is faster than the on-instance version, because the on-prototype version uses the crankshafted code. However, if we miss the IC, the on-prototype version becomes slower than the on-instance version, because the on-prototype version needs to look up the DOM attribute in the prototype chain.

- The number of the IC entries is limited, and the number is six (Accurately speaking, the number of the IC entries is four, and the six is the number when the secondary cache is considered). That’s why the on-prototype version becomes slower than the on-instance version when the number of Node types exceeds six. That’s the point where the IC starts failing.

This would be a real issue, because real-world JS will be using a lot of DOM types and will miss the IC a lot of times.

In conclusion, in order to fix this issue, we need to wait for another complex fix in the V8 side. dcarney@ and danno@ have some idea and are planning to write a document about how to address the issue.

(Let me emphasize that we’re moving forward anyway. I kept the CL in the trunk for a couple of days, but didn’t get any crash report or behavior bugs caused by the CL. This means that there would be no behavioral issue in moving DOM attributes to prototype chains :-)

Comment 81 by arv@chromium.org, Jun 3 2014

Cc: japhet@chromium.org
 Issue 114791  has been merged into this issue.
Cc: -sandholm@chromium.org -ricow@chromium.org
Blocking: chromium:116408
Possible severe regression as a result of this: https://code.google.com/p/chromium/issues/detail?id=380764

Hopefully can be nailed before 36 is released.
All the CL about this change is already reverted. Do you still observe the regression in ToT?
 Issue 380385  has been merged into this issue.
 Issue 380385  has been merged into this issue.
 Issue 380385  has been merged into this issue.
Any updates on this?

Folks using Polymer are easily burned by this because names they use in their custom elements can collide with DOM accessors. Now that Custom Elements has shipped, it is higher priority to get this resolved? Another data point: Firefox and IE are shipping working versions and Safari has made progress on a fix. (I'm now having to write checks like "isBrokenChrome" in tests... :| )

Another issue with this is it makes it very hard to polyfill any new web proposal/spec involving DOM accessors, since they can't be overridden like methods can.

Anyway, I don't mean to sound negative... This will be hugely awesome when it lands and will make the lives of folks building web components much better!

I'm working on this when I have a cycle (and aiming at completing it by the end of Q4).

The current situation is that I have a CL but a couple of Chromium-side tests are still failing. I've fixed some of them but not yet all of them.
https://codereview.chromium.org/447523003/

This is definitely on my radar.

Blocking: chromium:435727
Just an update: tasak@ started investigating behavior bugs in browser_tests.

Owner: yukishiino@chromium.org
Reassigning an owner to shiino-san.

Any updates here?
> Any updates here?

shiino-san is going to spend full time on this in Q1.

That being said, it requires a substantial amount of work to fix all behavioral regressions caused by moving DOM attributes. So we're planning to move only DOM attributes used in Dromaeo to prototype chains (which won't cause behavioral regressions) in M41 and work on the remaining DOM attributes after that.

Here is an initial result of moving DOM attributes used in Dromaeo:

https://docs.google.com/a/google.com/spreadsheets/d/1B1uTeNEc7I9LRNG67jOF5Y1BdfTZPT6IjwZQ8gS3ylk/edit#gid=0

The performance numbers look very bad unfortunately.

(a) 10% regression in bindings.first-child.
(b) 10% - 14% regression in dromaeo.domtraverse
(c) More than 40% regression in dromaeo.jslibtraverse
(d) 10% regression in page load time of page cycler

(c) and (d) are definitely unacceptable. (c) means that we're regressing DOM traversals by 40%.

It looks like that (a) and (b) are regressions caused by some recent changes in V8. There was no regression in (a) and (b) 4 months ago.

We'll do a couple of more investigations and consider a strategy to land this.

Thanks for the update... and *ouch*!

In "we're planning to move only DOM attributes used in Dromaeo" - do you mean "...*NOT* used in Dromaeo"? 

Ganbatte, Shiino-san!

Comment 97 by raggi@google.com, Dec 17 2014

Is this re-raised with the standards body? It sounds like there's priority
here to performance over correctness, although until custom elements this
isn't apparent to most users. I don't know the subtleties you're describing
but these new semantics will remove some old options for optimization - as
a user I'm expecting this.
jsbell@:
> In "we're planning to move only DOM attributes used in Dromaeo" - do you mean "...*NOT* used in Dromaeo"?

We're planning to move DOM attributes used in Dromaeo first in order to understand and tackle problems in terms of performance and behavioral correctness. But I agree that we might need to take the other way.

Here is a status update and a future plan.

I moved DOM attributes used in Dromaeo to prototype chains and evaluated performance using telemetry. The result is summarized in this sheet:
https://docs.google.com/a/chromium.org/spreadsheets/d/11Sm_CRGpKRF7bkvbJnwfHSVDKhnU9kjh0xMr6RacVIE/edit#gid=0

(a) There is 10% regression in bindings.first-child and 10% - 14% regression in dromaeo.domtraverse. Given that there was no regression in these benchmarks 4 months ago, this is a regression caused by recent V8 changes. Although we don't really care about regressions in these benchmarks, these regressions indicate that we clearly regressed something important in the mechanism of prototype chain lookup. We need to bisect the culprit and fix it.

(b) There is more than 40% regression in dromaeo.jslibtraverse and 10% regression in page load time of page cycler. 40% regression in dromaeo.jslibtraverse indicates that the change regresses performance of DOM traversals if a DOM tree contains a lot of types of elements. (For more details, see my comment in #80.)

Overall I don't think we are not in a state where we can move DOM attributes used in Dromaeo to prototype chains just right now. So I propose the following plan:

- Regarding (a), this is the third time V8 unexpectedly regressed performance of prototype chain lookup. This sadness happens because we don't have any DOM attribute on prototype chains and thus we don't have any benchmark testing the performance. So I propose to move a couple of unimportant DOM attributes (e.g., Element.title) to prototype chains just right now and add performance benchmarks for the DOM attribute. This will prevent us from regressing the performance again and spending a lot of time in bisecting the culprit.

- Regarding (b), I believe that the V8 team has a concrete plan to address the mega-morphism problem and Toon is planning to land the optimization to V8 (What's the current status?). I think that the current problem is that we don't have any DOM attribute on prototype chains and have any benchmark about it, so it is not easy for the V8 team to work on the optimization. So I propose to add benchmarks for the mega-morphism problem using Element.title (We can create the benchmark in a way I described in #80). Once we land the benchmark, we have a clear target to optimize which will help the V8 team to work on the optimization.

- Once we can make the regression down to an acceptable level, let's start moving popular DOM attributes incrementally.


In terms of work distribution, I'm imagining the following model:

- yukishiino@ will spend full time on this project in Q1.
- yukishiino@ will move a couple of unimportant DOM attributes (e.g., Element.title) to prototype chains and add benchmarks for it. The benchmarks will include a benchmark that tests the mega-morphic behavior. This will happen in early January.
- yukishiino@ will bisect a V8 change that caused 10% regression on blink_perf.first-child.
- yukishiino@ will fix behavioral bugs in browser tests when we move DOM attributes to prototype chains.
- The V8 team (Toon?) will address the poly-morphism problem using the benchmarks.

What do you think?

That sounds like a good proposal. We'll also help with fixing any correctness bugs that might show up.

I think landing the unimportant DOM attributes changes is the highest priority.
Project Member

Comment 101 by bugdroid1@chromium.org, Jan 13 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=188298

------------------------------------------------------------------
r188298 | haraken@chromium.org | 2015-01-13T15:45:32.848258Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/PerformanceTests/Bindings/dom-attribute-on-prototoype.html?r1=188298&r2=188297&pathrev=188298

Add a performance benchmark for Node.baseURI

This benchmark is going to be used to evaluate performance of DOM attributes
on prototype chains. To evalate the performance, you need to either:

- Apply https://codereview.chromium.org/447523003/; or
- Add [ExposeJSAccessors] on Node.baseURI.

BUG= 43394 

Review URL: https://codereview.chromium.org/836923005
-----------------------------------------------------------------
Project Member

Comment 102 by bugdroid1@chromium.org, Jan 14 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7bc51702afbf6957765fcecea2ab4e3cd1afb6cc

commit 7bc51702afbf6957765fcecea2ab4e3cd1afb6cc
Author: yukishiino <yukishiino@chromium.org>
Date: Wed Jan 14 14:21:08 2015

Fixes WebRTC browsertests.

Blink team is planning to move DOM attributes into prototype chains.
DOM attributes will no longer be accessible as Object properties, e.g.
JSON.stringify will not see DOM attributes.  So WebRTC tests shouldn't
expect that they can stringify DOM attributes.

Fixes tests not to directly stringify DOM objects.

BUG= 43394 

Review URL: https://codereview.chromium.org/811653007

Cr-Commit-Position: refs/heads/master@{#311472}

[modify] http://crrev.com/7bc51702afbf6957765fcecea2ab4e3cd1afb6cc/content/test/data/media/getusermedia.html

Project Member

Comment 103 by bugdroid1@chromium.org, Jan 23 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=188873

------------------------------------------------------------------
r188873 | yukishiino@chromium.org | 2015-01-23T11:12:20.977893Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/inspector/InjectedScriptBase.cpp?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/Geolocation/enabled-expected.txt?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/script-tests/webtiming-navigate-within-document.js?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/Geolocation/script-tests/enabled.js?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/svg/SVGStyleElement.html?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/notifications/serviceworker-notification-event.html?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/script-tests/webtiming-document-open.js?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/mediastream/RTCSessionDescription.html?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/push_messaging/resources/pushevent-extendable-event.js?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/mediastream/RTCIceCandidate.html?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash-expected.txt?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/mediastream/RTCSessionDescription-expected.txt?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/misc/performance-memory-in-dedicated-worker.html?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/misc/performance-memory-in-shared-worker.html?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/element-instance-property-listing-expected.txt?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/element-instance-property-listing-expected.txt?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/resources/testharness-helpers.js?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/push_messaging/subscribe_success.html?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/mediastream/RTCIceCandidate-expected.txt?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/notifications/resources/serviceworker-notification-event.js?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/resources/js-test.js?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/js/script-tests/delete-syntax.js?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/storage/indexeddb/resources/keypath-intrinsic-properties.js?r1=188873&r2=188872&pathrev=188873
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/resources/element-instance-property-listing.js?r1=188873&r2=188872&pathrev=188873

bindings: Fixes layouttests when moving attributes to prototype chains.

Fixes layouttests so that they pass when DOM attributes are moved to
prototype chains.

Major changes are:
- JSON.stringify doesn't work for DOM attributes on prototype chains.
  We're going to use stringifyDOMObject instead defined in js-test.js.
- Use of assert_own_property for DOM attributes is wrong.  We use
  assert_will_be_idl_attribute in this CL, and after we move to
  prototype chains, we'll replace it with assert_idl_attribute.
- element-instance-property-listing is expected to list all the DOM
  attributes.  So I changed it to list up all attributes including
  those on prototype.

BUG= 43394 

Review URL: https://codereview.chromium.org/821303006
-----------------------------------------------------------------
Project Member

Comment 104 by bugdroid1@chromium.org, Jan 26 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=188944

------------------------------------------------------------------
r188944 | haraken@chromium.org | 2015-01-26T08:15:41.382039Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_utilities.py?r1=188944&r2=188943&pathrev=188944
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_interface.py?r1=188944&r2=188943&pathrev=188944

Move methods about indexed/named getters/setters/deleters to v8_utilities.py

This is a split from https://codereview.chromium.org/447523003.
We don't have a plan to land the original CL soon but multiple people are applying
the CL locally, so it is important to make the CL size smaller.
This CL helps decrease the original CL.

BUG= 43394 

Review URL: https://codereview.chromium.org/867153004
-----------------------------------------------------------------
Project Member

Comment 105 by bugdroid1@chromium.org, Feb 3 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=189383

------------------------------------------------------------------
r189383 | yukishiino@chromium.org | 2015-02-03T05:20:53.803001Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/navigatorconnect/resources/connect-helper.html?r1=189383&r2=189382&pathrev=189383
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/resources/testharness-helpers.js?r1=189383&r2=189382&pathrev=189383
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/navigatorconnect/resources/connect-helper.js?r1=189383&r2=189382&pathrev=189383

bindings: Fixes connect-helper to use stringifyDOMObject.

JSON.stringify doesn't work with DOMObjects/DOMExceptions when we move DOM attributes to prototype chains.  Fixes layout tests to use stringifyDOMObject instead in js-test.js.

BUG= 43394 

Review URL: https://codereview.chromium.org/885343002
-----------------------------------------------------------------
Project Member

Comment 106 by bugdroid1@chromium.org, Feb 7 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e27865b72eab201b557a60b88bb648e3f8b0843f

commit e27865b72eab201b557a60b88bb648e3f8b0843f
Author: yukishiino <yukishiino@chromium.org>
Date: Sat Feb 07 12:33:37 2015

webrtc: Fixes WebRtcBrowserTest to use DOM attributes correctly.

WebRtcBrowserTest.RunsAudioVideoWebRTCCallInTwoTabs is assuming that DOM attributes are own properties on a JS obejct, which is not correct.  Blink (binding) team is working to move DOM attributes from own properties to properties on prototype chains, and then this test will break.

This CL fixes the test so that it stringifies not only own properties but also attributes on prototype chains.

BUG= 43394 

Review URL: https://codereview.chromium.org/904823002

Cr-Commit-Position: refs/heads/master@{#315198}

[modify] http://crrev.com/e27865b72eab201b557a60b88bb648e3f8b0843f/chrome/test/data/webrtc/peerconnection.js

Project Member

Comment 107 by bugdroid1@chromium.org, Feb 10 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=189859

------------------------------------------------------------------
r189859 | yukishiino@chromium.org | 2015-02-10T03:23:50.503578Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/htmlcollection-enumerated-properties.html?r1=189859&r2=189858&pathrev=189859
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/htmlformcontrolscollection-enumerated-properties.html?r1=189859&r2=189858&pathrev=189859
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/htmlallcollection-enumerated-properties.html?r1=189859&r2=189858&pathrev=189859
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/htmloptionscollection-enumerated-properties.html?r1=189859&r2=189858&pathrev=189859

layout tests: Fixes property enumeration tests.

In for (prop in obj), there is no guarantee about the order of property list.
We should not rely on a specific order of listing.  Fixes tests by sorting
properties.

BUG= 43394 

Review URL: https://codereview.chromium.org/906963002
-----------------------------------------------------------------
Project Member

Comment 108 by bugdroid1@chromium.org, Feb 17 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190287

------------------------------------------------------------------
r190287 | yukishiino@chromium.org | 2015-02-17T02:35:53.207329Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface2.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface3.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8DOMConfiguration.h?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/methods.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestException.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8DOMConfiguration.cpp?r1=190287&r2=190286&pathrev=190287
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/constants.cpp?r1=190287&r2=190286&pathrev=190287

bindings: Makes runtime-enabled attributes on prototype chains compilable.

Makes runtime-enabled "accessors" compilable.

BUG= 43394 ,424446

Review URL: https://codereview.chromium.org/922233002
-----------------------------------------------------------------
Project Member

Comment 109 by bugdroid1@chromium.org, Feb 17 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190296

------------------------------------------------------------------
r190296 | yukishiino@chromium.org | 2015-02-17T07:49:49.329282Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=190296&r2=190295&pathrev=190296
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_interface.py?r1=190296&r2=190295&pathrev=190296

bindings: Excludes conditionally-enabled accessors from V8FooAccessors.

As same as V8FooAttributes, V8FooAccessors should not include conditionally-enabled accessors.

BUG= 43394 

Review URL: https://codereview.chromium.org/931593003
-----------------------------------------------------------------
Project Member

Comment 110 by bugdroid1@chromium.org, Feb 17 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190312

------------------------------------------------------------------
r190312 | haraken@chromium.org | 2015-02-17T12:40:43.997628Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.idl?r1=190312&r2=190311&pathrev=190312
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Node.idl?r1=190312&r2=190311&pathrev=190312
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt?r1=190312&r2=190311&pathrev=190312
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-expected.txt?r1=190312&r2=190311&pathrev=190312
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Element.idl?r1=190312&r2=190311&pathrev=190312

Move popular DOM attributes to prototype chains

Design document: 
https://docs.google.com/a/google.com/document/d/1yeHTCHhulVIlrKyx9_gCguAhLfcefVOa9uxxfW2LVG0/edit

Intent-to-ship-and-implement in blink-dev: 
https://groups.google.com/a/chromium.org/d/topic/blink-dev/H0MGw0jkdn4/discussion

This CL can cause a slight regression in a couple of micro-benchmarks (e.g., Dromaeo/dom-traverse, Dromaeo/jsquery-traverse etc) but that is expected. See this spreadsheet for full performance results:
https://docs.google.com/a/google.com/spreadsheets/d/1Q6h2A11a2R4Q_MRuv_diyZCNzQBFExziXkV2MwChw48/edit#gid=622133744

BUG= 43394 

Review URL: https://codereview.chromium.org/158713002
-----------------------------------------------------------------
Project Member

Comment 111 by bugdroid1@chromium.org, Feb 17 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190342

------------------------------------------------------------------
r190342 | yukishiino@chromium.org | 2015-02-17T18:20:36.671370Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/battery-status/api-defined-expected.txt?r1=190342&r2=190341&pathrev=190342
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/battery-status/api-defined.html?r1=190342&r2=190341&pathrev=190342

bindings: Fixes battery-status test (attributes are not own properties).

The current battery-status/api-defined.html assumes that the attributes
are own properties, which is wrong.  Removes wrong assumptions.

The test still tests the existence of the attributes by using
expressions in the form of
    "attribute" in battery

BUG= 43394 

Review URL: https://codereview.chromium.org/931783002
-----------------------------------------------------------------
Project Member

Comment 112 by bugdroid1@chromium.org, Feb 17 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190345

------------------------------------------------------------------
r190345 | yukishiino@chromium.org | 2015-02-17T18:28:17.760238Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/push_messaging/resources/interfaces-worker.js?r1=190345&r2=190344&pathrev=190345

bindings: Fixes push_messaging/interfaces.html test.

Fixes http/tests/push_messaging/interfaces.html test to use assert_will_be_idl_attribute.

BUG= 43394 

Review URL: https://codereview.chromium.org/935553002
-----------------------------------------------------------------
Project Member

Comment 113 by bugdroid1@chromium.org, Feb 18 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190384

------------------------------------------------------------------
r190384 | yukishiino@chromium.org | 2015-02-18T04:13:58.916261Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/css-properties-as-js-properties.html?r1=190384&r2=190383&pathrev=190384
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/css-properties-as-js-properties-expected.txt?r1=190384&r2=190383&pathrev=190384
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/css-properties-as-js-properties-expected.txt?r1=190384&r2=190383&pathrev=190384

bindings: Fixes CSS property listing test to test attributes on prototype.

Updates css-properties-as-js-properties test so it checks attributes on a prototype chain.

BUG= 43394 

Review URL: https://codereview.chromium.org/928363002
-----------------------------------------------------------------
Project Member

Comment 114 by bugdroid1@chromium.org, Feb 18 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190391

------------------------------------------------------------------
r190391 | yukishiino@chromium.org | 2015-02-18T05:21:05.779875Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=190391&r2=190390&pathrev=190391

bindings: Fixes potential build breakage (V8DOMConfiguration::installAccessor).

The arguments of the call to V8DOMConfiguration::installAccessor in
interface_base.cpp was wrong.  This CL Fixes it.

Since the code is not yet actually used, we failed to detect the error.

BUG= 43394 

Review URL: https://codereview.chromium.org/931793002
-----------------------------------------------------------------
Project Member

Comment 115 by bugdroid1@chromium.org, Feb 18 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190421

------------------------------------------------------------------
r190421 | haraken@chromium.org | 2015-02-18T13:25:30.611471Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Node.idl?r1=190421&r2=190420&pathrev=190421
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt?r1=190421&r2=190420&pathrev=190421
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-expected.txt?r1=190421&r2=190420&pathrev=190421

Move Node.baseURI to JS prototype chains

Node.baseURI is used by a micro-benchmark (PerformanceTests/Bindings/dom-attributes-on-prototype.html), which evaluates performance of DOM attributes on prototype chains. This benchmark is used by the V8 team for their optimization work, so it is important to have Node.baseURI on a prototype chain.

This CL will slightly regress PerformanceTests/Bindings/dom-attributes-on-prototype.html, but it won't be an issue since real-world sites shouldn't be using baseURI heavily.

BUG= 43394 

Review URL: https://codereview.chromium.org/936633003
-----------------------------------------------------------------
As predicted in your mail to perf sheriffs this may have caused (significant) regressions. The graphs are here: https://chromeperf.appspot.com/group_report?bug_id=459653

The bisect bots indicate several other CLs along with this one so it may not entirely down to this CL, but most of the other CLs seem benign. The other potential CLs are listed here: https://code.google.com/p/chromium/issues/detail?id=459653

Please take a look into this as many regressions are >20%. Thanks.


Thanks for the performance summary! These regressions are expected ones (as I described in ) and I think it's OK to keep the CL in.

The regressions are happening only in Dromaeo/*traverse benchmarks and these regressions are expected ones. Regarding Dromaeo/jslibtraverse, we made larger performance progressions before making the regression. Regarding Dromaeo/domtraverse, I think Jacob landed another optimization to V8. (See here for more detailed justfication: https://groups.google.com/a/chromium.org/d/topic/blink-dev/H0MGw0jkdn4/discussion)


Project Member

Comment 118 by bugdroid1@chromium.org, Feb 20 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190589

------------------------------------------------------------------
r190589 | yukishiino@chromium.org | 2015-02-20T22:18:42.168012Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/inspector/InjectedScriptHost.idl?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/custom/V8InjectedScriptHostCustom.cpp?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8Binding.h?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/fetch/Request.idl?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/inspector/InjectedScriptSource.js?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/fetch/Response.idl?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestInterface.idl?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/IDLExtendedAttributes.txt?r1=190589&r2=190588&pathrev=190589
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8Binding.cpp?r1=190589&r2=190588&pathrev=190589

bindings,devtools: Shows DOM attribute's values in DevTools.

Shows the evaluated values of DOM attributes in DevTools (inspector)
even when DOM attributes are in a prototype chain.

However, do not show or eval DOM attributes if they have
DoNotEvalInDevTools extended attribute, which is introduced by this CL.

BUG= 450623 , 43394 

Review URL: https://codereview.chromium.org/942753003
-----------------------------------------------------------------
Project Member

Comment 119 by bugdroid1@chromium.org, Feb 25 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=190840

------------------------------------------------------------------
r190840 | yukishiino@chromium.org | 2015-02-25T16:27:23.528367Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestInterfaceCheckSecurity.idl?r1=190840&r2=190839&pathrev=190840
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestObject.idl?r1=190840&r2=190839&pathrev=190840
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/attributes.cpp?r1=190840&r2=190839&pathrev=190840
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp?r1=190840&r2=190839&pathrev=190840
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=190840&r2=190839&pathrev=190840
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=190840&r2=190839&pathrev=190840
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestTypedefs.cpp?r1=190840&r2=190839&pathrev=190840
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=190840&r2=190839&pathrev=190840
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp?r1=190840&r2=190839&pathrev=190840
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=190840&r2=190839&pathrev=190840
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=190840&r2=190839&pathrev=190840

bindings: Supports [Replaceable] accessors.

Supports [Replaceable] DOM attributes on prototype chains.

BUG= 43394 

Review URL: https://codereview.chromium.org/953473002
-----------------------------------------------------------------
Blocking: chromium:462461
Blocking: chromium:138217
Project Member

Comment 122 by bugdroid1@chromium.org, Mar 3 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=191179

------------------------------------------------------------------
r191179 | yukishiino@chromium.org | 2015-03-03T08:32:57.198434Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8Binding.h?r1=191179&r2=191178&pathrev=191179
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/attributes.cpp?r1=191179&r2=191178&pathrev=191179
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp?r1=191179&r2=191178&pathrev=191179
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=191179&r2=191178&pathrev=191179
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=191179&r2=191178&pathrev=191179
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestTypedefs.cpp?r1=191179&r2=191178&pathrev=191179
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8Binding.cpp?r1=191179&r2=191178&pathrev=191179
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=191179&r2=191178&pathrev=191179
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=191179&r2=191178&pathrev=191179
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=191179&r2=191178&pathrev=191179

bindings: Supports constructor attributes on prototype chains.

Supports constructor attributes on prototype chains.

- No one needs {{cpp_class}}ForceSetAttributeOnThisCallback.
- {{cpp_class}}ConstructorGetter does NOT depend on {{cpp_class}} or
  {{attribute}}.  Moved out to
  v8ConstructorAttributeGetterAs{Property,Accessor} in V8Binding.h.

BUG= 43394 

Review URL: https://codereview.chromium.org/968593002
-----------------------------------------------------------------
Project Member

Comment 123 by bugdroid1@chromium.org, Mar 3 2015

Cc: yukishiino@chromium.org
 Issue 464371  has been merged into this issue.
Project Member

Comment 125 by bugdroid1@chromium.org, Mar 10 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=191617

------------------------------------------------------------------
r191617 | yukishiino@chromium.org | 2015-03-10T11:58:55.560203Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/inspector/InjectedScriptSource.js?r1=191617&r2=191616&pathrev=191617
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/inspector/InjectedScriptHost.idl?r1=191617&r2=191616&pathrev=191617
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/custom/V8InjectedScriptHostCustom.cpp?r1=191617&r2=191616&pathrev=191617
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8DOMWrapper.cpp?r1=191617&r2=191616&pathrev=191617

bindings,devtools: Shows DOM attributes' values in DevTools.

A new utility function V8DOMWrapper::isWrapper provides a better way to
tell whether it's a DOM wrapper or not.  Using this function, improves
the inspector to show DOM attributes' values and not to show DOM attributes
which have observable side effect on getter.

BUG= 450623 , 43394 

Review URL: https://codereview.chromium.org/978233002
-----------------------------------------------------------------
Project Member

Comment 126 by bugdroid1@chromium.org, Mar 11 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=191676

------------------------------------------------------------------
r191676 | yukishiino@chromium.org | 2015-03-11T04:09:39.230390Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/frame/Window.idl?r1=191676&r2=191675&pathrev=191676
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/frame/Location.idl?r1=191676&r2=191675&pathrev=191676

bindings: Adds missing [Unforgeable] extended attributes.

As the spec specifies, makes Window.document and Location.ancestorOrigins
[Unforgeable].

BUG= 43394 

Review URL: https://codereview.chromium.org/992963002
-----------------------------------------------------------------
Project Member

Comment 127 by bugdroid1@chromium.org, Mar 12 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=191752

------------------------------------------------------------------
r191752 | yukishiino@chromium.org | 2015-03-12T04:45:36.326451Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestException.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/notifications/resources/instrumentation-service-worker.js?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/extensions/extensions-sidebar-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/w3c/webperf/approved/navigation-timing/html/idlharness-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceEventConstructor.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/console/console-dir-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/storage/indexeddb/keypath-intrinsic-properties-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/custom/type-extensions.html?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8SVGTestInterface.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestTypedefs.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/console/console-command-copy-expected.txt?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestNode.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/extensions/extensions-sidebar.html?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp?r1=191752&r2=191751&pathrev=191752
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/inspector/tracing/timeline-xhr-event-expected.txt?r1=191752&r2=191751&pathrev=191752

bindings: Moves most of DOM attributes to prototype chains.

Design document:
https://docs.google.com/a/google.com/document/d/1yeHTCHhulVIlrKyx9_gCguAhLfcefVOa9uxxfW2LVG0/edit

Intent-to-ship-and-implement in blink-dev:
https://groups.google.com/a/chromium.org/d/topic/blink-dev/H0MGw0jkdn4/discussion

This CL can cause a slight regression in a couple of micro-benchmarks (e.g., Dromaeo/dom-traverse, Dromaeo/jsquery-traverse etc) but that is expected. See this spreadsheet for full performance results:
https://docs.google.com/a/google.com/spreadsheets/d/1Q6h2A11a2R4Q_MRuv_diyZCNzQBFExziXkV2MwChw48/edit#gid=622133744

BUG= 43394 

Review URL: https://codereview.chromium.org/984523003
-----------------------------------------------------------------
Project Member

Comment 129 by bugdroid1@chromium.org, Mar 17 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=192005

------------------------------------------------------------------
r192005 | yukishiino@chromium.org | 2015-03-17T12:19:22.428007Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceEventConstructor.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/attributes.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/WrapperTypeInfo.h?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceEmpty.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface2.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface3.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8Uint8ClampedArray.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceDocument.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8ArrayBufferView.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8DataView.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8ArrayBuffer.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8Binding.h?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8SVGTestInterface.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestTypedefs.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestNode.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestException.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/NPV8Object.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestInterface.idl?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8Binding.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceConstructor.cpp?r1=192005&r2=192004&pathrev=192005
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=192005&r2=192004&pathrev=192005

bindings: Reduces the binary size by reducing # of callback functions.

Reduces the binary size of libblink by reducing the number of callback
functions for constructor attributes.

This CL introduces a map from WrapperTypeInfo to its interface name in string.

The size (in bytes) of out/Release/lib/libblink_web.so on Linux 64-bit build:
r191842
    43,752,904
r191842 + r191179 reverted
    43,521,840
r191842 + this CL
    43,551,952

BUG= 464004 , 43394 

Review URL: https://codereview.chromium.org/1008353002
-----------------------------------------------------------------
Project Member

Comment 130 by bugdroid1@chromium.org, Apr 2 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=193039

------------------------------------------------------------------
r193039 | yukishiino@chromium.org | 2015-04-02T14:39:36.558867Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnProperties.cpp?r1=193039&r2=193038&pathrev=193039
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/compute_interfaces_info_overall.py?r1=193039&r2=193038&pathrev=193039
   A http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestInterfaceOwnProperties.idl?r1=193039&r2=193038&pathrev=193039
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/IDLExtendedAttributes.txt?r1=193039&r2=193038&pathrev=193039
   A http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnPropertiesDerived.cpp?r1=193039&r2=193038&pathrev=193039
   A http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestInterfaceOwnPropertiesDerived.idl?r1=193039&r2=193038&pathrev=193039
   A http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceAccessors.cpp?r1=193039&r2=193038&pathrev=193039
   A http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnProperties.h?r1=193039&r2=193038&pathrev=193039
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=193039&r2=193038&pathrev=193039
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=193039&r2=193038&pathrev=193039
   A http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestInterfaceAccessors.idl?r1=193039&r2=193038&pathrev=193039
   A http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnPropertiesDerived.h?r1=193039&r2=193038&pathrev=193039
   A http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceAccessors.h?r1=193039&r2=193038&pathrev=193039

bindings: Supports {,DoNot}ExposeJSAccessors.

Adds a mechanism to move DOM attributes to prototype chains or back to
own properties interface-by-interface and/or attribute-by-attribute.

Supported syntax and examples are demonstrated in:
  TestInterfaceAccessors.idl
  TestInterfaceOwnProperties.idl

BUG= 43394 

Review URL: https://codereview.chromium.org/1052973002
-----------------------------------------------------------------

Comment 131 by arv@chromium.org, Apr 8 2015

 Issue 13170  has been merged into this issue.
Also see  bug 472260 
Labels: M-43
Plan is still to ship this in M43, right?

Project Member

Comment 134 by bugdroid1@chromium.org, Apr 9 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=193448

------------------------------------------------------------------
r193448 | yukishiino@chromium.org | 2015-04-09T14:57:52.155096Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-expected.txt?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/console/console-format-collections-expected.txt?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/svg/svglist.html?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/console/console-command-copy-expected.txt?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt?r1=193448&r2=193447&pathrev=193448
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt?r1=193448&r2=193447&pathrev=193448
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/svg/svglist-expected.txt?r1=193448&r2=193447&pathrev=193448

bindings: Move named/indexed attributes to prototype chains.

BUG= 43394 , 470671 

Review URL: https://codereview.chromium.org/1062713003
-----------------------------------------------------------------
Blocking: chromium:475556
Project Member

Comment 136 by bugdroid1@chromium.org, Apr 9 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=193476

------------------------------------------------------------------
r193476 | leviw@chromium.org | 2015-04-09T20:36:17.979449Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt?r1=193476&r2=193475&pathrev=193476
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/svg/svglist-expected.txt?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-expected.txt?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/console/console-format-collections-expected.txt?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/svg/svglist.html?r1=193476&r2=193475&pathrev=193476
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/console/console-command-copy-expected.txt?r1=193476&r2=193475&pathrev=193476

Revert of bindings: Move named/indexed attributes to prototype chains. (patchset #3 id:40001 of https://codereview.chromium.org/1062713003/)

Reason for revert:
Speculatively rolling out. Appears to be causing massive Browser Test failures: http://master.chrome.corp.google.com:8011/builders/cros%20trunk/builds/32444

crbug.com/475606

Original issue's description:
> bindings: Move named/indexed attributes to prototype chains.
> 
> BUG= 43394 , 470671 
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=193448

TBR=haraken@chromium.org,yukishiino@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 43394 , 470671 

Review URL: https://codereview.chromium.org/1078913002
-----------------------------------------------------------------
#133: Yes, we're planning to ship it in M43. We're making a blog post.

Blocking: chromium:474436
Blocking: chromium:476428
Project Member

Comment 140 by bugdroid1@chromium.org, Apr 24 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=194371

------------------------------------------------------------------
r194371 | yukishiino@chromium.org | 2015-04-24T10:23:36.878450Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=194371&r2=194370&pathrev=194371

bindings: No need to move constructor attributes to prototype chains.

I've got understanding that we do not need to (actually should not to)
move constructor attributes to prototype chains.

http://heycam.github.io/webidl/#es-interfaces
a corresponding property must exist on the ECMAScript environment's global object. The name of the property is the identifier of the interface, and its value is an object called the interface object.

I checked that
- this.hasOwnProperty('EventTarget') => true
- Object.getOwnPropertyDescriptor(this, 'EventTarget')
  => {writable: true, enumerable: false, configurable: true}
on both of Chrome and FF where |this| is the global object.

Thus, there is nothing to do so far.

BUG= 43394 

Review URL: https://codereview.chromium.org/1084593003
-----------------------------------------------------------------
I have not dug into the code - does it treat global constructors the same as non global constructors?
While I am not sure non global constructors are prevalent at all, they might need different handling.

For reference -
A global constructor is a constructor defined on the global object -
window.HTMLBodyElement

A non global constructor is a constructor defined on a non global object (hypothetical) -
window.CSS.CSSConcept

Perhaps this is irrelevant, but I wanted to stress that they might need different handling.
AFAIK, there is no attribute that returns an interface object (= a constructor) except for Window and WorkerGlobalScope which are global objects.

There are [NewObject] operations (= methods) which return a newly created object which is NOT a constructor, though.  They're not attributes and they don't return constructors.
http://heycam.github.io/webidl/#NewObject

IIUC, there is no "non global constructor".
Project Member

Comment 143 by bugdroid1@chromium.org, Apr 27 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ac0bacffa7b4f25a09abaa082a32abb599d6e318

commit ac0bacffa7b4f25a09abaa082a32abb599d6e318
Author: yukishiino <yukishiino@chromium.org>
Date: Mon Apr 27 10:30:09 2015

Fixes wrong inheritance of PrefSelect.

PrefSelect must inherit from HTMLSelectElement, otherwise it will be
broken when the DOM attributes are moved to prototype chains.

Note that HTMLSelectElement does NOT inherit from HTMLInputElement, so
it's simply wrong that PrefSelect inherits from HTMLInputElement.

BUG= 43394 

Review URL: https://codereview.chromium.org/1061263004

Cr-Commit-Position: refs/heads/master@{#327023}

[modify] http://crrev.com/ac0bacffa7b4f25a09abaa082a32abb599d6e318/chrome/browser/resources/options/pref_ui.js

Project Member

Comment 144 by bugdroid1@chromium.org, Apr 28 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=194600

------------------------------------------------------------------
r194600 | yukishiino@chromium.org | 2015-04-28T13:39:35.700479Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/console/console-command-copy-expected.txt?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/html/HTMLEmbedElement.idl?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-expected.txt?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/html/HTMLAppletElement.idl?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/inspector/console/console-format-collections-expected.txt?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/svg/svglist.html?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt?r1=194600&r2=194599&pathrev=194600
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt?r1=194600&r2=194599&pathrev=194600
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/svg/svglist-expected.txt?r1=194600&r2=194599&pathrev=194600

bindings: Move named/indexed attributes to prototype chains.

The previous CL (http://crrev.com/1062713003) was reverted because of
failures of browser_tests.  I've fixed the issue
at http://crrev.com/1061263004 , so this time should be okay ... I believe.

BUG= 43394 , 470671 

Review URL: https://codereview.chromium.org/1102313002
-----------------------------------------------------------------

Comment 145 by math...@qiwi.be, May 27 2015

For the record, the abovementioned blog post is here: http://updates.html5rocks.com/2015/04/DOM-attributes-now-on-the-prototype

Can this ticket be closed?
No, we're still actively working on many remaining issues.  The transition has not completed yet.
Blocking: chromium:490780
Blockedon: chromium:497613
Blockedon: chromium:497616
Project Member

Comment 150 by bugdroid1@chromium.org, Jun 19 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=197434

------------------------------------------------------------------
r197434 | yukishiino@chromium.org | 2015-06-19T05:50:41.870448Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Node.idl?r1=197434&r2=197433&pathrev=197434
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Element.idl?r1=197434&r2=197433&pathrev=197434
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.idl?r1=197434&r2=197433&pathrev=197434

bindings: Remove unused [ExposeJSAccessors].

We no longer need these [ExposeJSAccessors] because most of attributes
are [ExposeJSAccessors] by default.  Let's remove them.

BUG= 43394 

Review URL: https://codereview.chromium.org/1188083005
-----------------------------------------------------------------
Project Member

Comment 151 by bugdroid1@chromium.org, Jun 19 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=197453

------------------------------------------------------------------
r197453 | yukishiino@chromium.org | 2015-06-19T07:58:56.452262Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.h?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/custom/V8CustomEventCustom.cpp?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_utilities.py?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/custom/V8MessageEventCustom.cpp?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface.h?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/custom/V8ErrorEventCustom.cpp?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/custom/V8HTMLOptionsCollectionCustom.cpp?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-expected.txt?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/custom/V8PopStateEventCustom.cpp?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=197453&r2=197452&pathrev=197453
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/custom/V8XMLHttpRequestCustom.cpp?r1=197453&r2=197452&pathrev=197453

bindings: Moves custom getters/setters to the prototype chain.

Moves custom attributes to the prototype chain, and makes them accessor-
type properties.

BUG= 43394 

Review URL: https://codereview.chromium.org/1185843010
-----------------------------------------------------------------
Labels: -Cr-Blink -Cr-Blink-DOM
Project Member

Comment 153 by bugdroid1@chromium.org, Jul 10 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=198687

------------------------------------------------------------------
r198687 | yukishiino@chromium.org | 2015-07-10T13:31:15.413127Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp?r1=198687&r2=198686&pathrev=198687
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/DedicatedWorkerCacheStorage.idl?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface.h?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/security/xss-DENIED-assign-location-href-javascript-expected.txt?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/modules.gypi?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/tests/WebFrameTest.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_interface.py?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.idl?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceAccessors.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/html/HTMLDocument.idl?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8SVGTestInterface.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestTypedefs.cpp?r1=198687&r2=198686&pathrev=198687
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/ServiceWorkerCacheStorage.idl?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestNode.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/XMLDocument.idl?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp?r1=198687&r2=198686&pathrev=198687
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/SharedWorkerCacheStorage.idl?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestException.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/dom/location-stringify.html?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnProperties.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/WorkerCacheStorage.idl?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnPropertiesDerived.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/attributes.cpp?r1=198687&r2=198686&pathrev=198687
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_utilities.py?r1=198687&r2=198686&pathrev=198687
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/CompositorWorkerCacheStorage.idl?r1=198687&r2=198686&pathrev=198687

bindings: Makes almost all attributes accessor-type properties.

Introduces |attribute.is_data_type_property| as a
template variable to specify the property type.

is_data_type_property is true only for
- attributes of Window interface
  just because we'd like to move on step by step.
  We'll make Window's attributes accessor-type
  in a following CL.
- constructors
  which must be implemented as methods rather than
  attributes.  This is another task.

is_data_type_property will be gone once we resolve
the above two cases.

Note that we need an undesired hack in {HTML,XML}Document.idl
because v8::Template::SetAccessorProperty doesn't support
inheriting accessors on InstanceTemplate.

BUG= 43394 , 491006 

Review URL: https://codereview.chromium.org/1193793003
-----------------------------------------------------------------
Project Member

Comment 154 by bugdroid1@chromium.org, Jul 10 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=198698

------------------------------------------------------------------
r198698 | dpranke@chromium.org | 2015-07-10T17:10:08.250531Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.idl?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceAccessors.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/html/HTMLDocument.idl?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8SVGTestInterface.cpp?r1=198698&r2=198697&pathrev=198698
   D http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/ServiceWorkerCacheStorage.idl?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestTypedefs.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestNode.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/XMLDocument.idl?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=198698&r2=198697&pathrev=198698
   D http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/SharedWorkerCacheStorage.idl?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestException.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/dom/location-stringify.html?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnProperties.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/WorkerCacheStorage.idl?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnPropertiesDerived.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/attributes.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_utilities.py?r1=198698&r2=198697&pathrev=198698
   D http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/CompositorWorkerCacheStorage.idl?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp?r1=198698&r2=198697&pathrev=198698
   D http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/DedicatedWorkerCacheStorage.idl?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface.h?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/security/xss-DENIED-assign-location-href-javascript-expected.txt?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/modules.gypi?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_interface.py?r1=198698&r2=198697&pathrev=198698
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/tests/WebFrameTest.cpp?r1=198698&r2=198697&pathrev=198698

Revert of bindings: Makes almost all attributes accessor-type properties. (patchset #11 id:200001 of https://codereview.chromium.org/1193793003/)

Reason for revert:
This causes failures in content_browsertests, e.g.:

http://build.chromium.org/p/chromium.webkit/builders/Linux%20Tests/builds/45398

I verified that this was the issue via 'git bisect' on linux; it should be trivial to reproduce.

Sorry!

Original issue's description:
> bindings: Makes almost all attributes accessor-type properties.
> 
> Introduces |attribute.is_data_type_property| as a
> template variable to specify the property type.
> 
> is_data_type_property is true only for
> - attributes of Window interface
>   just because we'd like to move on step by step.
>   We'll make Window's attributes accessor-type
>   in a following CL.
> - constructors
>   which must be implemented as methods rather than
>   attributes.  This is another task.
> 
> is_data_type_property will be gone once we resolve
> the above two cases.
> 
> Note that we need an undesired hack in {HTML,XML}Document.idl
> because v8::Template::SetAccessorProperty doesn't support
> inheriting accessors on InstanceTemplate.
> 
> BUG= 43394 , 491006 
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=198687

TBR=haraken@chromium.org,bashi@chromium.org,yukishiino@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 43394 , 491006 

Review URL: https://codereview.chromium.org/1226203012
-----------------------------------------------------------------
Project Member

Comment 155 by bugdroid1@chromium.org, Jul 14 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=198852

------------------------------------------------------------------
r198852 | yukishiino@chromium.org | 2015-07-14T10:44:39.250569Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestException.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/modules.gypi?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnProperties.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_interface.py?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/WorkerCacheStorage.idl?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnPropertiesDerived.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.idl?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceAccessors.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/attributes.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_utilities.py?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/html/HTMLDocument.idl?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8SVGTestInterface.cpp?r1=198852&r2=198851&pathrev=198852
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/CompositorWorkerCacheStorage.idl?r1=198852&r2=198851&pathrev=198852
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/ServiceWorkerCacheStorage.idl?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestTypedefs.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestNode.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/XMLDocument.idl?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp?r1=198852&r2=198851&pathrev=198852
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/DedicatedWorkerCacheStorage.idl?r1=198852&r2=198851&pathrev=198852
   A http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/SharedWorkerCacheStorage.idl?r1=198852&r2=198851&pathrev=198852
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface.h?r1=198852&r2=198851&pathrev=198852

bindings: Makes almost all attributes accessor-type properties. (2nd try)

Introduces |attribute.is_data_type_property| as a
template variable to specify the property type.

is_data_type_property is true only for
- attributes of Window and Location interface
  just because we'd like to move on step by step.
  We'll make Window's attributes accessor-type
  in a following CL.
- constructors
  which must be implemented as methods rather than
  attributes.  This is another task.

is_data_type_property will be gone once we resolve
the above two cases.

Note that we need an undesired hack in {HTML,XML}Document.idl
and {Compositor,Dedicated,Service,Shared}WorkerCacheStorage.idl
because v8::Template::SetAccessorProperty doesn't support
inheriting accessors on InstanceTemplate.

The 1st try is: https://codereview.chromium.org/1193793003/

BUG= 43394 , 491006 

Review URL: https://codereview.chromium.org/1240433002
-----------------------------------------------------------------
Project Member

Comment 156 by bugdroid1@chromium.org, Jul 27 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=199508

------------------------------------------------------------------
r199508 | yukishiino@chromium.org | 2015-07-27T12:11:04.279339Z

Changed paths:
   D http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnPropertiesDerived.cpp?r1=199508&r2=199507&pathrev=199508
   D http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestInterfaceOwnPropertiesDerived.idl?r1=199508&r2=199507&pathrev=199508
   D http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceAccessors.cpp?r1=199508&r2=199507&pathrev=199508
   D http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnProperties.h?r1=199508&r2=199507&pathrev=199508
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=199508&r2=199507&pathrev=199508
   D http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestInterfaceAccessors.idl?r1=199508&r2=199507&pathrev=199508
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestObject.idl?r1=199508&r2=199507&pathrev=199508
   D http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnPropertiesDerived.h?r1=199508&r2=199507&pathrev=199508
   D http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceAccessors.h?r1=199508&r2=199507&pathrev=199508
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_utilities.py?r1=199508&r2=199507&pathrev=199508
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/IDLExtendedAttributes.txt?r1=199508&r2=199507&pathrev=199508
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp?r1=199508&r2=199507&pathrev=199508
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestInterfaceCheckSecurity.idl?r1=199508&r2=199507&pathrev=199508
   D http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceOwnProperties.cpp?r1=199508&r2=199507&pathrev=199508
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/compute_interfaces_info_overall.py?r1=199508&r2=199507&pathrev=199508
   D http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestInterfaceOwnProperties.idl?r1=199508&r2=199507&pathrev=199508

bindings: Retires [ExposeJSAccessors] extended attribute.

We're not using [ExposeJSAccessors] and it's unlikely to use it in future.
Let's drop the support of [ExposeJSAccessors].

BUG= 43394 

Review URL: https://codereview.chromium.org/1258913002
-----------------------------------------------------------------
Project Member

Comment 157 by bugdroid1@chromium.org, Jul 29 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=199650

------------------------------------------------------------------
r199650 | yukishiino@chromium.org | 2015-07-29T09:41:00.669882Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_utilities.py?r1=199650&r2=199649&pathrev=199650
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt?r1=199650&r2=199649&pathrev=199650
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/webexposed/global-interface-listing-expected.txt?r1=199650&r2=199649&pathrev=199650

bindings: Moves [OverrideBuiltins]'s attributes to the prototype chain.

In short, [OverrideBuiltins] extended attribute requires that
indexed/named properties appear on the instance object.  Attributes
which are not named properties should be placed on the prototype obejct
as same as regular attributes.

4.3.12. [OverrideBuiltins]
http://heycam.github.io/webidl/#OverrideBuiltins
"..., properties corresponding to all of the object’s
<supported property names> will appear to be on the object"
where <supported property names> are indexed/named properties in our words.

BUG= 43394 

Review URL: https://codereview.chromium.org/1258863003
-----------------------------------------------------------------
Project Member

Comment 158 by bugdroid1@chromium.org, Jul 29 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=199658

------------------------------------------------------------------
r199658 | yukishiino@chromium.org | 2015-07-29T12:32:07.234803Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/html/HTMLDocument.idl?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/code_generator_v8.py?r1=199658&r2=199657&pathrev=199658
   D http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/CompositorWorkerCacheStorage.idl?r1=199658&r2=199657&pathrev=199658
   D http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/ServiceWorkerCacheStorage.idl?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/compute_interfaces_info_individual.py?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/XMLDocument.idl?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_attributes.py?r1=199658&r2=199657&pathrev=199658
   D http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/DedicatedWorkerCacheStorage.idl?r1=199658&r2=199657&pathrev=199658
   D http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/SharedWorkerCacheStorage.idl?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/utilities.py?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceDocument.cpp?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/modules.gypi?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/compute_interfaces_info_overall.py?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/cachestorage/WorkerCacheStorage.idl?r1=199658&r2=199657&pathrev=199658
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/interface_dependency_resolver.py?r1=199658&r2=199657&pathrev=199658

bindings: Supports inheritance of [Unforgeable] attributes as accessor-type properties.

This CL makes it possible that we define [Unforgeable] attributes as
accessor-type JS properties, and child-interfaces inherit them from
parent-interfaces.

Note that Window and Location's attributes are still data-type properties.

Except for Event.isTrusted, there should be no behavioral change.
Event.isTrusted becomes accessor-type properties.

BUG= 43394 , 491006 , 497616 

Review URL: https://codereview.chromium.org/1257613003
-----------------------------------------------------------------
Cc: durga.behera@chromium.org
 Issue 431492  has been merged into this issue.
 Issue 115423  has been merged into this issue.
Project Member

Comment 161 by bugdroid1@chromium.org, Aug 26 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=201225

------------------------------------------------------------------
r201225 | yukishiino@chromium.org | 2015-08-26T12:37:40.996555Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/Window/window-function-frame-getter-precedence-expected.txt?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/imported/web-platform-tests/html/browsers/the-window-object/window-named-properties-expected.txt?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface2.cpp?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface3.cpp?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/dom/Window/window-function-frame-getter-precedence.html?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.cpp?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/custom/V8WindowCustom.cpp?r1=201225&r2=201224&pathrev=201225
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=201225&r2=201224&pathrev=201225

bindings: Uses V8's named property interceptor for Window.

Other attributes have already been using V8's named property interceptor.
Window is only an exception.  Let's use it for Window, too.

This CL intentionally changes the look-up behavior.
Sample code:
  iframe = document.createElement('iframe');
  iframe.name = 'alert';
  document.body.appendChild(iframe);
Before:
  window.alert => iframe with the name 'alert'
After:
  window.alert => built-in alert function

According to the spec, (non-named, regular) attributes/methods must have priority over named properties.

See "The named property visibility algorithm" at
http://heycam.github.io/webidl/#indexed-and-named-properties
The order of look-up for non-[OverrideBuiltins] interfaces (including Window) must be:
  1. Own properties.
  2. Properties from the prototype chain.
  3. Named properties.

The Intent-to-Implement-and-Ship is here:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/jlmsE3fDCNg

BUG= 43394 , 516274 

Review URL: https://codereview.chromium.org/1121703002
-----------------------------------------------------------------
Cc: sigbjo...@opera.com tkent@chromium.org rponnada@chromium.org
 Issue 138217  has been merged into this issue.
Cc: -tkent@chromium.org
 Issue 462461  has been merged into this issue.
Project Member

Comment 165 by bugdroid1@chromium.org, Sep 8 2015

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=201910

------------------------------------------------------------------
r201910 | yukishiino@chromium.org | 2015-09-08T12:01:43.787066Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestException.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8DOMConfiguration.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_methods.py?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterface5.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8DOMConfiguration.h?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/attributes.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_utilities.py?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface_base.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface2.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestTypedefs.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterface3.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/interface.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/methods.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/templates/conversions.cpp?r1=201910&r2=201909&pathrev=201910
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp?r1=201910&r2=201909&pathrev=201910

bindings: Supports to change the method location among
instance, prototype and interface.

There should be no behavioral change.

BUG= 43394 , 516274 

Review URL: https://codereview.chromium.org/1322533002
-----------------------------------------------------------------
Project Member

Comment 166 by bugdroid1@chromium.org, Sep 17 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/37799a7c9a4dc1b06d627cc17bb989c25663ada3

commit 37799a7c9a4dc1b06d627cc17bb989c25663ada3
Author: yukishiino <yukishiino@chromium.org>
Date: Thu Sep 17 08:04:39 2015

bindings: Fixes exposed JS APIs for platform apps.

We're disabling some of DOM attributes and operations for platform apps.
Since event handlers and operations in Window are going to move onto
the instance object, we need to update disabling code accordingly.

Also fixes a way to disable addEventListener.  It's defined on
EventTarget.prototype, not on Window.prototype.  Also it shouldn't
change |this| object.

This CL is a preparation of http://crrev.com/1333853002

BUG= 43394 ,  516274 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1333303002

Cr-Commit-Position: refs/heads/master@{#349376}

[modify] http://crrev.com/37799a7c9a4dc1b06d627cc17bb989c25663ada3/extensions/renderer/resources/platform_app.js

Project Member

Comment 167 by bugdroid1@chromium.org, Sep 23 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/02f59e15f683e7391594d35b29a62b6ac54fb2dc

commit 02f59e15f683e7391594d35b29a62b6ac54fb2dc
Author: yukishiino@chromium.org <yukishiino@chromium.org>
Date: Tue Sep 08 12:01:43 2015

bindings: Supports to change the method location among
instance, prototype and interface.

There should be no behavioral change.

BUG= 43394 , 516274 

Review URL: https://codereview.chromium.org/1322533002

git-svn-id: svn://svn.chromium.org/blink/trunk@201910 bbb929c8-8fbe-4397-9dbb-9b2b20218538

[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.h
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/scripts/v8_methods.py
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/templates/attributes.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/templates/conversions.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/templates/interface.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/templates/interface_base.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/templates/methods.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.cpp
[modify] http://crrev.com/02f59e15f683e7391594d35b29a62b6ac54fb2dc/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp

Project Member

Comment 168 by bugdroid1@chromium.org, Sep 25 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eb2728fc03dead670668dbeb071e8584e2a0504b

commit eb2728fc03dead670668dbeb071e8584e2a0504b
Author: yukishiino <yukishiino@chromium.org>
Date: Fri Sep 25 15:08:48 2015

bindings: Moves event handlers and methods of Window to the instance object.

Makes v8_utilities.on_{instance,prototype,interface} conformant to the spec.

Moves event handlers and methods on Window from the prototype object to
the instance object.  Also moves members of [Global] interfaces to the
instance objects.

BUG= 43394 ,  516274 

Review URL: https://codereview.chromium.org/1360233007

Cr-Commit-Position: refs/heads/master@{#350827}

[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/fast/dom/DeviceMotion/window-property-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/fast/dom/DeviceOrientation/window-property-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/fast/dom/Window/lookup-behavior-expected.txt
[delete] http://crrev.com/4196020be0a6ca36347d08a8f366992d08331bfb/third_party/WebKit/LayoutTests/fast/dom/Window/window-property-shadowing-onclick-expected.txt
[delete] http://crrev.com/4196020be0a6ca36347d08a8f366992d08331bfb/third_party/WebKit/LayoutTests/fast/dom/Window/window-property-shadowing-onclick.html
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/http/tests/security/cross-frame-access-getOwnPropertyDescriptor-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/http/tests/security/cross-frame-access-getOwnPropertyDescriptor.html
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/http/tests/security/resources/cross-frame-access.js
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/http/tests/security/w3c/cross-origin-objects-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/http/tests/security/xss-DENIED-method-with-iframe-proto-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/http/tests/security/xss-DENIED-method-with-iframe-proto.html
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/resources/global-interface-listing-worker.js
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/browsers/the-window-object/window-properties-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/webappapis/animation-frames/idlharness-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/virtual/stable/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-dedicated-worker-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-shared-worker-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-compositor-worker-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing.html
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/LayoutTests/webexposed/resources/global-interface-listing.js
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/Source/bindings/scripts/v8_methods.py
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/Source/bindings/templates/interface.cpp
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.cpp
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
[modify] http://crrev.com/eb2728fc03dead670668dbeb071e8584e2a0504b/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.cpp

Project Member

Comment 169 by bugdroid1@chromium.org, Oct 2 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6cbbe2653f6371dc632a51dc54af3856624fc0ef

commit 6cbbe2653f6371dc632a51dc54af3856624fc0ef
Author: yukishiino <yukishiino@chromium.org>
Date: Fri Oct 02 11:54:40 2015

bindings: Reduces the custom registration of methods.

Reduces the custom registration of methods.  Also supports
per-member *static* [Exposed] operation.

With this CL, Notification.requestPermission() is exposed
only when the global object is Window.

BUG= 43394 ,  516274 ,  442139 

Review URL: https://codereview.chromium.org/1372373002

Cr-Commit-Position: refs/heads/master@{#352006}

[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.h
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.cpp
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.h
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/scripts/v8_methods.py
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/templates/interface.cpp
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/templates/interface.h
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/templates/interface_base.cpp
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/templates/methods.cpp
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/templates/partial_interface.cpp
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/bindings/templates/partial_interface.h
[modify] http://crrev.com/6cbbe2653f6371dc632a51dc54af3856624fc0ef/third_party/WebKit/Source/modules/notifications/Notification.idl

Project Member

Comment 170 by bugdroid1@chromium.org, Oct 5 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/36b22ec535dfa52829d7e3651bf664ab416287ec

commit 36b22ec535dfa52829d7e3651bf664ab416287ec
Author: yukishiino <yukishiino@chromium.org>
Date: Mon Oct 05 04:51:00 2015

distiller: Retires support of CreateNewContext.

The binding team in Blink is working to make the implementation of
"window" JS object comformant to the web spec.  Once it gets implemented
correctly, you can no longer create a fake "window" object just by
calling Object.create(window).  Such a fake "window" object cannot pass
our upcoming type check.

Thus, this CL removes support of such a fake "window" object.

WIP CL http://crrev.com/1380503002 requires this change.

BUG= 43394 ,  516274 
TEST=Ran DomDistillerTabUtilsBrowserTest in browser_tests and DistillerPageWebContentsTest in components_browsertests.

Review URL: https://codereview.chromium.org/1384433002

Cr-Commit-Position: refs/heads/master@{#352294}

[modify] http://crrev.com/36b22ec535dfa52829d7e3651bf664ab416287ec/components/dom_distiller/content/browser/distiller_page_web_contents.cc
[modify] http://crrev.com/36b22ec535dfa52829d7e3651bf664ab416287ec/components/dom_distiller/content/browser/distiller_page_web_contents.h
[modify] http://crrev.com/36b22ec535dfa52829d7e3651bf664ab416287ec/components/dom_distiller/core/distiller_page.cc
[modify] http://crrev.com/36b22ec535dfa52829d7e3651bf664ab416287ec/components/dom_distiller/core/distiller_page.h
[modify] http://crrev.com/36b22ec535dfa52829d7e3651bf664ab416287ec/components/dom_distiller/core/fake_distiller_page.h
[modify] http://crrev.com/36b22ec535dfa52829d7e3651bf664ab416287ec/components/dom_distiller/core/javascript/domdistiller.js
[modify] http://crrev.com/36b22ec535dfa52829d7e3651bf664ab416287ec/components/dom_distiller/ios/distiller_page_ios.h
[modify] http://crrev.com/36b22ec535dfa52829d7e3651bf664ab416287ec/components/dom_distiller/ios/distiller_page_ios.mm

Project Member

Comment 171 by bugdroid1@chromium.org, Oct 5 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/baa79511a1d30f587ebf9c8fa60bc6e1957e7137

commit baa79511a1d30f587ebf9c8fa60bc6e1957e7137
Author: jsbell <jsbell@chromium.org>
Date: Mon Oct 05 17:58:50 2015

Reset bindings results following r352006

Recent change crrev.com/1372373002/ updated the bindings templates
but didn't rebaseline the results. Ooops!

TBR=yukishiino@chromium.org,haraken@chromium.org
BUG= 43394 , 516274 , 442139 

Review URL: https://codereview.chromium.org/1385003002

Cr-Commit-Position: refs/heads/master@{#352348}

[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBuffer.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8ArrayBufferView.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8DataView.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8SVGTestInterface.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestException.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface2.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface3.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor2.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor3.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceConstructor4.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCustomConstructor.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceDocument.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEmpty.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInitConstructor.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventTarget.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceGarbageCollected.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNamedConstructor2.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceNode.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceWillBeGarbageCollected.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestNode.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestObject.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperations.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestSpecialOperationsNotEnumerable.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8TestTypedefs.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/core/V8Uint8ClampedArray.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterface5.h
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp
[modify] http://crrev.com/baa79511a1d30f587ebf9c8fa60bc6e1957e7137/third_party/WebKit/Source/bindings/tests/results/modules/V8TestInterfacePartial.h

Blocking: 598115
Blocking: 598113
Cc: rbyers@chromium.org
Labels: -M-43 m-43
Status: Fixed (was: Started)
The main issue (as described in the summary) has been fixed since Chrome-43, right?

https://developers.google.com/web/updates/2015/04/DOM-attributes-now-on-the-prototype-chain?hl=en

Shall we call this fixed and rely on separate bugs to track whatever edge cases remain?

Comment 175 by raggi@google.com, Apr 11 2016

I provided a replication in my report that got duplicated against this bug. That replication case is not fixed:
https://gist.github.com/raggi/df9d8170164c6a29bc4a

See my original report here:
https://bugs.chromium.org/p/chromium/issues/detail?id=380385

Thanks for reminding us.  Updated  Issue 380385  .
Project Member

Comment 177 by bugdroid1@chromium.org, May 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9ac1750adf85027985c7af3468e0b972c2086235

commit 9ac1750adf85027985c7af3468e0b972c2086235
Author: yukishiino <yukishiino@chromium.org>
Date: Mon May 02 05:04:21 2016

binding: Makes Window/Location's attributes accessor-type properties.

Makes almost all the attributes (except for cross-origin accessible
attributes) accessor-type properties.  The target attributes in this
CL are DOM attributes of Window, Location and workers not annotated
as [DoNotCheckSecurity], which are cross-origin accessible.

BUG= 43394 ,  516274 

Review-Url: https://codereview.chromium.org/1380503002
Cr-Commit-Position: refs/heads/master@{#390893}

[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/Window/replaceable-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/Window/replaceable.html
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/constructed-objects-prototypes-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/everything-to-string-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/dom/lenient-this.html
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/fast/js/global-constructors-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/http/tests/dom/location-stringify.html
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/http/tests/security/cross-origin-access-over-property-descriptor-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/http/tests/security/cross-origin-access-over-property-descriptor.html
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/http/tests/security/isolatedWorld/all-window-properties-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/http/tests/security/isolatedWorld/all-window-prototypes-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/imported/web-platform-tests/IndexedDB/interfaces-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/browsers/the-window-object/window-properties-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/imported/web-platform-tests/webstorage/idlharness-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/Source/bindings/scripts/idl_types.py
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/Source/bindings/scripts/v8_attributes.py
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/Source/bindings/templates/attributes.cpp
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp
[modify] https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp

Project Member

Comment 178 by bugdroid1@chromium.org, May 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b832a84ce777bc4ea348c2e1eba7844e83f5bd8c

commit b832a84ce777bc4ea348c2e1eba7844e83f5bd8c
Author: jsbell <jsbell@chromium.org>
Date: Mon May 02 20:36:02 2016

Layout Tests: Remove assert_will_be_idl_attribute() helper

Now that DOM attributes are on prototype chains, just use
assert_idl_attribute().

BUG= 43394 

Review-Url: https://codereview.chromium.org/1936533003
Cr-Commit-Position: refs/heads/master@{#391046}

[modify] https://crrev.com/b832a84ce777bc4ea348c2e1eba7844e83f5bd8c/third_party/WebKit/LayoutTests/http/tests/background_sync/resources/interfaces-worker.js
[modify] https://crrev.com/b832a84ce777bc4ea348c2e1eba7844e83f5bd8c/third_party/WebKit/LayoutTests/http/tests/permissions/resources/test-api-surface.js
[modify] https://crrev.com/b832a84ce777bc4ea348c2e1eba7844e83f5bd8c/third_party/WebKit/LayoutTests/http/tests/push_messaging/resources/interfaces-worker.js
[modify] https://crrev.com/b832a84ce777bc4ea348c2e1eba7844e83f5bd8c/third_party/WebKit/LayoutTests/http/tests/push_messaging/resources/pushevent-extendable-event.js
[modify] https://crrev.com/b832a84ce777bc4ea348c2e1eba7844e83f5bd8c/third_party/WebKit/LayoutTests/http/tests/push_messaging/subscribe-success-in-document.html
[modify] https://crrev.com/b832a84ce777bc4ea348c2e1eba7844e83f5bd8c/third_party/WebKit/LayoutTests/http/tests/resources/testharness-helpers.js
[modify] https://crrev.com/b832a84ce777bc4ea348c2e1eba7844e83f5bd8c/third_party/WebKit/LayoutTests/resources/testharness-helpers.js

Project Member

Comment 179 by bugdroid1@chromium.org, May 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0e0d4e2542246e3a53e070aaf82e7570a145bc2a

commit 0e0d4e2542246e3a53e070aaf82e7570a145bc2a
Author: yukishiino <yukishiino@chromium.org>
Date: Mon May 09 14:53:54 2016

Revert of binding: Makes Window/Location's attributes accessor-type properties. (patchset #27 id:520001 of https://codereview.chromium.org/1380503002/ )

Reason for revert:
We hit a (huge) performance regression.  See  http://crbug.com/608475  .

Original issue's description:
> binding: Makes Window/Location's attributes accessor-type properties.
>
> Makes almost all the attributes (except for cross-origin accessible
> attributes) accessor-type properties.  The target attributes in this
> CL are DOM attributes of Window, Location and workers not annotated
> as [DoNotCheckSecurity], which are cross-origin accessible.
>
> BUG= 43394 ,  516274 
>
> Committed: https://crrev.com/9ac1750adf85027985c7af3468e0b972c2086235
> Cr-Commit-Position: refs/heads/master@{#390893}

TBR=tkent@chromium.org,haraken@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 43394 ,  516274 

Review-Url: https://codereview.chromium.org/1958883003
Cr-Commit-Position: refs/heads/master@{#392315}

[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/Window/replaceable-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/Window/replaceable.html
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/constructed-objects-prototypes-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/everything-to-string-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/dom/lenient-this.html
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/fast/js/global-constructors-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/http/tests/dom/location-stringify.html
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/http/tests/security/cross-origin-access-over-property-descriptor-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/http/tests/security/cross-origin-access-over-property-descriptor.html
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/http/tests/security/isolatedWorld/all-window-properties-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/http/tests/security/isolatedWorld/all-window-prototypes-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/imported/web-platform-tests/IndexedDB/interfaces-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/browsers/the-window-object/window-properties-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/imported/web-platform-tests/webstorage/idlharness-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/Source/bindings/core/v8/custom/V8WindowCustom.cpp
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/Source/bindings/scripts/idl_types.py
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/Source/bindings/scripts/v8_attributes.py
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/Source/bindings/templates/attributes.cpp
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterface.cpp
[modify] https://crrev.com/0e0d4e2542246e3a53e070aaf82e7570a145bc2a/third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceCheckSecurity.cpp

Showing comments 80 - 179 of 179 Older

Sign in to add a comment