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

Issue 2735823006: Bindings: Manage multiple DOMWrapperWorlds for worklets (Closed)

Created:
3 years, 9 months ago by nhiroki
Modified:
3 years, 9 months ago
Reviewers:
haraken, peria, Yuki
CC:
blink-reviews, blink-reviews-bindings_chromium.org, chromium-reviews, jbroman
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Bindings: Manage multiple DOMWrapperWorlds for worklets Before this CL, there are 2 issues: 1) DOMWrapperWorld for a worker-or-worklet is managed as per-thread singleton. This doesn't work when multiple worklets are created on the same thread. 2) DOMWrapperWorld assumes that a worker-or-worklet world is never created on the main thread, but actually it's possible for the main thread worklet (i.e. PaintWorklet). This CL introduces a per-thread |worldMap| to manage multiple worker-or-worklet worlds on a single thread for the issue 1), and teaches the main thread that there can be worker-or-worklet worlds for the issue 2). BUG=697622, 697629 Review-Url: https://codereview.chromium.org/2735823006 Cr-Commit-Position: refs/heads/master@{#456683} Committed: https://chromium.googlesource.com/chromium/src/+/0fe6bc1c1b65086da86d225ac7dfe9b00a317a1e

Patch Set 1 #

Total comments: 4

Patch Set 2 : rebase #

Patch Set 3 : WIP #

Patch Set 4 : WIP #

Patch Set 5 : fix tests #

Patch Set 6 : fix tests #

Patch Set 7 : rebase #

Patch Set 8 : ready to review #

Total comments: 16

Patch Set 9 : address review comments #

Patch Set 10 : address review comments #

Total comments: 2

Patch Set 11 : s/lastUsedWorldId/lastGeneratedWorldId #

Total comments: 4

Patch Set 12 : ThreadSpecific #

Total comments: 4

Patch Set 13 : address review comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+76 lines, -61 lines) Patch
M third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.h View 1 2 3 9 10 11 2 chunks +5 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 8 chunks +71 lines, -53 lines 0 comments Download

Messages

