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 8 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac , Fuchsia
Pri: 3
Type: Bug

Blocked on:
issue 928781
issue 757440
issue 841830
issue 878321
issue 885125
issue 889396
issue 902286
issue 903586
issue 903776
issue 903777
issue 903790
issue 911019
issue 916022
issue 916200
issue 917744
issue 919079
issue 927264
issue 929061
issue 929064

Blocking:
issue 759519
issue 796145
issue 881688



Sign in to add a comment
link

Issue 843903: Unified garbage collection for Blink and V8

Reported by mlippautz@chromium.org, May 17 2018 Project Member

Issue description

Tracking bug for unifying garbage collection between Blink and V8.
 
Showing comments 109 - 208 of 208 Older

Comment 109 by bugdroid1@chromium.org, Sep 19

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/fe566be004fd4ad351db15e84ea346887c423033

commit fe566be004fd4ad351db15e84ea346887c423033
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Sep 19 14:14:06 2018

[heap] Concurrently process wrapper objects

Concurrently process objects and only read embedder fields on the main
thread.

Also prepares the concurrent marking infrastructure to plug this
processing into different types.

Bug:  chromium:885125 , chromium:843903
Change-Id: I23b7f778c16cff118dec93e11e2bbd02aaf11a78
Reviewed-on: https://chromium-review.googlesource.com/1231175
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56043}
[modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/concurrent-marking.cc
[modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/concurrent-marking.h
[modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/heap.cc
[modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/incremental-marking.cc
[modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/incremental-marking.h
[modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/mark-compact-inl.h
[modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/mark-compact.cc
[modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/mark-compact.h
[modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/test/cctest/heap/test-concurrent-marking.cc

Comment 110 by bugdroid1@chromium.org, Sep 20

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953

commit c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Sep 20 09:04:01 2018

[heap] Introduce sub-visitors for JSArrayBufferView

Introduces visitor methods for
- JSDataView
- JSTypedArray

Bug:  chromium:885125 , chromium:843903
Change-Id: I812eaf0619034641c6998f9d164bee84bc4c6ca2
Reviewed-on: https://chromium-review.googlesource.com/1235693
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56061}
[modify] https://crrev.com/c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953/src/heap/concurrent-marking.cc
[modify] https://crrev.com/c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953/src/heap/objects-visiting.h
[modify] https://crrev.com/c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953/src/objects.cc
[modify] https://crrev.com/c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953/src/objects/map.h

Comment 111 by bugdroid1@chromium.org, Sep 20

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4d9f09b513c45d292af618d5a57607c41f821f9e

commit 4d9f09b513c45d292af618d5a57607c41f821f9e
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Sep 20 14:39:22 2018

[heap] Add support for non-API wrapper types

Adds support for tracing wrappers of the following types:
- JSArrayBuffer
- JSDataView
- JSTypedArray

Unlike API objects, these objects are equipped with embedder fields at compile
time and can thus be attached to Blink objects at any time.

Bug:  chromium:885125 , chromium:843903
Change-Id: If2dab4831f42a4edc0748b7071d451fe1953f076
Reviewed-on: https://chromium-review.googlesource.com/1234418
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56092}
[modify] https://crrev.com/4d9f09b513c45d292af618d5a57607c41f821f9e/src/heap/concurrent-marking.cc
[modify] https://crrev.com/4d9f09b513c45d292af618d5a57607c41f821f9e/src/heap/mark-compact-inl.h
[modify] https://crrev.com/4d9f09b513c45d292af618d5a57607c41f821f9e/src/heap/mark-compact.h
[modify] https://crrev.com/4d9f09b513c45d292af618d5a57607c41f821f9e/src/objects.cc
[modify] https://crrev.com/4d9f09b513c45d292af618d5a57607c41f821f9e/src/objects.h

Comment 112 by bugdroid1@chromium.org, Sep 20

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6

commit 261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Sep 20 19:20:35 2018

[api] Add getter for EmbedderHeapTracer

Bug: chromium:843903
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I93fffd197d1742d0b00e69e0967a9efb47921208
Reviewed-on: https://chromium-review.googlesource.com/1236253
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56102}
[modify] https://crrev.com/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6/include/v8.h
[modify] https://crrev.com/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6/src/api.cc
[modify] https://crrev.com/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6/src/heap/embedder-tracing.h
[modify] https://crrev.com/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6/src/heap/heap.cc
[modify] https://crrev.com/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6/src/heap/heap.h

Comment 113 by bugdroid1@chromium.org, Sep 24

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5b64e891917d845d28f17bf228a2395e95f6ddb4

commit 5b64e891917d845d28f17bf228a2395e95f6ddb4
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Sep 24 11:10:00 2018

content: Add asyncCollectGarbage to GCController

Adds an async GC call to GCController which is used from asyncGC() during layout
tests.

Currently the async GC calls a regular V8 GC which schedules a precise Oilpan GC
as followup. In a unified GC world a V8 GC runs both, V8's GC and Oilpan, with
the difference that it has to conservatively scan the stack as Oilpan is not run
from the event loop. This is fixed by posting a task and calling a V8 GC
indicating that there's no relevant stack present.

Bug: chromium:843903
Change-Id: I411d63df4aa61b51928aded86d998ad78af35a1e
Reviewed-on: https://chromium-review.googlesource.com/1236074
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593503}
[modify] https://crrev.com/5b64e891917d845d28f17bf228a2395e95f6ddb4/content/shell/test_runner/gc_controller.cc
[modify] https://crrev.com/5b64e891917d845d28f17bf228a2395e95f6ddb4/content/shell/test_runner/gc_controller.h
[modify] https://crrev.com/5b64e891917d845d28f17bf228a2395e95f6ddb4/content/shell/test_runner/test_interfaces.cc
[modify] https://crrev.com/5b64e891917d845d28f17bf228a2395e95f6ddb4/gin/arguments.h
[modify] https://crrev.com/5b64e891917d845d28f17bf228a2395e95f6ddb4/third_party/WebKit/LayoutTests/resources/js-test.js

Comment 114 by bugdroid1@chromium.org, Sep 24

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3883a34822b0e8801f9c04e194a397ab9db8cec3

commit 3883a34822b0e8801f9c04e194a397ab9db8cec3
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Sep 24 15:46:56 2018

[unified-heap] Fix media/encrypted-media/* liveness layout tests

Update asyncGC function to the latest version to guarantee that GCs are
indeed run without stack.

Bug: chromium:843903
Change-Id: Iaa61f27cacd99854665358720d2354522b756302
Reviewed-on: https://chromium-review.googlesource.com/1238623
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593550}
[modify] https://crrev.com/3883a34822b0e8801f9c04e194a397ab9db8cec3/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js

Comment 115 by bugdroid1@chromium.org, Sep 24

Project Member

Comment 116 by bugdroid1@chromium.org, Sep 25

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/03123704059d389882458a7161e99fb2169e65bf

commit 03123704059d389882458a7161e99fb2169e65bf
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Sep 25 11:13:40 2018

LayoutTests: Move internal GC functions to resources/gc.js

Bug: chromium:843903
Change-Id: I8509394ab507c0950b266c2e43f1484a67523af7
Reviewed-on: https://chromium-review.googlesource.com/1242465
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593888}
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/dom/attr/access-after-element-destruction.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc-expected.txt
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/inline-event-attributes-release.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/minor-dom-gc.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/events/message-port-gc-closed-cloned.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/events/message-port-gc-closed.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-lifetime.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/workers/chromium/worker-document-leak.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/http/tests/encoding/streams-gc.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/abort-on-changestate-headers-received.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/resources/gc.js
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/resources/js-test.js
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/storage/indexeddb/connection-leak.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/storage/indexeddb/cursor-leak.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/storage/indexeddb/delete-closed-database-object.html
[modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/storage/indexeddb/resources/delete-closed-database-object.js

Comment 117 by bugdroid1@chromium.org, Sep 25

Project Member

Comment 118 by bugdroid1@chromium.org, Sep 25

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

commit e556460885b206ee95428bd30d1665fa8fbe2ad8
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Sep 25 11:43:28 2018

[unified-heap] Fix fast/peerconnection/* liveness GC test

Update waitAndGc to call asyncGC function to guarantee that GCs are
indeed run without stack.

Bug: chromium:843903
Change-Id: Id0117fa23f3dbb42f73b521c922a8a2334a1c55e
Reviewed-on: https://chromium-review.googlesource.com/1240302
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593892}
[modify] https://crrev.com/e556460885b206ee95428bd30d1665fa8fbe2ad8/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-garbagecollected.html

Comment 119 by bugdroid1@chromium.org, Sep 25

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/33e252a73b7c952fe21098c79250ea4d9fcd807a

commit 33e252a73b7c952fe21098c79250ea4d9fcd807a
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Sep 25 12:37:25 2018

[unified-heap] Fix liveness in locks/chromium-waiting-promise-gc.html

Bug: chromium:843903
Change-Id: If313be18bdb7e0ca4c40c7ffb368df44634e1cf1
Reviewed-on: https://chromium-review.googlesource.com/1242467
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593901}
[modify] https://crrev.com/33e252a73b7c952fe21098c79250ea4d9fcd807a/third_party/WebKit/LayoutTests/http/tests/locks/chromium-waiting-promise-gc.html

Comment 120 by bugdroid1@chromium.org, Sep 25

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

commit ac15a3f1cd4384cd17e295ebc65fa33ab6d75035
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Sep 25 15:51:37 2018

[unified-heap] Fix liveness checks in netinfo/gc-frame-listeners.html

Bug: 843903
Change-Id: Ia6ec2f6f9b6e8e2db1fcf66122a3ede646c1f52c
Reviewed-on: https://chromium-review.googlesource.com/1243129
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593948}
[modify] https://crrev.com/ac15a3f1cd4384cd17e295ebc65fa33ab6d75035/third_party/WebKit/LayoutTests/netinfo/gc-frame-listeners.html

Comment 121 by bugdroid1@chromium.org, Sep 25

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5080522a8980a5815f76c9a45c7add38ed2979ed

commit 5080522a8980a5815f76c9a45c7add38ed2979ed
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Sep 25 17:20:21 2018

[unified-heap] Remove wrong collections test

Removes a test that was checking that a JS wrapper was collected when
doing a V8 GC. This relies on the fact that wrapper tracing does not
see the back references in LiveNodeList::owner_.

No-try: true
Bug: 843903
Change-Id: I0586ba63f15d686a6e33c152d9eb9a8f08247cd5
Reviewed-on: https://chromium-review.googlesource.com/1243066
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593979}
[delete] https://crrev.com/51865f3e78c5d0b7dbbee2d563e3cb1a4d7222c3/third_party/WebKit/LayoutTests/fast/dom/html-options-collection-lifetime-expected.txt
[delete] https://crrev.com/51865f3e78c5d0b7dbbee2d563e3cb1a4d7222c3/third_party/WebKit/LayoutTests/fast/dom/html-options-collection-lifetime.html

Comment 122 by bugdroid1@chromium.org, Sep 25

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

commit b209442fa2c29021b06a6dcbbd0486b440011fe2
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Sep 25 18:42:20 2018

[unified-heap] Fix termination sequence for EmbedderHeapTracer

Garbage collection needs to be finalized before unsetting the
EmbedderHeapTracer pointer.

Otherwise, an already running GC may not be properly finalized and the
GC is left in a undefined state which the subsequent follow up GCs
discover.

Bug: 843903
Change-Id: I4dc73005174a1b99dfda96ef379fe62bf5b34dbe
Reviewed-on: https://chromium-review.googlesource.com/1243247
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594024}
[modify] https://crrev.com/b209442fa2c29021b06a6dcbbd0486b440011fe2/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.cc

Comment 123 by mlippautz@chromium.org, Sep 26

Blockedon: 889396

Comment 124 by bugdroid1@chromium.org, Oct 8

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/01ce70a2109d61512ebfd3665e37ea94c47c8bed

commit 01ce70a2109d61512ebfd3665e37ea94c47c8bed
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Oct 08 18:50:22 2018

[heap] Use forced flags for LowMemoryNotification

The notification is only used for testing and benchmarking purposes.
Announcing low memory is usually done using MemoryPressure API.

Bug: chromium:843903
Change-Id: I998018f7f5f3a0d06283aa6010228a9c86f12c39
Reviewed-on: https://chromium-review.googlesource.com/c/1269037
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56454}
[modify] https://crrev.com/01ce70a2109d61512ebfd3665e37ea94c47c8bed/src/heap/heap.cc

Comment 125 by bugdroid1@chromium.org, Oct 9

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/86ad5118a10f784f33bc7d767e700eb0f6593316

commit 86ad5118a10f784f33bc7d767e700eb0f6593316
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Oct 09 09:10:19 2018

[unified-heap] Avoid scheduling empty incremental steps

These steps have overhead that is noticeable. Instead, bail out
after first observing the work list as empty. Newly discovered
objects are still processed incrementally via V8 helping mechanisms.

Bug: 843903
Change-Id: I3567557635418e284b85815e3e83aa14e64310bf
Reviewed-on: https://chromium-review.googlesource.com/c/1269039
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597848}
[modify] https://crrev.com/86ad5118a10f784f33bc7d767e700eb0f6593316/third_party/blink/renderer/platform/heap/thread_state.cc

Comment 126 by bugdroid1@chromium.org, Oct 9

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

commit fc3eaf7c8669dcb7b1e9b9bda2f399a3727858b8
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Oct 09 09:44:14 2018

[heap] Announce whether GC was forced in tracing scopes

This information is used on the metrics side to filter out forced GCs at
the beginning of benchmark runs.

Bug: 843903
Change-Id: Ia57ee25fb51afbcf06d541a30e3d1f6b51e95557
Reviewed-on: https://chromium-review.googlesource.com/c/1268937
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597861}
[modify] https://crrev.com/fc3eaf7c8669dcb7b1e9b9bda2f399a3727858b8/third_party/blink/renderer/platform/heap/thread_state.cc

Comment 127 by bugdroid1@chromium.org, Oct 9

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

commit 36a52f6c5090ecef8675e19f7c949e11fe9f97b9
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Oct 09 19:00:38 2018

[heap] Simplify GC scheduling for unified heap GCs

Bug: 843903
Change-Id: Ib09bda7c2ae2c0afd0326a741f1c12f78924181f
Reviewed-on: https://chromium-review.googlesource.com/c/1268939
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598017}
[modify] https://crrev.com/36a52f6c5090ecef8675e19f7c949e11fe9f97b9/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc

Comment 128 by bugdroid1@chromium.org, Oct 9

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/catapult/+/e28148f1c9aea534c937b145d4d9a45462faa414

commit e28148f1c9aea534c937b145d4d9a45462faa414
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Oct 09 22:56:02 2018

Ignore forced Blink GCs in metrics

Similar to V8 traces, ignore forced Blink GCs as they can dominate
the results.

Bug: chromium:843903
Change-Id: I6f1760306193cea4b48caa203e0f9c16867f5416
Reviewed-on: https://chromium-review.googlesource.com/c/1269155
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ben Hayden <benjhayden@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>

[modify] https://crrev.com/e28148f1c9aea534c937b145d4d9a45462faa414/tracing/tracing/metrics/blink/gc_metric.html
[modify] https://crrev.com/e28148f1c9aea534c937b145d4d9a45462faa414/tracing/tracing/metrics/blink/gc_metric_test.html

Comment 129 by bugdroid1@chromium.org, Oct 10

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

commit ba688e0187826d1ba43799dea76bb0eea45e8008
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Wed Oct 10 13:08:08 2018

Roll src/third_party/catapult 357c5c287bba..86bdcbf37ffc (3 commits)

https://chromium.googlesource.com/catapult.git/+log/357c5c287bba..86bdcbf37ffc


git log 357c5c287bba..86bdcbf37ffc --date=short --no-merges --format='%ad %ae %s'
2018-10-10 pasko@chromium.org androidStartupMetric: slow fallback for incorrect process names
2018-10-09 benjhayden@chromium.org Add Request classes for v2spa
2018-10-09 mlippautz@chromium.org Ignore forced Blink GCs in metrics


Created with:
  gclient setdep -r src/third_party/catapult@86bdcbf37ffc

The AutoRoll server is located here: https://autoroll.skia.org/r/catapult-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG= chromium:886621 ,chromium:891797,chromium:843903
TBR=sullivan@chromium.org

Change-Id: I9aedff776241a9f68f0d9efa700c0e769eb29d2c
Reviewed-on: https://chromium-review.googlesource.com/c/1273339
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#598298}
[modify] https://crrev.com/ba688e0187826d1ba43799dea76bb0eea45e8008/DEPS

Comment 130 by bugdroid1@chromium.org, Oct 10

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e8faae72c59beb6ca234313830d8cb5239772d7d

commit e8faae72c59beb6ca234313830d8cb5239772d7d
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Oct 10 13:41:09 2018

[platform] Add TaskRunner::PostNonNestableTask

The API will be used to post GC tasks that benefit from being executed
at top level.

Bug: chromium:843903
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I062855e810ca9a8d8af8ae8b66e02c85e108798b
Reviewed-on: https://chromium-review.googlesource.com/c/1273045
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56528}
[modify] https://crrev.com/e8faae72c59beb6ca234313830d8cb5239772d7d/include/v8-platform.h

Comment 131 by bugdroid1@chromium.org, Oct 11

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

commit 7f08809af15106c04feb6188b5d54c93af19472b
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Oct 11 16:45:44 2018

[gin] Allow posting non-nestable tasks through V8

Will be used to allow V8 posting top-level tasks.

Bug: chromium:843903
Change-Id: I97caa705b561fa8832ef8a11abfc3eefe47ec3f8
Reviewed-on: https://chromium-review.googlesource.com/c/1273140
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598802}
[modify] https://crrev.com/7f08809af15106c04feb6188b5d54c93af19472b/gin/v8_foreground_task_runner.cc
[modify] https://crrev.com/7f08809af15106c04feb6188b5d54c93af19472b/gin/v8_foreground_task_runner.h
[modify] https://crrev.com/7f08809af15106c04feb6188b5d54c93af19472b/gin/v8_foreground_task_runner_with_locker.cc
[modify] https://crrev.com/7f08809af15106c04feb6188b5d54c93af19472b/gin/v8_foreground_task_runner_with_locker.h

Comment 132 by bugdroid1@chromium.org, Oct 11

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0174bab48c75e579b8369652e5ed5b4c8dcb11de

commit 0174bab48c75e579b8369652e5ed5b4c8dcb11de
Author: Vasilii Sukhanov <vasilii@chromium.org>
Date: Thu Oct 11 16:56:27 2018

Revert "[gin] Allow posting non-nestable tasks through V8"

This reverts commit 7f08809af15106c04feb6188b5d54c93af19472b.

Reason for revert: broke compilation
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8932945363042209344/+/steps/compile/0/stdout

../../gin/v8_foreground_task_runner.h:27:60: error: only virtual member functions can be marked 'override'
    void PostNonNestableTask(std::unique_ptr<v8::Task> task) override;
                                                             ^~~~~~~~
  ../../gin/v8_foreground_task_runner.h:34:40: error: only virtual member functions can be marked 'override'
    bool NonNestableTasksEnabled() const override;

Original change's description:
> [gin] Allow posting non-nestable tasks through V8
> 
> Will be used to allow V8 posting top-level tasks.
> 
> Bug: chromium:843903
> Change-Id: I97caa705b561fa8832ef8a11abfc3eefe47ec3f8
> Reviewed-on: https://chromium-review.googlesource.com/c/1273140
> Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#598802}

TBR=mlippautz@chromium.org,jochen@chromium.org

Change-Id: I5d427abfe85e3b69a3d649ee190406a5d9583d9e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:843903
Reviewed-on: https://chromium-review.googlesource.com/c/1277086
Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org>
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598804}
[modify] https://crrev.com/0174bab48c75e579b8369652e5ed5b4c8dcb11de/gin/v8_foreground_task_runner.cc
[modify] https://crrev.com/0174bab48c75e579b8369652e5ed5b4c8dcb11de/gin/v8_foreground_task_runner.h
[modify] https://crrev.com/0174bab48c75e579b8369652e5ed5b4c8dcb11de/gin/v8_foreground_task_runner_with_locker.cc
[modify] https://crrev.com/0174bab48c75e579b8369652e5ed5b4c8dcb11de/gin/v8_foreground_task_runner_with_locker.h

Comment 133 by bugdroid1@chromium.org, Oct 14

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/98cc77946ed5ceb4cbda3b0087dfda100b0d4c35

commit 98cc77946ed5ceb4cbda3b0087dfda100b0d4c35
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Sun Oct 14 20:33:04 2018

Reland "[gin] Allow posting non-nestable tasks through V8"

This is a reland of 7f08809af15106c04feb6188b5d54c93af19472b

Original change's description:
> [gin] Allow posting non-nestable tasks through V8
>
> Will be used to allow V8 posting top-level tasks.
>
> Bug: chromium:843903
> Change-Id: I97caa705b561fa8832ef8a11abfc3eefe47ec3f8
> Reviewed-on: https://chromium-review.googlesource.com/c/1273140
> Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#598802}

Tbr: jochen@chromium.org
Bug: chromium:843903
Change-Id: I52e95076a32e0648c4c77530689b41757f7420c8
Reviewed-on: https://chromium-review.googlesource.com/c/1277798
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599543}
[modify] https://crrev.com/98cc77946ed5ceb4cbda3b0087dfda100b0d4c35/gin/v8_foreground_task_runner.cc
[modify] https://crrev.com/98cc77946ed5ceb4cbda3b0087dfda100b0d4c35/gin/v8_foreground_task_runner.h
[modify] https://crrev.com/98cc77946ed5ceb4cbda3b0087dfda100b0d4c35/gin/v8_foreground_task_runner_with_locker.cc
[modify] https://crrev.com/98cc77946ed5ceb4cbda3b0087dfda100b0d4c35/gin/v8_foreground_task_runner_with_locker.h

Comment 134 by bugdroid1@chromium.org, Oct 15

Project Member

Comment 135 by bugdroid1@chromium.org, Oct 15

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

commit da524227cb7a6a4f061e49ec4d7a20adae660af3
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Oct 15 12:53:46 2018

[heap] Allow pausing incremental steps

Bug: 843903
Change-Id: I51f920f3e775e09ebb8b1dcc569f229b1c98c678
Reviewed-on: https://chromium-review.googlesource.com/c/1280662
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599621}
[modify] https://crrev.com/da524227cb7a6a4f061e49ec4d7a20adae660af3/third_party/blink/renderer/platform/heap/thread_state.cc
[modify] https://crrev.com/da524227cb7a6a4f061e49ec4d7a20adae660af3/third_party/blink/renderer/platform/heap/thread_state.h

Comment 136 by bugdroid1@chromium.org, Oct 15

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e11053a96fd51b4815476e37a08905856c4b953d

commit e11053a96fd51b4815476e37a08905856c4b953d
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Oct 15 16:37:49 2018

[api] Remove deprecated EmbedderHeapTracer APIs

Also fully deprecate AbortTracing.

Bug: chromium:843903
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I852d28d8ce0f02b3a048b1061de29c9fce71ce62
Reviewed-on: https://chromium-review.googlesource.com/c/1278811
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56655}
[modify] https://crrev.com/e11053a96fd51b4815476e37a08905856c4b953d/include/v8.h
[modify] https://crrev.com/e11053a96fd51b4815476e37a08905856c4b953d/src/api.cc
[modify] https://crrev.com/e11053a96fd51b4815476e37a08905856c4b953d/test/cctest/heap/test-embedder-tracing.cc

Comment 137 by bugdroid1@chromium.org, Oct 17

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

commit f85f6c8c7ff4cde96d088a0f262e929af6bdab09
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Oct 17 08:48:54 2018

v8 benchmarks: Allow v8-mark-compactor metric in benchmarks

Bug: 843903
Change-Id: Ia1b60e3a4ee2aa239e3fad7bea198c38484b2840
Reviewed-on: https://chromium-review.googlesource.com/c/1282953
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ned Nguyen <nednguyen@google.com>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600320}
[modify] https://crrev.com/f85f6c8c7ff4cde96d088a0f262e929af6bdab09/tools/perf/benchmarks/v8_browsing.py

Comment 138 by bugdroid1@chromium.org, Oct 17

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/fe76251df339eee950345317531fd97d4649567f

commit fe76251df339eee950345317531fd97d4649567f
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Oct 17 19:42:30 2018

[heap] Add GC sum counters

Adds reporting for
- V8.GCMarkCompactor as sum of V8 mark-compact events

Bug: chromium:843903
Change-Id: I5e8a80c8d1a9c5bf696635b54659ac56403f52d5
Reviewed-on: https://chromium-review.googlesource.com/c/1256764
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56750}
[modify] https://crrev.com/fe76251df339eee950345317531fd97d4649567f/src/counters.h
[modify] https://crrev.com/fe76251df339eee950345317531fd97d4649567f/src/heap/gc-tracer.cc
[modify] https://crrev.com/fe76251df339eee950345317531fd97d4649567f/src/heap/gc-tracer.h
[modify] https://crrev.com/fe76251df339eee950345317531fd97d4649567f/test/unittests/heap/gc-tracer-unittest.cc

Comment 139 by bugdroid1@chromium.org, Oct 17

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/catapult/+/2d4733846e818eba69c9fac5d0dcf15449d0ce89

commit 2d4733846e818eba69c9fac5d0dcf15449d0ce89
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Oct 17 19:43:09 2018

V8 GC metrics: Add GC cycle time

Adds cycle time of V8 GCs using the same number that is also reported to
UMA.

Bug: chromium:843903
Change-Id: I3d3cd9de20fe8a0c22f9a7837809b9f7838cabfa
Reviewed-on: https://chromium-review.googlesource.com/c/1283090
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ben Hayden <benjhayden@chromium.org>

[modify] https://crrev.com/2d4733846e818eba69c9fac5d0dcf15449d0ce89/tracing/tracing/metrics/v8/gc_metric.html
[modify] https://crrev.com/2d4733846e818eba69c9fac5d0dcf15449d0ce89/tracing/tracing/metrics/v8/utils.html
[modify] https://crrev.com/2d4733846e818eba69c9fac5d0dcf15449d0ce89/tracing/tracing/metrics/v8/gc_metric_test.html

Comment 140 by bugdroid1@chromium.org, Oct 17

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

commit c497839a252c31e78ed11de58d83c5823f89c305
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Oct 17 22:10:35 2018

UMA: Add V8.GCMarkCompactor histogram

V8 CL: http://crrev.com/c/1256764

Bug: 843903
Change-Id: I347a507cb25ae86d911ca3863ae79efb57cf2f1d
Reviewed-on: https://chromium-review.googlesource.com/c/1286147
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600573}
[modify] https://crrev.com/c497839a252c31e78ed11de58d83c5823f89c305/tools/metrics/histograms/histograms.xml

Comment 141 by bugdroid1@chromium.org, Oct 18

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/787cc29cc7619c9c83da56d16fd7fba5583e4fc4

commit 787cc29cc7619c9c83da56d16fd7fba5583e4fc4
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Thu Oct 18 10:06:58 2018

Roll src/third_party/catapult 519565187c85..3d878160972c (5 commits)

https://chromium.googlesource.com/catapult.git/+log/519565187c85..3d878160972c


git log 519565187c85..3d878160972c --date=short --no-merges --format='%ad %ae %s'
2018-10-18 cbruni@chromium.org [telemetry] Support unicode keys in KeyPressAction
2018-10-18 bpastene@chromium.org devil: Exit w/ a non-zero code when unlock_bootloader.py fails.
2018-10-17 nharper@chromium.org netlog_viewer: match QUIC sessions table rows with headers
2018-10-17 mlippautz@chromium.org V8 GC metrics: Add GC cycle time
2018-10-17 nharper@chromium.org Fix path for serving netlog_viewer locally in README.md


Created with:
  gclient setdep -r src/third_party/catapult@3d878160972c

The AutoRoll server is located here: https://autoroll.skia.org/r/catapult-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG=chromium:878390,chromium:843903
TBR=sullivan@chromium.org

Change-Id: Iaa3306106064794f6b10421d28eaddff58126f5c
Reviewed-on: https://chromium-review.googlesource.com/c/1288024
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#600712}
[modify] https://crrev.com/787cc29cc7619c9c83da56d16fd7fba5583e4fc4/DEPS

Comment 142 by bugdroid1@chromium.org, Oct 18

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6081dfae2cf077ee825b2ecfa735df3302bfa00a

commit 6081dfae2cf077ee825b2ecfa735df3302bfa00a
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Oct 18 13:10:14 2018

[unified-heap] Add browser flags

Adds flags on all browser layers which are used for enabling in a Finch
trial.

Tbr: jochen@chromium.org
Bug: 843903
Change-Id: I50d9aa479b1fb6e27588eae000138564f377b523
Reviewed-on: https://chromium-review.googlesource.com/c/1286854
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600741}
[modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/chrome/browser/about_flags.cc
[modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/content/child/runtime_features.cc
[modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/content/public/common/content_features.cc
[modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/content/public/common/content_features.h
[modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/third_party/blink/public/platform/web_runtime_features.h
[modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
[modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/tools/metrics/histograms/enums.xml

Comment 143 by bugdroid1@chromium.org, Oct 19

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

commit 7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Oct 19 06:07:29 2018

Add  Blink GC, and global renderer GC sums

Adds the following UMA metricss:
- BlinkGC.TimeForGCCycle: Time spent in Blink GC for a complete cycle. This
  includes marking, the atomic pause, and sweeping.
- BlinkGC.TimeForNestedInV8: Time spent in Blink GC events that are nested
  in V8 GC events.

Bug: 843903
Change-Id: Ide371e4d599b6c0f19593d9d6c77ed88a86704c5
Reviewed-on: https://chromium-review.googlesource.com/c/1283369
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601060}
[modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc
[modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/third_party/blink/renderer/platform/heap/heap_stats_collector.cc
[modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/third_party/blink/renderer/platform/heap/heap_stats_collector.h
[modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/third_party/blink/renderer/platform/heap/thread_state.cc
[modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/third_party/blink/renderer/platform/heap/unified_heap_controller.cc
[modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/tools/metrics/histograms/histograms.xml

Comment 144 by bugdroid1@chromium.org, Oct 22

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

commit c084b57d175db348e8efbaed3102b314406965b1
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Oct 22 09:35:29 2018

[unified-heap] Update unit tests for unified heap

Use GC without scanning stack for testing purposes when necessary.

A different strategy for the current architecture would be making tests
truly async and scheduling GC from the event loop.

Bug: 843903
Change-Id: Ib479d4a090bc04cbc4fe28522f0b9e084f34181d
Reviewed-on: https://chromium-review.googlesource.com/c/1292878
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601505}
[modify] https://crrev.com/c084b57d175db348e8efbaed3102b314406965b1/third_party/blink/renderer/core/resize_observer/resize_observer_test.cc
[modify] https://crrev.com/c084b57d175db348e8efbaed3102b314406965b1/third_party/blink/renderer/core/streams/transform_stream_test.cc

Comment 145 by bugdroid1@chromium.org, Oct 22

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

commit 0bc4f833490bad2412220660acec8039c1d92199
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Oct 22 13:05:31 2018

[unified-heap] Fix test runner

Some tests rely on properly collecting objects on tear down. E.g. mock
objects are expected to die after a test finishes.

Bug: 843903
Change-Id: Ica1daee98be3625e4f2202fe0a73b290b5130ce9
Reviewed-on: https://chromium-review.googlesource.com/c/1293489
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601544}
[modify] https://crrev.com/0bc4f833490bad2412220660acec8039c1d92199/third_party/blink/renderer/controller/tests/run_all_tests.cc

Comment 146 by bugdroid1@chromium.org, Oct 22

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

commit 0d7212e1cb00f9ffd686c5b633246666af0a5dbd
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Oct 22 13:07:09 2018

[unified-heap] Adjust wrapper tracing and integration tests

Bug: 843903
Change-Id: I95a0caae7f528be908caff24515971b29b4f645f
Reviewed-on: https://chromium-review.googlesource.com/c/1292564
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601545}
[modify] https://crrev.com/0d7212e1cb00f9ffd686c5b633246666af0a5dbd/third_party/blink/renderer/bindings/core/v8/script_wrappable_marking_visitor_test.cc
[modify] https://crrev.com/0d7212e1cb00f9ffd686c5b633246666af0a5dbd/third_party/blink/renderer/bindings/core/v8/script_wrappable_v8_gc_integration_test.cc

Comment 147 by bugdroid1@chromium.org, Oct 22

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/061b43d439b73118a3ab0ad166c5c39fd554ef73

commit 061b43d439b73118a3ab0ad166c5c39fd554ef73
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Oct 22 13:41:15 2018

[unified-heap] Adjust ScriptPromiseProperty GC test

The test checks that the JS wrapper gets collected while the C++
wrappable stays alive. This only worked by accident as wrapper tracing
does not see any stack pointers.

Adjust test to check that the JS wrapper gets collected as soon as the
C++ wrappable is cleared.

Bug: 843903
Change-Id: I2041f682f4a94d690f43292f70ea3e8d7fb3fd6b
Reviewed-on: https://chromium-review.googlesource.com/c/1293450
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601554}
[modify] https://crrev.com/061b43d439b73118a3ab0ad166c5c39fd554ef73/third_party/blink/renderer/bindings/core/v8/script_promise_property_test.cc

Comment 148 by bugdroid1@chromium.org, Oct 22

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6440ae98eec736dda37998cc68f0aea67c35ab04

commit 6440ae98eec736dda37998cc68f0aea67c35ab04
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Oct 22 16:23:18 2018

[unified-heap] Disable more ScriptWrappableMarkingVisitor tests

Most tests depend on the intercepting scope that sets a temporary
visitor and restores the fixed wrapper tracing visitor. Avoid executing
those tests with unified heap as they anyways become obsolete after
launch.

Tbr: haraken@chromium.org
Bug: 843903
Change-Id: If106c9c873ab07d1bf2219454a25710a3dab6e2f
Reviewed-on: https://chromium-review.googlesource.com/c/1293577
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601607}
[modify] https://crrev.com/6440ae98eec736dda37998cc68f0aea67c35ab04/third_party/blink/renderer/bindings/core/v8/script_wrappable_marking_visitor_test.cc

Comment 149 by bugdroid1@chromium.org, Oct 23

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/37084183eb30d55d06f3d6864ca08917cd18c515

commit 37084183eb30d55d06f3d6864ca08917cd18c515
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Oct 23 12:32:22 2018

[unified-heap] Remove obsolete tests

- LayoutWorklet and PaintWorklet are supplements to LocalDOMWindow which
  ties the lifetime of JS wrappers to the lifetime of the window
- TransformStreamTest does not crash anymore

Bug: 843903
Change-Id: Iea6d46f32fd22d10aa3581ff0712778d4c9ca6ba
Reviewed-on: https://chromium-review.googlesource.com/c/1296591
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601920}
[modify] https://crrev.com/37084183eb30d55d06f3d6864ca08917cd18c515/third_party/blink/renderer/core/layout/custom/layout_worklet_test.cc
[modify] https://crrev.com/37084183eb30d55d06f3d6864ca08917cd18c515/third_party/blink/renderer/core/streams/transform_stream_test.cc
[modify] https://crrev.com/37084183eb30d55d06f3d6864ca08917cd18c515/third_party/blink/renderer/modules/csspaint/paint_worklet_test.cc

Comment 150 by bugdroid1@chromium.org, Oct 23

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3f850f4da08e9beb564e1b0cf93950e7b49d5348

commit 3f850f4da08e9beb564e1b0cf93950e7b49d5348
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Oct 23 16:53:15 2018

[unified-heap] Call TraceEpilogue at the end of a MC GC

Marking resets global handles which touches the corresponding slots on the
embedder side. The embedder may already have freed the memory which results in
use after free.

Bug: chromium:843903
Change-Id: I05a62f28d801b4de167f6fbf1be29743544c1293
Reviewed-on: https://chromium-review.googlesource.com/c/1296457
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56911}
[modify] https://crrev.com/3f850f4da08e9beb564e1b0cf93950e7b49d5348/src/heap-symbols.h
[modify] https://crrev.com/3f850f4da08e9beb564e1b0cf93950e7b49d5348/src/heap/gc-tracer.cc
[modify] https://crrev.com/3f850f4da08e9beb564e1b0cf93950e7b49d5348/src/heap/mark-compact.cc

Comment 151 by bugdroid1@chromium.org, Oct 30

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4450f4cad1ecd5563934567277a8646b656abb57

commit 4450f4cad1ecd5563934567277a8646b656abb57
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Oct 30 14:27:43 2018

[unified-heap] Fix ListenerLeakTest.* unit tests

The tests execute GC from JS which is not sufficient for unifiedh heap.
The fix adds proper GCs before asserting that the leak is not present.

Bug: 843903
Change-Id: Ieecf14acdbec96ebb6f612523ca0fa12aba92ad2
Reviewed-on: https://chromium-review.googlesource.com/c/1307395
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603892}
[modify] https://crrev.com/4450f4cad1ecd5563934567277a8646b656abb57/third_party/blink/renderer/core/dom/events/listener_leak_test.cc

Comment 153 by bugdroid1@chromium.org, Nov 6

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

commit a8228cdc699831699180ecd3b327366305c830d2
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Nov 06 09:04:15 2018

Enable unified garbage collections

Enables unified heap garbage collection across V8 and Blink. The GC
computes a single transitive closure across V8's API boundary before
starting the separate sweepers.

Sheriffs: This is a dry-run of the feature and will be reverted after
cycling through the waterfall and performance bots.

Bug: 843903
Change-Id: I0d3e9fc76fa9b116f32d92a234c45afe11120cf9
Reviewed-on: https://chromium-review.googlesource.com/c/1290869
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605634}
[modify] https://crrev.com/a8228cdc699831699180ecd3b327366305c830d2/third_party/blink/renderer/platform/runtime_enabled_features.json5

Comment 154 by hbos@chromium.org, Nov 6

Blockedon: 902286

Comment 155 by bugdroid1@chromium.org, Nov 8

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

commit 7f2dee6e466bd5b35bc599570bbfd80b2313fe7d
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Nov 08 05:52:20 2018

LayoutTests: Adjust webaudio test for unified heap garbage collection

Use asyncGC instead of window.gc().

Bug: 843903
Change-Id: Id65e65d4b3cd68a1510b3d7aff759232fc6c972b
Reviewed-on: https://chromium-review.googlesource.com/c/1324616
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606358}
[modify] https://crrev.com/7f2dee6e466bd5b35bc599570bbfd80b2313fe7d/third_party/WebKit/LayoutTests/webaudio/internals/cycle-connection-gc.html

Comment 156 by bugdroid1@chromium.org, Nov 8

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/79ffe683c7cc22ab3478b119adcc9b49584bd9e2

commit 79ffe683c7cc22ab3478b119adcc9b49584bd9e2
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Nov 08 13:36:50 2018

Enable unified garbage collections part two

This flag overrides the default Blink value for content layer.

Sheriffs: This is a dry-run of the feature and will be reverted after
cycling through the waterfall and performance bots.

Tbr: jochen@chromium.org, lfg@chromium.org
Bug: 843903
Change-Id: Ie362301e4874198eb775346d051bf8267837aaf8
Reviewed-on: https://chromium-review.googlesource.com/c/1320970
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606446}
[modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/chrome/browser/apps/guest_view/web_view_browsertest.cc
[modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/content/public/common/content_features.cc
[modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/third_party/WebKit/LayoutTests/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt
[modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/third_party/WebKit/LayoutTests/fast/dom/gc-9-expected.txt
[modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/third_party/WebKit/LayoutTests/fast/xpath/xpath-iterator-result-should-mark-its-nodeset-expected.txt
[modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/third_party/WebKit/LayoutTests/fast/xpath/xpath-other-nodeset-result-should-mark-its-nodeset-expected.txt
[modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/third_party/WebKit/LayoutTests/fast/xpath/xpath-snapshot-result-should-mark-its-nodeset-expected.txt

Comment 157 by bugdroid1@chromium.org, Nov 9

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9453dfbffd2000b3eafab2a59169da733d8cf08a

commit 9453dfbffd2000b3eafab2a59169da733d8cf08a
Author: Patrik Höglund <phoglund@chromium.org>
Date: Fri Nov 09 10:03:45 2018

Revert "Enable unified garbage collections part two"

This reverts commit 79ffe683c7cc22ab3478b119adcc9b49584bd9e2.

Reason for revert: Speculative revert: lots of garbage-collection related failures on WebKit Linux Trusty ASAN (see https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20ASAN/17912)

Original change's description:
> Enable unified garbage collections part two
> 
> This flag overrides the default Blink value for content layer.
> 
> Sheriffs: This is a dry-run of the feature and will be reverted after
> cycling through the waterfall and performance bots.
> 
> Tbr: jochen@chromium.org, lfg@chromium.org
> Bug: 843903
> Change-Id: Ie362301e4874198eb775346d051bf8267837aaf8
> Reviewed-on: https://chromium-review.googlesource.com/c/1320970
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#606446}

TBR=haraken@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,jochen@chromium.org,lfg@chromium.org

Change-Id: I189aca41c8f8ba11c358a4c15bc7f56591e38196
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 843903
Reviewed-on: https://chromium-review.googlesource.com/c/1328902
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
Commit-Queue: Patrik Höglund <phoglund@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606778}
[modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/chrome/browser/apps/guest_view/web_view_browsertest.cc
[modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/content/public/common/content_features.cc
[modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/third_party/WebKit/LayoutTests/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt
[modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/third_party/WebKit/LayoutTests/fast/dom/gc-9-expected.txt
[modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/third_party/WebKit/LayoutTests/fast/xpath/xpath-iterator-result-should-mark-its-nodeset-expected.txt
[modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/third_party/WebKit/LayoutTests/fast/xpath/xpath-other-nodeset-result-should-mark-its-nodeset-expected.txt
[modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/third_party/WebKit/LayoutTests/fast/xpath/xpath-snapshot-result-should-mark-its-nodeset-expected.txt

Comment 158 by bugdroid1@chromium.org, Nov 9

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

commit c36eb8acab5820a2fcaefb9e856b698e3cc0ce52
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Nov 09 13:24:01 2018

Revert "Enable unified garbage collections"

This reverts commit a8228cdc699831699180ecd3b327366305c830d2.

Reason for revert: Reverting as we've cycled through the waterfalls and the other flag change on the content layer already got reverted.

Original change's description:
> Enable unified garbage collections
> 
> Enables unified heap garbage collection across V8 and Blink. The GC
> computes a single transitive closure across V8's API boundary before
> starting the separate sweepers.
> 
> Sheriffs: This is a dry-run of the feature and will be reverted after
> cycling through the waterfall and performance bots.
> 
> Bug: 843903
> Change-Id: I0d3e9fc76fa9b116f32d92a234c45afe11120cf9
> Reviewed-on: https://chromium-review.googlesource.com/c/1290869
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#605634}

TBR=ulan@chromium.org,haraken@chromium.org,keishi@chromium.org,hpayer@chromium.org,mlippautz@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 843903
Change-Id: I1d1f695431919864cb15dffe0d9b1e4ba85fd3c5
Reviewed-on: https://chromium-review.googlesource.com/c/1329021
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606813}
[modify] https://crrev.com/c36eb8acab5820a2fcaefb9e856b698e3cc0ce52/third_party/blink/renderer/platform/runtime_enabled_features.json5

Comment 159 by mlippautz@chromium.org, Nov 9

Blockedon: 903790

Comment 160 by bugdroid1@chromium.org, Nov 9

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/31aaefcb0e3ea120f59513dd70bee33f493b9cea

commit 31aaefcb0e3ea120f59513dd70bee33f493b9cea
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Nov 09 18:48:45 2018

[unified-heap] Fix CredentialsContainerTest for unified heap GCs

Bug:  902286 , 843903
Change-Id: I2f4a836bfb448e092a7301a326c0caed722d607e
Reviewed-on: https://chromium-review.googlesource.com/c/1329175
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606917}
[modify] https://crrev.com/31aaefcb0e3ea120f59513dd70bee33f493b9cea/third_party/blink/renderer/modules/credentialmanager/credentials_container_test.cc

Comment 161 by mlippautz@chromium.org, Nov 9

Blockedon: 903586

Comment 162 by bugdroid1@chromium.org, Nov 16

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/76c35f614ce131b4ac257f8c15dd45760bf21bb5

commit 76c35f614ce131b4ac257f8c15dd45760bf21bb5
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Nov 16 14:40:07 2018

Use phantom handle in GCObservation

The GCObservation handle is always set and empty state implies that the
observed object was garbage collection. Use phantom reference which
avoids clearing out the reference manually.

Bug:  903586 , 843903
Change-Id: I77e6e9d9ef4625d4bb91b3907b0d1b69c17f2208
Reviewed-on: https://chromium-review.googlesource.com/c/1340320
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608771}
[modify] https://crrev.com/76c35f614ce131b4ac257f8c15dd45760bf21bb5/third_party/blink/renderer/core/testing/gc_observation.cc
[modify] https://crrev.com/76c35f614ce131b4ac257f8c15dd45760bf21bb5/third_party/blink/renderer/core/testing/gc_observation.h

Comment 163 by bugdroid1@chromium.org, Nov 16

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e49588461890b06fd5542493eec95c4fe84d5c23

commit e49588461890b06fd5542493eec95c4fe84d5c23
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Nov 16 16:26:56 2018

heap: Disallow allocation in first round of weak callbacks

Weak callbacks should not trigger recursive GCs during first round callbacks.
Any non-trivial work is supposed to be enqueued in the second round of
callbacks.

Bug: chromium:843903
Change-Id: Ieba58f31bab54c95b7d4027d3e16ee2d765438e7
Reviewed-on: https://chromium-review.googlesource.com/c/1340285
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57581}
[modify] https://crrev.com/e49588461890b06fd5542493eec95c4fe84d5c23/src/global-handles.cc
[modify] https://crrev.com/e49588461890b06fd5542493eec95c4fe84d5c23/src/global-handles.h
[modify] https://crrev.com/e49588461890b06fd5542493eec95c4fe84d5c23/src/heap/heap.cc

Comment 166 by bugdroid1@chromium.org, Nov 20

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb

commit 8fdd095e5f68ae6e81ca1f31f45827a44bf508cb
Author: Camillo Bruni <cbruni@chromium.org>
Date: Tue Nov 20 09:23:31 2018

Revert "heap: Move embedder epilogue after first round of weak callbacks"

This reverts commit b146824207f2a16ad6678716b99e0476d71e58a0.

Reason for revert: breaking blink, v8:8480

Original change's description:
> heap: Move embedder epilogue after first round of weak callbacks
> 
> Bug: chromium:843903,  chromium:903586 
> Change-Id: I0441ab2cc0fcc0b2cb411be0c92860c64d808324
> Reviewed-on: https://chromium-review.googlesource.com/c/1340254
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57604}

TBR=ulan@chromium.org,mlippautz@chromium.org

Change-Id: I4f72fb4f6060d814d09fa9d75ff41b5e236c8505
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:843903,  chromium:903586 
Reviewed-on: https://chromium-review.googlesource.com/c/1342922
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57631}
[modify] https://crrev.com/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb/src/heap-symbols.h
[modify] https://crrev.com/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb/src/heap/gc-tracer.cc
[modify] https://crrev.com/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb/src/heap/heap.cc
[modify] https://crrev.com/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb/src/heap/incremental-marking.cc
[modify] https://crrev.com/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb/src/heap/mark-compact.cc

Comment 168 by bugdroid1@chromium.org, Nov 20

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

commit e7464ad22749d7ca92db1a4a23acad3ebd1f4dfa
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Nov 20 21:18:18 2018

heap: Avoid scheduling other garbage collections during unified heap

tl;dr: Write barrier elimination in ctors requires white-allocation of
objects.

Longer: Avoid scheduling GC calls during object allocation
(construction) as they would potentially invoke V8 marking steps. Such a
marking step is problematic if the object that is currently being
constructed has already been published as constructors rely on
white-allocation of objects in order to avoid write barriers for
initializing stores.  A call to V8 may trigger a marking step which in
turn may mark an object black if it already has been published.

Bug:  903790 , 843903
Change-Id: I9ede36f34f074f76b563601fd4bd1dcb30f561c4
Reviewed-on: https://chromium-review.googlesource.com/c/1341997
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609806}
[modify] https://crrev.com/e7464ad22749d7ca92db1a4a23acad3ebd1f4dfa/third_party/blink/renderer/platform/heap/thread_state.cc

Comment 169 by bugdroid1@chromium.org, Nov 22

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/caed2cc033b846bab17608318f4073852eaf4f9d

commit caed2cc033b846bab17608318f4073852eaf4f9d
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Nov 22 21:26:02 2018

[heap] Improve embedder tracing during incremental marking

Add a path into embedder tracing on allocation. This is safe as as Blink
is not allowed to call into V8 during object construction.

Bug: chromium:843903
Change-Id: I5af053c3169f5a33778ebce5d7c5c43e4efb1aa4
Reviewed-on: https://chromium-review.googlesource.com/c/1348749
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57757}
[modify] https://crrev.com/caed2cc033b846bab17608318f4073852eaf4f9d/src/heap/embedder-tracing.cc
[modify] https://crrev.com/caed2cc033b846bab17608318f4073852eaf4f9d/src/heap/embedder-tracing.h
[modify] https://crrev.com/caed2cc033b846bab17608318f4073852eaf4f9d/src/heap/incremental-marking.cc
[modify] https://crrev.com/caed2cc033b846bab17608318f4073852eaf4f9d/src/heap/incremental-marking.h

Comment 170 by bugdroid1@chromium.org, Nov 23

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/cb93a308fc31298b2a24452fd174bfe86e5fad76

commit cb93a308fc31298b2a24452fd174bfe86e5fad76
Author: Yang Guo <yangguo@chromium.org>
Date: Fri Nov 23 07:45:46 2018

Revert "[heap] Improve embedder tracing during incremental marking"

This reverts commit caed2cc033b846bab17608318f4073852eaf4f9d.

Reason for revert: Breaks layout tests, e.g.

https://test-results.appspot.com/data/layout_results/V8-Blink_Linux_64__dbg_/14924/webkit_layout_tests%20%28with%20patch%29/layout-test-results/results.html

crash log for renderer (pid <unknown>):
STDOUT: <empty>
STDERR: 
STDERR: 
STDERR: #
STDERR: # Fatal error in ../../v8/src/base/platform/elapsed-timer.h, line 24
STDERR: # Debug check failed: !IsStarted().
STDERR: #
STDERR: #
STDERR: #
STDERR: #FailureMessage Object: 0x7ffc46707640#0 0x565409263b6f base::debug::StackTrace::StackTrace()
STDERR: #1 0x56540a8a32fb gin::(anonymous namespace)::PrintStackTrace()
STDERR: #2 0x56540a8980d8 V8_Fatal()
STDERR: #3 0x56540a897e35 v8::base::(anonymous namespace)::DefaultDcheckHandler()
STDERR: #4 0x565407971f02 v8::base::ElapsedTimer::Start()
STDERR: #5 0x565407d08edf v8::internal::TimedHistogram::Start()
STDERR: #6 0x565407e500d5 v8::internal::IncrementalMarking::AdvanceIncrementalMarkingOnAllocation()
STDERR: #7 0x565407e4f977 v8::internal::IncrementalMarking::Observer::Step()
STDERR: #8 0x565407e48092 v8::internal::AllocationObserver::AllocationStep()
STDERR: #9 0x565407eb0751 v8::internal::SpaceWithLinearArea::InlineAllocationStep()
STDERR: #10 0x565407eb3e44 v8::internal::NewSpace::EnsureAllocation()
STDERR: #11 0x565407e258ff v8::internal::NewSpace::AllocateRaw()
STDERR: #12 0x565407e06b2d v8::internal::Heap::AllocateRaw()
STDERR: #13 0x565407e432ef v8::internal::Heap::AllocateRawWithLightRetry()
STDERR: #14 0x565407e433cf v8::internal::Heap::AllocateRawWithRetryOrFail()
STDERR: #15 0x565407e04d48 v8::internal::Factory::NewFixedArrayWithFiller()
STDERR: #16 0x565407fd6339 v8::internal::HashTable<>::New()
STDERR: #17 0x565407fd7be8 v8::internal::HashTable<>::EnsureCapacity()
STDERR: #18 0x565407fc7e95 v8::internal::Dictionary<>::Add()
STDERR: #19 0x565407fcf453 v8::internal::BaseNameDictionary<>::Add()
STDERR: #20 0x565407f89ee4 v8::internal::LookupIterator::ApplyTransitionToDataProperty()
STDERR: #21 0x5654080036e2 v8::internal::Object::AddDataProperty()
STDERR: #22 0x56540793061f v8::internal::(anonymous namespace)::DefineDataProperty()
STDERR: #23 0x56540792da59 v8::internal::(anonymous namespace)::InstantiateObject()
STDERR: #24 0x56540792b75a v8::internal::(anonymous namespace)::InstantiateFunction()
STDERR: #25 0x56540792b4db v8::internal::ApiNatives::InstantiateFunction()
STDERR: #26 0x5654079594bf v8::FunctionTemplate::GetFunction()
STDERR: #27 0x56540a7af74e blink::V8ObjectConstructor::CreateInterfaceObject()
STDERR: #28 0x56540a7afe01 blink::V8PerContextData::ConstructorForTypeSlowCase()
STDERR: #29 0x56540a7afdd6 blink::V8PerContextData::ConstructorForTypeSlowCase()
STDERR: #30 0x56540a7afdd6 blink::V8PerContextData::ConstructorForTypeSlowCase()
STDERR: #31 0x56540a7afcb4 blink::V8PerContextData::CreateWrapperFromCacheSlowCase()
STDERR: #32 0x56540a7aef73 blink::V8DOMWrapper::CreateWrapper()
STDERR: #33 0x56540a7abf6b blink::ScriptWrappable::Wrap()
STDERR: #34 0x56540a677199 blink::V8Document::documentElementAttributeGetterCallback()
STDERR: #35 0x565407a0aec3 v8::internal::FunctionCallbackArguments::Call()
STDERR: #36 0x565407a097be v8::internal::(anonymous namespace)::HandleApiCallHelper<>()
STDERR: #37 0x565407a0877b v8::internal::Builtins::InvokeApiFunction()
STDERR: #38 0x565407fe785a v8::internal::Object::GetPropertyWithAccessor()
STDERR: #39 0x565407fe697e v8::internal::Object::GetProperty()
STDERR: #40 0x565407ec8c71 v8::internal::LoadIC::Load()
STDERR: #41 0x565407ed6401 v8::internal::__RT_impl_Runtime_LoadIC_Miss()
STDERR: #42 0x5654087593f2 <unknown>
STDERR: [16162:16185:1122/143518.356897:WARNING:crash_handler_host_linux.cc(341)] Could not translate tid, attempt = 1 retry ...


Original change's description:
> [heap] Improve embedder tracing during incremental marking
> 
> Add a path into embedder tracing on allocation. This is safe as as Blink
> is not allowed to call into V8 during object construction.
> 
> Bug: chromium:843903
> Change-Id: I5af053c3169f5a33778ebce5d7c5c43e4efb1aa4
> Reviewed-on: https://chromium-review.googlesource.com/c/1348749
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57757}

TBR=ulan@chromium.org,mlippautz@chromium.org

Change-Id: Ide2c0b284b52bee17573adcc89f14be4e40dab91
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:843903
Reviewed-on: https://chromium-review.googlesource.com/c/1349189
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57759}
[modify] https://crrev.com/cb93a308fc31298b2a24452fd174bfe86e5fad76/src/heap/embedder-tracing.cc
[modify] https://crrev.com/cb93a308fc31298b2a24452fd174bfe86e5fad76/src/heap/embedder-tracing.h
[modify] https://crrev.com/cb93a308fc31298b2a24452fd174bfe86e5fad76/src/heap/incremental-marking.cc
[modify] https://crrev.com/cb93a308fc31298b2a24452fd174bfe86e5fad76/src/heap/incremental-marking.h

Comment 171 by bugdroid1@chromium.org, Nov 23

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/81b5f713c8f6e09ea23f5cb5bea25c8060354f13

commit 81b5f713c8f6e09ea23f5cb5bea25c8060354f13
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Nov 23 10:54:52 2018

Reland "[heap] Improve embedder tracing during incremental marking"

Add a path into embedder tracing on allocation. This is safe as as Blink
is not allowed to call into V8 during object construction.

This is a reland of caed2cc033b846bab17608318f4073852eaf4f9d.

Bug: chromium:843903
Change-Id: I7faa8413966f6b4d37f19b235d46bb09e4d47235
Bug: chromium:843903
Reviewed-on: https://chromium-review.googlesource.com/c/1349330
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57770}
[modify] https://crrev.com/81b5f713c8f6e09ea23f5cb5bea25c8060354f13/src/heap/embedder-tracing.cc
[modify] https://crrev.com/81b5f713c8f6e09ea23f5cb5bea25c8060354f13/src/heap/embedder-tracing.h
[modify] https://crrev.com/81b5f713c8f6e09ea23f5cb5bea25c8060354f13/src/heap/incremental-marking.cc
[modify] https://crrev.com/81b5f713c8f6e09ea23f5cb5bea25c8060354f13/src/heap/incremental-marking.h

Comment 172 by bugdroid1@chromium.org, Nov 23

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ce02d86bf2dd407c0c40df44441d28b89d4db71f

commit ce02d86bf2dd407c0c40df44441d28b89d4db71f
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Nov 23 17:40:39 2018

[heap] Cleanup embedder tracing APIs

Provide processing scope that makes it impossible to maintain locally
cached wrappers that could get invalidated in Blink and yield in
crashers.

Bug: chromium:843903, v8:8238
Change-Id: I7ba1905f6c77a97bcc61ac42f921dcac4772471f
Reviewed-on: https://chromium-review.googlesource.com/c/1349276
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57795}
[modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/embedder-tracing.cc
[modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/embedder-tracing.h
[modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/heap.cc
[modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/heap.h
[modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/incremental-marking.cc
[modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/mark-compact-inl.h
[modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/mark-compact.cc
[modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/mark-compact.h
[modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/scavenger.cc
[modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/test/unittests/heap/embedder-tracing-unittest.cc

Comment 173 by bugdroid1@chromium.org, Nov 26

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

commit 0e78f9bbaedea30c607f198b4bfb8c3c027af331
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Nov 26 12:16:48 2018

heap: Refactor bits in HeapObjectHeader

- Free up unusued "is free bit". This information was double encoded in
  the header.
- Use uint32_t for masks to allow the compiler to help with out of
  bounds shifts.
- Reorder declarations in HoH.

Bug: 843903
Change-Id: Ibd6a95ef9b38c41ed469f91ff07d35a0738082d1
Reviewed-on: https://chromium-review.googlesource.com/c/1350613
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610825}
[modify] https://crrev.com/0e78f9bbaedea30c607f198b4bfb8c3c027af331/third_party/blink/renderer/platform/heap/heap_page.h

Comment 174 by bugdroid1@chromium.org, Nov 26

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c32a378f4806236a10c563a1fbf576222dfd695d

commit c32a378f4806236a10c563a1fbf576222dfd695d
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Nov 26 17:44:10 2018

[heap] Reland improvements for embedder tracing

Add a path into embedder tracing on allocation. This is safe as as Blink
is not allowed to call into V8 during object construction.

This is a reland of caed2cc033b846bab17608318f4073852eaf4f9d.

Also relands the cleanups of ce02d86bf2dd407c0c40df44441d28b89d4db71f.

Bug: chromium:843903
Change-Id: Ic89792fe68337c540a1a93629aee2e92b8774ab2
Reviewed-on: https://chromium-review.googlesource.com/c/1350992
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57847}
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/embedder-tracing.cc
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/embedder-tracing.h
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/heap.cc
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/heap.h
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/incremental-marking.cc
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/incremental-marking.h
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/mark-compact-inl.h
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/mark-compact.cc
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/mark-compact.h
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/scavenger.cc
[modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/test/unittests/heap/embedder-tracing-unittest.cc

Comment 175 by bugdroid1@chromium.org, Nov 28

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

commit e2059e53bea9548648de1ce7e06e239b89f2c580
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Nov 28 11:59:04 2018

heap: Introduce not fully constructed state for objects during ctor

Use the MakeGarbageCollected bottleneck to flag objects as being under
construction while their constructor is executed.

can be recovered once we are done moving to MakeGarbagecollected by
opening the scope in the allocator (HoH ctor).

Binary-Size: Increase due to adding scope to constructors. Roughly 50%
Bug: 843903
Change-Id: I0a5182481534922ba14c6c12ed7138dadbcadea5
Reviewed-on: https://chromium-review.googlesource.com/c/1350128
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611659}
[modify] https://crrev.com/e2059e53bea9548648de1ce7e06e239b89f2c580/third_party/blink/renderer/platform/heap/heap.h
[modify] https://crrev.com/e2059e53bea9548648de1ce7e06e239b89f2c580/third_party/blink/renderer/platform/heap/heap_page.h
[modify] https://crrev.com/e2059e53bea9548648de1ce7e06e239b89f2c580/third_party/blink/renderer/platform/heap/heap_test.cc

Comment 176 by bugdroid1@chromium.org, Nov 29

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5748a22fa06599f848c27fbc118f8f6ac0882011

commit 5748a22fa06599f848c27fbc118f8f6ac0882011
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Nov 29 16:28:38 2018

[heap] Fix context disposal heap limit

Fix two bugs:
- Initial configuration of limit allowed to go below the size of already
  allocated objects.
- Context disposal without dependend context reset the heap state to not
  configured without actually increasing the limit again.

Bug: chromium:843903
Change-Id: Ibdcf69b0b92b800f8919d5cc98186334945d811f
Reviewed-on: https://chromium-review.googlesource.com/c/1355143
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57946}
[modify] https://crrev.com/5748a22fa06599f848c27fbc118f8f6ac0882011/src/heap/heap.cc

Comment 177 by bugdroid1@chromium.org, Nov 30

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8a63e4698483c2f8930a8fbf74481af1138f4af3

commit 8a63e4698483c2f8930a8fbf74481af1138f4af3
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Nov 30 17:18:29 2018

unified-heap: Avoid scheduling a stand-alone GC after a V8 GC

Bug: 843903
Change-Id: I24d73949caec0b2ea55cf6cfa058cbf5f7d2826a
Reviewed-on: https://chromium-review.googlesource.com/c/1355941
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612681}
[modify] https://crrev.com/8a63e4698483c2f8930a8fbf74481af1138f4af3/third_party/blink/renderer/platform/heap/thread_state.cc

Comment 178 by mlippautz@chromium.org, Nov 30

Blockedon: 903776

Comment 179 by mlippautz@chromium.org, Nov 30

Blockedon: 903777

Comment 180 by bugdroid1@chromium.org, Nov 30

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/66b80e0ba23a6b4693231d3bfd989296cbb6177a

commit 66b80e0ba23a6b4693231d3bfd989296cbb6177a
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Nov 30 20:58:46 2018

heap: Add flushing of not fully constructed objects

Upon entering an incremental step without stack such objects can be
flushed to a worklist that is processed in the regular marking loop as
the objects are definitely constructed at this point.

Bug: 843903
Change-Id: Ie4acbb7a58e7bedaee3b7806bdd18ca306ff14d7
Reviewed-on: https://chromium-review.googlesource.com/c/1350751
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612780}
[modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/heap.cc
[modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/heap.h
[modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/marking_visitor.cc
[modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/marking_visitor.h
[modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/thread_state.cc
[modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/thread_state.h
[modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/worklist.h
[modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/lifecycle_context_test.cc

Comment 181 by mlippautz@chromium.org, Dec 3

Blockedon: 911019

Comment 182 by bugdroid1@chromium.org, Dec 7

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/72806449de1bfcb61ebee0bdc30d9e3115413495

commit 72806449de1bfcb61ebee0bdc30d9e3115413495
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Dec 07 13:50:02 2018

[heap] Improve incremental steps on allocation

Allow a V8 step after doing an embedder step if there's time left. This
will speed up marking in certain situations.

Bug: chromium:909788, chromium:911053, chromium:843903
Change-Id: Ie15c30d5ce8443caf7217a834a120a19d0bb292b
Reviewed-on: https://chromium-review.googlesource.com/c/1367455
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58094}
[modify] https://crrev.com/72806449de1bfcb61ebee0bdc30d9e3115413495/src/heap/incremental-marking.cc
[modify] https://crrev.com/72806449de1bfcb61ebee0bdc30d9e3115413495/src/heap/incremental-marking.h

Comment 183 by bugdroid1@chromium.org, Dec 12

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

commit 7c0021aecaf0f5e0a46108b02d0e408e5bfad1e0
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Dec 12 09:37:25 2018

heap: Filter already marked weak handles

The write barrier will ensure that newly set values will be marked black
in any case and thus make the callback obsolete.

Bug: 843903
Change-Id: I058df9c4e21ba4a5045ea6890b5ee8d5b0e7fc27
Reviewed-on: https://chromium-review.googlesource.com/c/1372788
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615835}
[modify] https://crrev.com/7c0021aecaf0f5e0a46108b02d0e408e5bfad1e0/third_party/blink/renderer/platform/heap/marking_visitor.h

Comment 184 by mlippautz@chromium.org, Dec 18

Blockedon: 916022

Comment 185 by mlippautz@chromium.org, Dec 18

Blockedon: 916200

Comment 186 by bugdroid1@chromium.org, Dec 18

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7747a15375ee878f393196ea95e5a19a7a40c532

commit 7747a15375ee878f393196ea95e5a19a7a40c532
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Dec 18 20:35:06 2018

heap: Avoid copying WeakMember during roots iteration

Weak members currently emit a write barrier upon copy construction.
Copying WeakMember<T> on the stack during roots iteration will make all
active ScriptWrappables links that are weak strong.

Tbr: haraken@chromium.org
Bug: 843903, 916200
Change-Id: I13a6512cdd1c8b03397b95665de8bcd83e263e69
Reviewed-on: https://chromium-review.googlesource.com/c/1382918
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617609}
[modify] https://crrev.com/7747a15375ee878f393196ea95e5a19a7a40c532/third_party/blink/renderer/platform/bindings/active_script_wrappable_base.cc

Comment 187 by lfg@chromium.org, Dec 19

Blocking: 796145

Comment 188 by bugdroid1@chromium.org, Dec 22

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

commit fef54404fdd0daf26f41778fa883adf6d8857f1e
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Sat Dec 22 19:34:21 2018

Update TraceWrapperV8Reference

- Update class comment
- Remove Set method that takes custom callbacks as all of its uses have been
  converted to phantom handles that are cleared by the GC.

Bug: 843903
Change-Id: I3d772d6486b2908402ba9ff5df49cd796f497616
Reviewed-on: https://chromium-review.googlesource.com/c/1388426
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618762}
[modify] https://crrev.com/fef54404fdd0daf26f41778fa883adf6d8857f1e/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h

Comment 189 by mlippautz@chromium.org, Jan 4

Blockedon: 919079

Comment 190 by bugdroid1@chromium.org, Jan 7

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/70fdf149b21a80c12fe2ce669b5774af1dc550b6

commit 70fdf149b21a80c12fe2ce669b5774af1dc550b6
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Jan 07 19:07:24 2019

bindings: Convert DOMObjectHolder user to CustomWrappableAdapter

This is *not* a correctness fix but merely a refactoring to a different
approach.

Both, DOMObjectHolder and CustomWrappableAdapter, serve the same purpose: They
keep alive a DOM object from a JS object. Since CustomWrappableAdapter is
already used for JS callbacks it fits well and replaces one use of custom weak
callbacks.

On top of that, CustomWrappableAdapter creates a V8 Persistent instead of a
"temporary" Oilpan root in a hashmap. On master there's no real difference as
both are root sets for Oilpan visitation. Unified heap does not need to visit
V8 persistents as roots, so it's cheaper in the new world.

Change-Id: I12ddde7e6ec1a21204826c8c4d35acea24965e0f
Bug: 843903
Reviewed-on: https://chromium-review.googlesource.com/c/1396023
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#620409}
[modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/custom_wrappable_adapter.cc
[modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/custom_wrappable_adapter.h
[modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/js_event_handler.cc
[modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/js_event_handler.h
[modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/js_event_listener.h
[modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/script_function.cc
[modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/script_function.h
[modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/platform/bindings/dom_wrapper_world.cc
[modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/platform/bindings/dom_wrapper_world.h

Comment 191 by bugdroid1@chromium.org, Jan 8

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

commit d301d39aba4d7ec7a67c982ee3ce1554df40be12
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Jan 08 08:59:51 2019

bindings: Improve wrapper tracing through CSS

Improves wrapper tracing through CSS rules at the expense of more memory
consumption. With unified heap all of these paths would be traced by
default. Adjust the tracing paths upfront to get clarity on the actual
regressions.

Bug: 843903
Change-Id: Ie8273277f5eff4781a776a8fe28981c2dd18e636
Reviewed-on: https://chromium-review.googlesource.com/c/1398443
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#620656}
[modify] https://crrev.com/d301d39aba4d7ec7a67c982ee3ce1554df40be12/third_party/blink/renderer/core/css/css_keyframe_rule.h
[modify] https://crrev.com/d301d39aba4d7ec7a67c982ee3ce1554df40be12/third_party/blink/renderer/core/css/css_keyframes_rule.h
[modify] https://crrev.com/d301d39aba4d7ec7a67c982ee3ce1554df40be12/third_party/blink/renderer/core/dom/element_rare_data.h
[modify] https://crrev.com/d301d39aba4d7ec7a67c982ee3ce1554df40be12/third_party/blink/web_tests/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt
[modify] https://crrev.com/d301d39aba4d7ec7a67c982ee3ce1554df40be12/third_party/blink/web_tests/fast/dom/gc-9-expected.txt
[delete] https://crrev.com/3cf9cd8e07ce48b301c6d86e5dead8376ecf765b/third_party/blink/web_tests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt

Comment 193 by bugdroid1@chromium.org, Jan 9

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/59de2eec4b0adab7b4053109eb710dc1274deb78

commit 59de2eec4b0adab7b4053109eb710dc1274deb78
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Jan 09 13:28:10 2019

unified-heap: Fix customelements/gc.html

The GCs performed in this test have been conservative and occasionally
kept alive the wrappers resulting in flaky test failures with unified
GCs.

Bug: 843903
Change-Id: I51a6abb8dd8d24f7db3fe189a66b1e2d13ebc60a
Reviewed-on: https://chromium-review.googlesource.com/c/1402796
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621125}
[modify] https://crrev.com/59de2eec4b0adab7b4053109eb710dc1274deb78/third_party/blink/web_tests/custom-elements/gc.html

Comment 194 by mlippautz@chromium.org, Jan 11

Blockedon: 917744

Comment 195 by bugdroid1@chromium.org, Jan 16

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/43ae85f867e407a557e0e7671cbcc07dd2688e16

commit 43ae85f867e407a557e0e7671cbcc07dd2688e16
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Jan 16 10:09:21 2019

unified-heap: Provide names for internal classes in heap snapshot

Provide a name for internal nodes in non-production builds.

This is very useful for manual debugging builds but may confuse people
without providing better DevTools integration.

Bug: 843903
Change-Id: Ifd7359575beb3c916a86fc6091abfc20c76e6b64
Reviewed-on: https://chromium-review.googlesource.com/c/1412472
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623177}
[modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/renderer/platform/heap/name_trait_test.cc
[modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/renderer/platform/heap/name_traits.h
[modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js
[modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js
[modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js

Comment 196 by bugdroid1@chromium.org, Jan 16

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/43ae85f867e407a557e0e7671cbcc07dd2688e16

commit 43ae85f867e407a557e0e7671cbcc07dd2688e16
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Jan 16 10:09:21 2019

unified-heap: Provide names for internal classes in heap snapshot

Provide a name for internal nodes in non-production builds.

This is very useful for manual debugging builds but may confuse people
without providing better DevTools integration.

Bug: 843903
Change-Id: Ifd7359575beb3c916a86fc6091abfc20c76e6b64
Reviewed-on: https://chromium-review.googlesource.com/c/1412472
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623177}
[modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/renderer/platform/heap/name_trait_test.cc
[modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/renderer/platform/heap/name_traits.h
[modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js
[modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js
[modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js

Comment 197 by bugdroid1@chromium.org, Jan 18

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be

commit 2118b79f4f9da15cfaafb82c0a5f4e3dedf439be
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Jan 18 11:13:01 2019

bindings: Improve wrapper tracing for window.performance

- This removes the restriction of not being able to swap and move
  construct HeapVector<TraceWrapperMember<T>>.
- Building on this wrapper tracing cannot properly find links through
  window.performance.

This CL is meant to close the gap between wrapper tracing and unified
heap garbage collection wrt. memory usage.

Bug: 843903
Change-Id: I699a5fcb8f6f2d63d3d6a908692bdf26d1f7901f
Reviewed-on: https://chromium-review.googlesource.com/c/1412820
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624069}
[modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/core/css/style_sheet_collection.cc
[modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/core/timing/performance.h
[modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/core/timing/performance_observer.h
[modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/core/timing/performance_observer_entry_list.cc
[modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/core/timing/performance_observer_entry_list.h
[modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/platform/bindings/script_wrappable_marking_visitor.h
[modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/platform/bindings/trace_wrapper_member.h
[modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/platform/heap/heap_allocator.h
[modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h
[modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/platform/wtf/vector.h

Comment 198 by bugdroid, Jan 25

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2452e59835f205fded26955430529d42935479c6

commit 2452e59835f205fded26955430529d42935479c6
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Jan 25 09:08:41 2019

[api] Remove deprecated EmbedderHeapTracer::AbortTracing

V8 has no path in calling this API and thus there is no way for the
embedder to get notified about this event.

Bug: chromium:843903
Change-Id: I938675aed9191a292f21bae0fed0e3ea8acaf936
Reviewed-on: https://chromium-review.googlesource.com/c/1434377
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59087}
[modify] https://crrev.com/2452e59835f205fded26955430529d42935479c6/include/v8.h
[modify] https://crrev.com/2452e59835f205fded26955430529d42935479c6/test/cctest/heap/test-embedder-tracing.cc

Comment 199 by mlippautz@chromium.org, Jan 31

Blockedon: 927264

Comment 200 by bugdroid, Feb 5

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8873329027ef3e919bd8a87118dc13162d2a9d7d

commit 8873329027ef3e919bd8a87118dc13162d2a9d7d
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Feb 05 12:11:59 2019

unified-heap: Enable per default

Enabling unfied heap garbage collections per default.

Bug: 843903
Change-Id: I473f85bbe2d6b3fc72051549ffd389896cc488c6
Reviewed-on: https://chromium-review.googlesource.com/c/1412026
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629116}
[modify] https://crrev.com/8873329027ef3e919bd8a87118dc13162d2a9d7d/chrome/browser/apps/guest_view/web_view_browsertest.cc
[modify] https://crrev.com/8873329027ef3e919bd8a87118dc13162d2a9d7d/content/public/common/content_features.cc
[modify] https://crrev.com/8873329027ef3e919bd8a87118dc13162d2a9d7d/third_party/blink/renderer/platform/runtime_enabled_features.json5
[modify] https://crrev.com/8873329027ef3e919bd8a87118dc13162d2a9d7d/third_party/blink/web_tests/fast/xpath/xpath-iterator-result-should-mark-its-nodeset-expected.txt
[modify] https://crrev.com/8873329027ef3e919bd8a87118dc13162d2a9d7d/third_party/blink/web_tests/fast/xpath/xpath-other-nodeset-result-should-mark-its-nodeset-expected.txt
[modify] https://crrev.com/8873329027ef3e919bd8a87118dc13162d2a9d7d/third_party/blink/web_tests/fast/xpath/xpath-snapshot-result-should-mark-its-nodeset-expected.txt

Comment 201 by bugdroid, Feb 5

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/674ec6a718f8154a9f164ec2894695d20b1c061e

commit 674ec6a718f8154a9f164ec2894695d20b1c061e
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Feb 05 17:52:00 2019

Revert "unified-heap: Enable per default"

This reverts commit 8873329027ef3e919bd8a87118dc13162d2a9d7d.

Reason for revert: Broke leak detector, see https://bugs.chromium.org/p/chromium/issues/detail?id=928781

Original change's description:
> unified-heap: Enable per default
> 
> Enabling unfied heap garbage collections per default.
> 
> Bug: 843903
> Change-Id: I473f85bbe2d6b3fc72051549ffd389896cc488c6
> Reviewed-on: https://chromium-review.googlesource.com/c/1412026
> Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#629116}

TBR=ulan@chromium.org,haraken@chromium.org,mlippautz@chromium.org,jochen@chromium.org

Change-Id: If65954f55b65c9bf51e21d23b6de84282ccb2879
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 843903
Reviewed-on: https://chromium-review.googlesource.com/c/1454918
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629207}
[modify] https://crrev.com/674ec6a718f8154a9f164ec2894695d20b1c061e/chrome/browser/apps/guest_view/web_view_browsertest.cc
[modify] https://crrev.com/674ec6a718f8154a9f164ec2894695d20b1c061e/content/public/common/content_features.cc
[modify] https://crrev.com/674ec6a718f8154a9f164ec2894695d20b1c061e/third_party/blink/renderer/platform/runtime_enabled_features.json5
[modify] https://crrev.com/674ec6a718f8154a9f164ec2894695d20b1c061e/third_party/blink/web_tests/fast/xpath/xpath-iterator-result-should-mark-its-nodeset-expected.txt
[modify] https://crrev.com/674ec6a718f8154a9f164ec2894695d20b1c061e/third_party/blink/web_tests/fast/xpath/xpath-other-nodeset-result-should-mark-its-nodeset-expected.txt
[modify] https://crrev.com/674ec6a718f8154a9f164ec2894695d20b1c061e/third_party/blink/web_tests/fast/xpath/xpath-snapshot-result-should-mark-its-nodeset-expected.txt

Comment 202 by bugdroid, Feb 6

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/93bf47e8e56a11a8e09c4c5791d6c5fe321af676

commit 93bf47e8e56a11a8e09c4c5791d6c5fe321af676
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Feb 06 12:54:16 2019

leak-detector: Remove InternalSettings supplement from Page

Internal settings are ScriptWrappable and thus may retain documents
depending on whether the garbage collector(s) are able to find the settings
object through the Page supplement.

Bug: 843903, 928781
Change-Id: I53458c6eb761a98ddc0e437174a233682e442586
Reviewed-on: https://chromium-review.googlesource.com/c/1456001
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629545}
[modify] https://crrev.com/93bf47e8e56a11a8e09c4c5791d6c5fe321af676/third_party/blink/renderer/controller/BUILD.gn
[modify] https://crrev.com/93bf47e8e56a11a8e09c4c5791d6c5fe321af676/third_party/blink/renderer/controller/blink_leak_detector.cc
[modify] https://crrev.com/93bf47e8e56a11a8e09c4c5791d6c5fe321af676/third_party/blink/renderer/core/testing/internal_settings.cc
[modify] https://crrev.com/93bf47e8e56a11a8e09c4c5791d6c5fe321af676/third_party/blink/renderer/core/testing/internal_settings.h

Comment 203 by bugdroid, Feb 6

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5a47d400c29df3951d856e868a2981faff15d124

commit 5a47d400c29df3951d856e868a2981faff15d124
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Feb 06 15:47:12 2019

DragController: Clear DragState in DragEnd

DragState is a ScriptWrappable which can keep alive JavaScript upon
unified heap garbage collection resulting in a leak of the last Window
that used a drag event. Clear the state when the drag ended.

Bug: 843903, 928781
Change-Id: Id86a1a917fe772f56fb679e1d73ef3453785ce6d
Reviewed-on: https://chromium-review.googlesource.com/c/1456073
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629582}
[modify] https://crrev.com/5a47d400c29df3951d856e868a2981faff15d124/third_party/blink/renderer/core/page/drag_controller.cc

Comment 204 by mlippautz@chromium.org, Feb 6

Blockedon: 928781

Comment 205 by mlippautz@chromium.org, Feb 7

Blockedon: 929064

Comment 206 by mlippautz@chromium.org, Feb 7

Blockedon: 929061

Comment 207 by bugdroid, Feb 7

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/69b50d841a6e38af1ec873d7eb58db10fcdd7e2b

commit 69b50d841a6e38af1ec873d7eb58db10fcdd7e2b
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Feb 07 13:48:48 2019

Workers: Free memory when worker is terminated before thread creation

In the case a dedicated worker is terminated before the backing thread
has been created the message proxy would never be cleaned up. With
unified heap this means that any wrappers may keep on to old window
objects.

Bug: 928781, 843903
Change-Id: Ic0f1968609d259a2eea9a4c90d47f95729b4ce79
Reviewed-on: https://chromium-review.googlesource.com/c/1458217
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#629949}
[modify] https://crrev.com/69b50d841a6e38af1ec873d7eb58db10fcdd7e2b/third_party/blink/renderer/core/workers/threaded_messaging_proxy_base.cc

Comment 208 by bugdroid, Feb 8

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/71bdee68d6875ded3232a3b06a95a8f5fc271419

commit 71bdee68d6875ded3232a3b06a95a8f5fc271419
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Feb 08 16:09:14 2019

Revert "DragController: Clear DragState in DragEnd"

This reverts commit 5a47d400c29df3951d856e868a2981faff15d124.

Reason for revert: Maybe introduced breakage. See bugs.


Original change's description:
> DragController: Clear DragState in DragEnd
> 
> DragState is a ScriptWrappable which can keep alive JavaScript upon
> unified heap garbage collection resulting in a leak of the last Window
> that used a drag event. Clear the state when the drag ended.
> 
> Bug: 843903, 928781
> Change-Id: Id86a1a917fe772f56fb679e1d73ef3453785ce6d
> Reviewed-on: https://chromium-review.googlesource.com/c/1456073
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#629582}

TBR=haraken@chromium.org,mlippautz@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 843903, 928781,  930044 ,  930079 
Change-Id: I64722d3fb1757b805440e9840613601634c5d370
Reviewed-on: https://chromium-review.googlesource.com/c/1461019
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#630333}
[modify] https://crrev.com/71bdee68d6875ded3232a3b06a95a8f5fc271419/third_party/blink/renderer/core/page/drag_controller.cc
Showing comments 109 - 208 of 208 Older

Sign in to add a comment