Oilpan: add transition types to track interface objects.

With Oilpan enabled, make TextTrack, TextTrackCue, VTTCue, TextTrackList,
TextTrackCueList, VTTRegion, VTTRegionList and VTTParser garbage
collected objects.

Along with doing so, the references between these objects are now (strong)
Member references, and not asymmetric RefPtr+raw pointer pairs needed
to break cycles. This means these inter-related objects will live
and die together.

Simpler to reason about, and prevents problematic cases where if a
"child" object (e.g., a text track cue object) is held onto longer
than its parent track object (or its track list), you'd be unable to
keep those "parent" objects alive. The best we can currently do without
Oilpan strong member references is to clear out the raw back pointers
upon destructing the parent. And we still do in the non-Oilpan case.

R=haraken@chromium.org,ager@chromium.org
BUG=340522

Review URL: https://codereview.chromium.org/244493002

git-svn-id: svn://svn.chromium.org/blink/trunk@172365 bbb929c8-8fbe-4397-9dbb-9b2b20218538
38 files changed
tree: d43eb115c516c81b2893c0a4cf703514e1c82a48
  1. third_party/