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

Issue 2693893007: binding: Changes the association among global-proxy/global/window-instance (2nd attempt). (Closed)

Created:
3 years, 10 months ago by Yuki
Modified:
3 years, 8 months ago
Reviewers:
haraken, dcheng
CC:
chromium-reviews, blink-reviews-html_chromium.org, sof, eae+blinkwatch, blink-reviews-dom_chromium.org, dglazkov+blink, blink-reviews-bindings_chromium.org, blink-reviews, rwlbuis
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

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

Patch Set 1 : Copied from https://crrev.com/2617733004 #

Patch Set 2 : Partial fix (WIP) #

Patch Set 3 : Synced. #

Patch Set 4 : Synced. #

Patch Set 5 : Synced + Updated DOMWindow::Wrap. #

Patch Set 6 : Updated RemoteWindowProxy, too. #

Patch Set 7 : Fixed a typo in DOMWrapperWorld::DissociateDOMWindowWrappersInAllWorlds. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+106 lines, -182 lines) Patch
M third_party/WebKit/LayoutTests/fast/dom/defaultView-on-detached-document.html View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/fast/dom/defaultView-on-detached-document-expected.txt View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/bindings/bindings.gni View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/DOMDataStore.h View 1 2 3 4 5 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/DOMWrapperMap.h View 1 2 3 4 5 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.h View 1 2 2 chunks +24 lines, -1 line 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp View 1 2 3 4 5 6 2 chunks +13 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp View 1 2 2 chunks +5 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/RemoteWindowProxy.cpp View 1 2 3 4 5 2 chunks +5 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/ScriptWrappable.h View 1 2 3 4 5 1 chunk +8 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/ToV8ForCore.h View 1 2 1 chunk +0 lines, -22 lines 0 comments Download
D third_party/WebKit/Source/bindings/core/v8/ToV8ForCore.cpp View 1 2 3 4 1 chunk +0 lines, -37 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/V8Binding.h View 1 2 3 4 5 4 chunks +0 lines, -75 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp View 1 2 3 4 5 2 chunks +5 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/WindowProxy.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/WrapperTypeInfo.h View 1 2 3 4 5 2 chunks +4 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Document.h View 1 2 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Document.cpp View 1 2 1 chunk +7 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Document.idl View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/frame/DOMWindow.h View 1 2 3 4 5 1 chunk +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/frame/DOMWindow.cpp View 1 2 3 4 5 2 chunks +16 lines, -16 lines 0 comments Download
M third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 29 (24 generated)
Yuki
haraken@, could you review this CL? dcheng@ FYI, as he is ooo.
3 years, 8 months ago (2017-04-18 10:32:06 UTC) #22
haraken
LGTM
3 years, 8 months ago (2017-04-18 11:26:24 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2693893007/120001
3 years, 8 months ago (2017-04-18 11:27:43 UTC) #25
commit-bot: I haz the power
Committed patchset #7 (id:120001) as https://chromium.googlesource.com/chromium/src/+/ae0d679c61a85bc16722724a4a96e30a1dee9dd2
3 years, 8 months ago (2017-04-18 11:32:46 UTC) #28
Yuki
3 years, 8 months ago (2017-04-27 04:35:32 UTC) #29
Message was sent while issue was closed.
On 2017/04/18 11:32:46, commit-bot: I haz the power wrote:
> Committed patchset #7 (id:120001) as
>
https://chromium.googlesource.com/chromium/src/+/ae0d679c61a85bc16722724a4a96...

A manual revert CL was created at:
https://codereview.chromium.org/2848503002/

Due to several dependencies, it's hard to revert
the CL mechanically.  So, I made a revert CL
manually.

Powered by Google App Engine
This is Rietveld 408576698