Total messages: 76 (47 generated)
nhiroki
PTAL. Is this a right fix?
3 years, 9 months ago (2017-03-07 09:57:37 UTC) #6
Yuki
https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode106 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:106: map.insert(worldId, this); Does this support multiple worlds in a ...
3 years, 9 months ago (2017-03-07 10:17:16 UTC) #10
nhiroki
Thanks for your comment! https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode106 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:106: map.insert(worldId, this); On 2017/03/07 10:17:16, ...
3 years, 9 months ago (2017-03-07 10:45:15 UTC) #11
nhiroki
https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode106 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:106: map.insert(worldId, this); On 2017/03/07 10:45:14, nhiroki (slow) wrote: > ...
3 years, 9 months ago (2017-03-07 10:51:40 UTC) #12
Yuki
https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode106 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:106: map.insert(worldId, this); On 2017/03/07 10:51:40, nhiroki (slow) wrote: > ...
3 years, 9 months ago (2017-03-07 11:51:26 UTC) #13
haraken
On 2017/03/07 11:51:26, Yuki(slow_til_mar08) wrote: > https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp > File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): > > https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode106 > ...
3 years, 9 months ago (2017-03-07 11:57:33 UTC) #14
nhiroki
On 2017/03/07 11:57:33, haraken wrote: > On 2017/03/07 11:51:26, Yuki(slow_til_mar08) wrote: > > > https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp ...
3 years, 9 months ago (2017-03-07 15:12:45 UTC) #15
peria
On 2017/03/07 15:12:45, nhiroki (slow) wrote: > These assumption are no longer correct because multiple ...
3 years, 9 months ago (2017-03-08 02:14:51 UTC) #17
peria
On 2017/03/07 10:51:40, nhiroki (slow) wrote: > https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp > File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): > > https://codereview.chromium.org/2735823006/diff/1/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode106 ...
3 years, 9 months ago (2017-03-08 02:17:00 UTC) #18
nhiroki
On 2017/03/08 02:17:00, peria wrote: > On 2017/03/07 10:51:40, nhiroki (slow) wrote: > > > ...
3 years, 9 months ago (2017-03-08 02:34:14 UTC) #19
nhiroki
On 2017/03/08 02:14:51, peria wrote: > On 2017/03/07 15:12:45, nhiroki (slow) wrote: > > These ...
3 years, 9 months ago (2017-03-08 02:50:50 UTC) #20
peria
On 2017/03/08 02:50:50, nhiroki (slow) wrote: > On 2017/03/08 02:14:51, peria wrote: > > On ...
3 years, 9 months ago (2017-03-08 03:39:49 UTC) #21
nhiroki
On 2017/03/08 02:50:50, nhiroki (slow) wrote: > On 2017/03/08 02:14:51, peria wrote: > > On ...
3 years, 9 months ago (2017-03-08 03:40:26 UTC) #22
nhiroki
On 2017/03/08 03:40:26, nhiroki (slow) wrote: > On 2017/03/08 02:50:50, nhiroki (slow) wrote: > > ...
3 years, 9 months ago (2017-03-08 06:47:18 UTC) #23
haraken
On 2017/03/08 06:47:18, nhiroki (slow) wrote: > On 2017/03/08 03:40:26, nhiroki (slow) wrote: > > ...
3 years, 9 months ago (2017-03-08 09:33:35 UTC) #24
nhiroki
Updated the whole patch based on my cleanup ( https://codereview.chromium.org/2735973006/). Please take another look. The ...
3 years, 9 months ago (2017-03-14 06:25:07 UTC) #49
peria
over all, it looks good to me. :) https://codereview.chromium.org/2735823006/diff/180001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2735823006/diff/180001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode135 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:135: } ...
3 years, 9 months ago (2017-03-14 07:10:49 UTC) #51
Yuki
LGTM. https://codereview.chromium.org/2735823006/diff/180001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2735823006/diff/180001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode347 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:347: static int s_lastUsedWorldId = nit: Better to put ...
3 years, 9 months ago (2017-03-14 08:06:00 UTC) #54
haraken
Why do we need
3 years, 9 months ago (2017-03-14 08:53:59 UTC) #57
haraken
Why do we need to differentiate isolatedWorldMap() from worldMap()? Can we use the same map ...
3 years, 9 months ago (2017-03-14 08:54:29 UTC) #58
Yuki
I think that haraken's idea is good, but also think that we can do it ...
3 years, 9 months ago (2017-03-14 09:05:21 UTC) #59
nhiroki
Thank you for your comments! https://codereview.chromium.org/2735823006/diff/180001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2735823006/diff/180001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode135 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:135: } On 2017/03/14 07:10:49, ...
3 years, 9 months ago (2017-03-14 09:14:39 UTC) #60
haraken
Assuming that the worldMap is gone in a follow-up CL, looks good. https://codereview.chromium.org/2735823006/diff/240001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp ...
3 years, 9 months ago (2017-03-14 09:18:20 UTC) #63
nhiroki
Thank you. On 2017/03/14 09:18:20, haraken wrote: > Assuming that the worldMap is gone in ...
3 years, 9 months ago (2017-03-14 09:39:05 UTC) #66
haraken
LGTM
3 years, 9 months ago (2017-03-14 09:47:06 UTC) #67
peria
non OWNER lgtm. https://codereview.chromium.org/2735823006/diff/180001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2735823006/diff/180001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode135 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:135: } On 2017/03/14 09:14:38, nhiroki (slow) ...
3 years, 9 months ago (2017-03-14 09:52:46 UTC) #68
nhiroki
Thank you! https://codereview.chromium.org/2735823006/diff/240001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.h File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.h (right): https://codereview.chromium.org/2735823006/diff/240001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.h#newcode147 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.h:147: static unsigned s_numberOfNonMainWorldsInMainThread; On 2017/03/14 09:52:46, peria ...
3 years, 9 months ago (2017-03-14 10:58:28 UTC) #70
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/2735823006/300001
3 years, 9 months ago (2017-03-14 10:59:10 UTC) #73
commit-bot: I haz the power
3 years, 9 months ago (2017-03-14 13:23:43 UTC) #76
Message was sent while issue was closed.
Committed patchset #13 (id:300001) as
https://chromium.googlesource.com/chromium/src/+/0fe6bc1c1b65086da86d225ac7df...

Powered by Google App Engine
This is Rietveld 408576698