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

Issue 2665733002: [wrapper-tracing] For a worker, mark relative to its wrapper map. (Closed)

Created:
3 years, 10 months ago by Michael Lippautz
Modified:
3 years, 10 months ago
CC:
blink-reviews, blink-reviews-bindings_chromium.org, chromium-reviews
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[wrapper-tracing] For a worker, mark relative to its wrapper map. If marking a ScriptWrappable's wrapper object in a worker context, do that by consulting the worker's underlying DOMWrapperMap. Store the worker world in TLS, as we cannot rely on the context of the isolate during marking as we might mark without a stack (and thus context). BUG=chromium:686563 patch from issue 2663643002 at patchset 140001 (http://crrev.com/2663643002#ps140001) Review-Url: https://codereview.chromium.org/2665733002 Cr-Commit-Position: refs/heads/master@{#447604} Committed: https://chromium.googlesource.com/chromium/src/+/ae599161857edda9ecbed70494c220f7f711600f

Patch Set 1 : patch from issue 2663643002 at patchset 140001 #

Patch Set 2 : Fix InContext #

Patch Set 3 : Store worker world in TLS #

Patch Set 4 : Dont depend on context when marking #

Total comments: 3

Patch Set 5 : Worker worlds can also exist on the main thread #

Total comments: 6

Patch Set 6 : Address comments #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+54 lines, -8 lines) Patch
A third_party/WebKit/LayoutTests/fast/workers/resources/worker-xhr-onerror.js View 1 chunk +10 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/workers/worker-gc-alive.html View 1 chunk +17 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp View 1 2 3 4 5 4 chunks +26 lines, -8 lines 2 comments Download

Messages

Total messages: 43 (30 generated)
Michael Lippautz
ptal; body still slightly aligned to CET ;)
3 years, 10 months ago (2017-02-01 15:06:28 UTC) #16
NGG1
It seems to work for me now both with self.gc() and forcing it from the ...
3 years, 10 months ago (2017-02-01 16:00:47 UTC) #20
haraken
https://codereview.chromium.org/2665733002/diff/120001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2665733002/diff/120001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode108 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:108: DOMWrapperWorld*& DOMWrapperWorld::workerWorld() { Can we avoid introducing workerWorld() by ...
3 years, 10 months ago (2017-02-01 16:18:17 UTC) #21
NGG1
https://codereview.chromium.org/2665733002/diff/120001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2665733002/diff/120001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode108 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:108: DOMWrapperWorld*& DOMWrapperWorld::workerWorld() { On 2017/02/01 at 16:18:16, haraken wrote: ...
3 years, 10 months ago (2017-02-01 16:25:28 UTC) #22
Michael Lippautz
On 2017/02/01 16:18:17, haraken wrote: > https://codereview.chromium.org/2665733002/diff/120001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp > File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): > > https://codereview.chromium.org/2665733002/diff/120001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode108 > ...
3 years, 10 months ago (2017-02-01 16:30:29 UTC) #23
haraken
https://codereview.chromium.org/2665733002/diff/140001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2665733002/diff/140001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode108 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:108: DOMWrapperWorld*& DOMWrapperWorld::workerWorld() { Can you unify mainWorld() and workerWorld() ...
3 years, 10 months ago (2017-02-01 17:23:02 UTC) #26
Michael Lippautz
https://codereview.chromium.org/2665733002/diff/140001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2665733002/diff/140001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode108 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:108: DOMWrapperWorld*& DOMWrapperWorld::workerWorld() { On 2017/02/01 17:23:02, haraken wrote: > ...
3 years, 10 months ago (2017-02-01 18:00:38 UTC) #27
haraken
On 2017/02/01 18:00:38, Michael Lippautz (slow travel) wrote: > https://codereview.chromium.org/2665733002/diff/140001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp > File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): > ...
3 years, 10 months ago (2017-02-01 18:57:56 UTC) #30
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/2665733002/160001
3 years, 10 months ago (2017-02-01 20:56:45 UTC) #35
commit-bot: I haz the power
Committed patchset #6 (id:160001) as https://chromium.googlesource.com/chromium/src/+/ae599161857edda9ecbed70494c220f7f711600f
3 years, 10 months ago (2017-02-01 21:03:04 UTC) #39
sof
lgtm https://codereview.chromium.org/2665733002/diff/160001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp File third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp (right): https://codereview.chromium.org/2665733002/diff/160001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode95 third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp:95: if (worldId == WorkerWorldId) { nit: isWorkerWorld() https://codereview.chromium.org/2665733002/diff/160001/third_party/WebKit/Source/bindings/core/v8/DOMWrapperWorld.cpp#newcode190 ...
3 years, 10 months ago (2017-02-01 22:05:19 UTC) #41
sof
Not entirely sure, but it does look like this added a flaky crash, https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Win7__dbg_/8927/layout-test-results/virtual/threaded/fast/idle-callback/basic-crash-log.txt
3 years, 10 months ago (2017-02-06 11:45:49 UTC) #42
sof
3 years, 10 months ago (2017-02-06 12:45:01 UTC) #43
Message was sent while issue was closed.
On 2017/02/06 11:45:49, sof wrote:
> Not entirely sure, but it does look like this added a flaky crash,
> 
> 
>
https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Win7__dbg...

Better stack here,
https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Linux_Tru...

looks like the workerWorld() unregistration needs to (eagerly) happen in
DOMWrapperWorld::dispose().

Powered by Google App Engine
This is Rietveld 408576698