New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 672030 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Email to this user bounced
Closed: Feb 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 678923



Sign in to add a comment

Simple Oilpan heap compaction

Reported by sigbjo...@opera.com, Dec 7 2016

Issue description

Tracker bug for the implementation of heap compaction for BlinkGC/Oilpan.

Intent to implement: https://groups.google.com/a/chromium.org/d/msg/blink-dev/oZw5F3fO-aU/2OecGsPlAwAJ
 
Labels: -Pri-3 Pri-2
Owner: sigbjo...@opera.com
Status: Started (was: Untriaged)
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 12 2016

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

commit c55a2886f98771ade1d73b99d21464c517b5e11e
Author: sigbjornf <sigbjornf@opera.com>
Date: Mon Dec 12 07:12:34 2016

Simple BlinkGC heap compaction.

This implements heap compaction for the Blink GC infrastructure
(Oilpan), compacting the arenas of the BlinkGC heap which are most
susceptible to becoming fragmented during actual use.

Fragmentation is a real problem and a growing one while browsing anything
but static pages: the amount of unused, but allocated, memory is
fluctuating higher over time.

To avoid leaving increasing amounts of unused holes in our heaps,
heap compaction will periodically squeeze out the unused portions,
packing together the live objects. The heap pages that are then
left as unused, are subsequently released and returned to the OS.

Due to a fortunate property of Blink heap collection types, providing
such compaction is within relatively easy reach. Experiments show that
the arenas which hold such collection objects ("backing stores") are
the ones that develop fragmentation the most & persistently. While not
a complete heap compactor of all Blink GC arenas, it addresses the
fragmentation problem where it is most pressing. More can be done, later.

Explainer / design document:

 https://docs.google.com/document/d/1k-vivOinomDXnScw8Ew5zpsYCXiYqj76OCOYZSvHkaU

R=haraken
BUG= 672030 

