binding: Changes the association among global-proxy/global/window-instance (2nd attempt).
The first attempt is:
https://crrev.com/2617733004
Since V8 now supports internal fields for the global proxies,
let's change the mappings among global proxy / global object /
C++ instance in Blink.
With this CL, the global proxy and C++ instance point to each
other, and a global object points to the C++ instance (without
reverse pointer).
Note that this CL makes one big difference. For non-window objects,
Blink objects always live longer than V8 wrappers. This CL
introduces an exception; DOMWindow may be collected before the V8
wrapper object gets collected because the V8 wrapper is the global
proxy which remains the same while navigations.
BUG=
675872
Review-Url:
https://codereview.chromium.org/2693893007
Cr-Commit-Position: refs/heads/master@{#465197}
Committed:
https://chromium.googlesource.com/chromium/src/+/ae0d679c61a85bc16722724a4a96e30a1dee9dd2