This class proved to be immensely useful to have around while transitioning Blink over to Oilpan. With Oilpan always enabled, it only has one remaining use, StyleFilterData - https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/style/StyleFilterData.h&q=StyleFilterData&sq=package:chromium&type=cs&l=26 If StyleFilterData uses can avoid relying on ref-counting, RefCountedGarbageCollected<> will be unused. We should consider removing it.
(Removing it would also entail dropping WebPrivatePtr<> support.)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e5f18f7973b22a5a35fab927e2af848917e4827b commit e5f18f7973b22a5a35fab927e2af848917e4827b Author: sigbjornf <sigbjornf@opera.com> Date: Sun Apr 24 08:09:31 2016 Add DataPersistent<> for copy-on-modify and use for StyleFilterData. Emulate what DataRef<T> provides over ref-counted objects, but for persistent heap references. DataPersistent<T> values can be freely copied, but when access()ed before being mutated, DataPersistent<> ensures that the mutation will happen on an unshared copy of the underlying heap object (of type T.) The motivation for doing is to migrate the StyleFilterData fields that StyleRareNonInheritedData keeps over to use DataPersistent<> rather than DataRef<>. By doing so, StyleFilterData becomes a simple GCed object without any ref-counting extras. R= BUG= 604481 Review URL: https://codereview.chromium.org/1855213002 Cr-Commit-Position: refs/heads/master@{#389400} [modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/core.gypi [add] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/DataPersistent.h [modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/DataRef.h [modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/StyleFilterData.h [modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp [modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a2f08ba571cf9fb5c190b95c793bfa0ba84ffe85 commit a2f08ba571cf9fb5c190b95c793bfa0ba84ffe85 Author: sigbjornf <sigbjornf@opera.com> Date: Mon Apr 25 06:40:09 2016 Remove RefCountedGarbageCollected<>. Exposing a garbage collected object as something ref-counted is no longer needed, hence the functionality can be removed. R= BUG= 604481 Review URL: https://codereview.chromium.org/1919643002 Cr-Commit-Position: refs/heads/master@{#389419} [modify] https://crrev.com/a2f08ba571cf9fb5c190b95c793bfa0ba84ffe85/third_party/WebKit/Source/bindings/core/v8/RejectedPromises.h [modify] https://crrev.com/a2f08ba571cf9fb5c190b95c793bfa0ba84ffe85/third_party/WebKit/Source/platform/TimerTest.cpp [modify] https://crrev.com/a2f08ba571cf9fb5c190b95c793bfa0ba84ffe85/third_party/WebKit/Source/platform/heap/GarbageCollected.h [modify] https://crrev.com/a2f08ba571cf9fb5c190b95c793bfa0ba84ffe85/third_party/WebKit/Source/platform/heap/Handle.h [modify] https://crrev.com/a2f08ba571cf9fb5c190b95c793bfa0ba84ffe85/third_party/WebKit/Source/platform/heap/HeapTest.cpp [modify] https://crrev.com/a2f08ba571cf9fb5c190b95c793bfa0ba84ffe85/third_party/WebKit/public/platform/WebPrivatePtr.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4fb24d3a331557fc94e556beb24ecbb34fb60330 commit 4fb24d3a331557fc94e556beb24ecbb34fb60330 Author: sigbjornf <sigbjornf@opera.com> Date: Thu Apr 28 18:12:23 2016 Remove RefCountedGarbageCollected<> GC plugin handling. The RefCountedGarbageCollected<> transition type is no longer used and has been removed. Follow up and retire the GC plugin's checks for it. R=haraken BUG= 604481 Review-Url: https://codereview.chromium.org/1932713002 Cr-Commit-Position: refs/heads/master@{#390421} [modify] https://crrev.com/4fb24d3a331557fc94e556beb24ecbb34fb60330/tools/clang/blink_gc_plugin/CheckFieldsVisitor.cpp [modify] https://crrev.com/4fb24d3a331557fc94e556beb24ecbb34fb60330/tools/clang/blink_gc_plugin/Config.h [modify] https://crrev.com/4fb24d3a331557fc94e556beb24ecbb34fb60330/tools/clang/blink_gc_plugin/RecordInfo.cpp [modify] https://crrev.com/4fb24d3a331557fc94e556beb24ecbb34fb60330/tools/clang/blink_gc_plugin/RecordInfo.h [modify] https://crrev.com/4fb24d3a331557fc94e556beb24ecbb34fb60330/tools/clang/blink_gc_plugin/tests/ref_ptr_to_gc_managed_class.cpp [modify] https://crrev.com/4fb24d3a331557fc94e556beb24ecbb34fb60330/tools/clang/blink_gc_plugin/tests/ref_ptr_to_gc_managed_class.h
Comment 1 by sigbjo...@opera.com
, Apr 18 2016