Review-Url: https://codereview.chromium.org/2531973002
Cr-Commit-Position: refs/heads/master@{#437829}

[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitor.cpp
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/BUILD.gn
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/BlinkGC.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/Heap.cpp
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/Heap.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/HeapAllocator.h
[add] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/HeapCompact.cpp
[add] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/HeapCompact.h
[add] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/HeapCompactTest.cpp
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/HeapPage.cpp
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/HeapPage.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/HeapTest.cpp
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/InlinedGlobalMarkingVisitor.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/MarkingVisitor.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/MarkingVisitorImpl.h
[add] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/SparseHeapBitmap.cpp
[add] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/SparseHeapBitmap.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/ThreadState.cpp
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/ThreadState.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/TraceTraits.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/Visitor.cpp
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/platform/heap/Visitor.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/wtf/Deque.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/wtf/HashTable.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/wtf/LinkedHashSet.h
[modify] https://crrev.com/c55a2886f98771ade1d73b99d21464c517b5e11e/third_party/WebKit/Source/wtf/Vector.h

Project Member

Comment 5 by bugdroid1@chromium.org, Dec 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/88209344ccad5aa05ce1c70a77c8942bc7b20a75

commit 88209344ccad5aa05ce1c70a77c8942bc7b20a75
Author: yhirano <yhirano@chromium.org>
Date: Mon Dec 12 08:30:35 2016

Revert of Simple BlinkGC heap compaction. (patchset #22 id:420001 of https://codereview.chromium.org/2531973002/ )

Reason for revert:
Speculative revert for a layout test breakage. https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.11/builds/13912

Original issue's description:
> Simple BlinkGC heap compaction.
>
> This implements heap compaction for the Blink GC infrastructure
> (Oilpan), compacting the arenas of the BlinkGC heap which are most
> susceptible to becoming fragmented during actual use.
>
> Fragmentation is a real problem and a growing one while browsing anything
> but static pages: the amount of unused, but allocated, memory is
> fluctuating higher over time.
>
> To avoid leaving increasing amounts of unused holes in our heaps,
> heap compaction will periodically squeeze out the unused portions,
> packing together the live objects. The heap pages that are then
> left as unused, are subsequently released and returned to the OS.
>
> Due to a fortunate property of Blink heap collection types, providing
> such compaction is within relatively easy reach. Experiments show that
> the arenas which hold such collection objects ("backing stores") are
> the ones that develop fragmentation the most & persistently. While not
> a complete heap compactor of all Blink GC arenas, it addresses the
> fragmentation problem where it is most pressing. More can be done, later.
>
> Explainer / design document:
>
>  https://docs.google.com/document/d/1k-vivOinomDXnScw8Ew5zpsYCXiYqj76OCOYZSvHkaU
>
> R=haraken
> BUG= 672030 
>
> Review-Url: https://codereview.chromium.org/2531973002

TBR=oilpan-reviews@chromium.org,haraken@chromium.org,sigbjornf@opera.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 672030 

Review-Url: https://codereview.chromium.org/2570483002
Cr-Commit-Position: refs/heads/master@{#437834}

[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitor.cpp
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/BUILD.gn
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/BlinkGC.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/Heap.cpp
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/Heap.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/HeapAllocator.h
[delete] https://crrev.com/2c51e821a6219d233cf63985373e989827ecd0f0/third_party/WebKit/Source/platform/heap/HeapCompact.cpp
[delete] https://crrev.com/2c51e821a6219d233cf63985373e989827ecd0f0/third_party/WebKit/Source/platform/heap/HeapCompact.h
[delete] https://crrev.com/2c51e821a6219d233cf63985373e989827ecd0f0/third_party/WebKit/Source/platform/heap/HeapCompactTest.cpp
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/HeapPage.cpp
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/HeapPage.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/HeapTest.cpp
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/InlinedGlobalMarkingVisitor.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/MarkingVisitor.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/MarkingVisitorImpl.h
[delete] https://crrev.com/2c51e821a6219d233cf63985373e989827ecd0f0/third_party/WebKit/Source/platform/heap/SparseHeapBitmap.cpp
[delete] https://crrev.com/2c51e821a6219d233cf63985373e989827ecd0f0/third_party/WebKit/Source/platform/heap/SparseHeapBitmap.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/ThreadState.cpp
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/ThreadState.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/TraceTraits.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/Visitor.cpp
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/platform/heap/Visitor.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/wtf/Deque.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/wtf/HashTable.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/wtf/LinkedHashSet.h
[modify] https://crrev.com/88209344ccad5aa05ce1c70a77c8942bc7b20a75/third_party/WebKit/Source/wtf/Vector.h

Project Member

Comment 6 by bugdroid1@chromium.org, Dec 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c7d13f7694fa208d996947731eacd152902ebdd

commit 2c7d13f7694fa208d996947731eacd152902ebdd
Author: sigbjornf <sigbjornf@opera.com>
Date: Tue Dec 13 11:33:21 2016

Simple BlinkGC heap compaction.

This implements heap compaction for the Blink GC infrastructure
(Oilpan), compacting the arenas of the BlinkGC heap which are most
susceptible to becoming fragmented during actual use.

Fragmentation is a real problem and a growing one while browsing anything
but static pages: the amount of unused, but allocated, memory is
fluctuating higher over time.

To avoid leaving increasing amounts of unused holes in our heaps,
heap compaction will periodically squeeze out the unused portions,
packing together the live objects. The heap pages that are then
left as unused, are subsequently released and returned to the OS.

Due to a fortunate property of Blink heap collection types, providing
such compaction is within relatively easy reach. Experiments show that
the arenas which hold such collection objects ("backing stores") are
the ones that develop fragmentation the most & persistently. While not
a complete heap compactor of all Blink GC arenas, it addresses the
fragmentation problem where it is most pressing. More can be done, later.

Explainer / design document:

 https://docs.google.com/document/d/1k-vivOinomDXnScw8Ew5zpsYCXiYqj76OCOYZSvHkaU

R=haraken
BUG= 672030 

Review-Url: https://codereview.chromium.org/2531973002
Cr-Commit-Position: refs/heads/master@{#438125}

[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitor.cpp
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/BUILD.gn
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/BlinkGC.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/Heap.cpp
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/Heap.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/HeapAllocator.h
[add] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/HeapCompact.cpp
[add] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/HeapCompact.h
[add] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/HeapCompactTest.cpp
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/HeapPage.cpp
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/HeapPage.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/HeapTest.cpp
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/InlinedGlobalMarkingVisitor.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/MarkingVisitor.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/MarkingVisitorImpl.h
[add] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/SparseHeapBitmap.cpp
[add] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/SparseHeapBitmap.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/ThreadState.cpp
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/ThreadState.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/TraceTraits.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/Visitor.cpp
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/platform/heap/Visitor.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/wtf/Deque.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/wtf/HashTable.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/wtf/LinkedHashSet.h
[modify] https://crrev.com/2c7d13f7694fa208d996947731eacd152902ebdd/third_party/WebKit/Source/wtf/Vector.h

Project Member

Comment 7 by bugdroid1@chromium.org, Dec 20 2016

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

commit de25fdc5de7ddb6353360e9424cef0792d70587e
Author: sigbjornf <sigbjornf@opera.com>
Date: Tue Dec 20 08:14:00 2016

Tracing HeapListHashSet<> iterators.

The HeapListHashSet<> iterators keep a pair of heap references, which
really should be traced like any other such reference during GCs. This
isn't unsafe for the stack allocated uses of these iterators, but one
Blink object (CSSSegmentedFontFace) keeps an iterator as a field on the
heap, we really have to trace these on-heap part object iterators.

Add the needed infrastructure and use it for CSSSegmentedFontFace.

R=haraken
BUG= 672030 

Review-Url: https://codereview.chromium.org/2583363002
Cr-Commit-Position: refs/heads/master@{#439748}

[modify] https://crrev.com/de25fdc5de7ddb6353360e9424cef0792d70587e/third_party/WebKit/Source/core/css/CSSSegmentedFontFace.cpp
[modify] https://crrev.com/de25fdc5de7ddb6353360e9424cef0792d70587e/third_party/WebKit/Source/platform/heap/HeapAllocator.h
[modify] https://crrev.com/de25fdc5de7ddb6353360e9424cef0792d70587e/third_party/WebKit/Source/wtf/ListHashSet.h

Project Member

Comment 8 by bugdroid1@chromium.org, Dec 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f

commit 1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f
Author: sigbjornf <sigbjornf@opera.com>
Date: Tue Dec 20 13:22:15 2016

Disallow heap objects containing unsafe on-heap iterators.

Do not allow BlinkGC managed objects to include unsafe iterators of
other heap objects; that is, do not allow them to keep iterator
part objects as fields.

These iterators contain untraced references, which is in general
unsafe practice and breaks the general rule that all heap references
must be known to the GC infrastructure, and be marked and traced
through.

This applies to all heap collection iterators but HeapListHashSet<>'s,
which can be safely traced. It is also the only collection iterator
which is kept as a field of an on-heap object (CSSSegmentedFontFace.)

R=haraken
BUG= 672030 

Review-Url: https://codereview.chromium.org/2588943002
Cr-Commit-Position: refs/heads/master@{#439784}

[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/CheckFieldsVisitor.cpp
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/CheckFieldsVisitor.h
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/Config.h
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/DiagnosticsReporter.cpp
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/DiagnosticsReporter.h
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/Edge.cpp
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/Edge.h
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/RecordInfo.cpp
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/RecordInfo.h
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/tests/fields_illegal_tracing.h
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/tests/fields_illegal_tracing.txt
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/tests/heap/stubs.h
[modify] https://crrev.com/1fb76ab1b86a2c6f1c2b8512b7bf39701a2a756f/tools/clang/blink_gc_plugin/tests/stack_allocated.txt

Blockedon: 678923
Thanks very much for running the experiment, keishi@.

Here's my interpretation:

 - the data suggests that heap compaction overhead on pause times isn't a major concern.
 - that ~10 Blink pages (1 page = 128k) are on average released per compaction of the backing stores, which matches local data.
 - that compacting the hash table and vector arenas reduce _total heap_ commit size by 7%. The data doesn't say when/how that differential was computed.

If the 7% hold up for a longer running renderer process, then compaction is arguably a worthwhile addition for keeping its Blink GC heap in a trim shape. Do keep in mind that compaction runs continually to combat fragmentation.
Project Member

Comment 12 by bugdroid1@chromium.org, Jan 31 2017

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

commit e256b3108ccfdf178866619d2438502ffebda8d6
Author: sigbjornf <sigbjornf@opera.com>
Date: Tue Jan 31 17:03:54 2017

Change HeapCompaction feature status to stable.

R=
BUG= 672030 

Review-Url: https://codereview.chromium.org/2653413002
Cr-Commit-Position: refs/heads/master@{#447248}

[modify] https://crrev.com/e256b3108ccfdf178866619d2438502ffebda8d6/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in

Status: Fixed (was: Started)

Sign in to add a comment