Oilpan: Move MediaStreamSource, MediaStreamComponent and MediaStreamDescriptor
to oilpan's heap

- MediaStreamSource, MediaStreamComponent and MediaStreamDescriptor must be moved
to oilpan's heap in one go because their lifetime are tightly coupled.

- Removed m_descriptor->setClient(0) from MediaStream's destructor. This is OK
because MediaStreamDescriptor has a strong Member back to the Client
(i.e., MediaStream).

- Removed m_component->source()->removeObserver(this) from MediaStreamTrack's
destructor. This is OK because this CL made the observers weak
(i.e., MediaStreamSource::m_observers is a hash set of weak members to
MediaStreamTrack objects).

- Removed WebMediaStreamTrack::ExtraData::m_owner because it's unused.

- Introduced MediaStreamComponentDisposer to delay the destruction of
MediaStreamComponent::m_extraData. The ExtraData is exposed to the web
and some Chromium objects inherit from the ExtraData. If we clear the
m_extraData in the MediaStreamComponent's destructor, those Chromium-side
objects are also destructed in the MediaStreamComponent's destructor.
This is problematic because the destructors of the Chromium-side classes
can touch other on-heap objects in the Blink side. To avoid the issue,
we need to delay the destruction of the ExtraData to thread-specific
weak processing. The disposer pattern actually makes the deletion of
the extra data happen earlier and not later. The disposer makes sure
that the extra data is destructed in weak processing which is run before
sweeping and therefore all the objects are still alive and can be touched.


- The same problem arises for MediaStreamDescriptor and MediaStreamSource.
This CL adds MediaStreamDescriptorDisposer and MediaStreamSourceDisposer.

- This CL depends on https://codereview.chromium.org/543603003/ and https://codereview.chromium.org/549153002.

BUG=340522

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

git-svn-id: svn://svn.chromium.org/blink/trunk@181702 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Return width from drawText to stop re-measure in Canvas

Allowing drawText to return width of what was drawn, 
so that we don't have to make call to width to 
re-measure in Canvas drawing.

R=eae@chromium.org
BUG=410706
TEST=TEST=fast/canvas/canvas-drawtext-width-return.html

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

git-svn-id: svn://svn.chromium.org/blink/trunk@181703 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Web Animations: Use null for unresolved startTime and currentTime in AnimationPlayer

BUG=396372

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

git-svn-id: svn://svn.chromium.org/blink/trunk@181704 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add EventSourceInit

The spec[1] says the EventSource constructor should take EventSourceInit
dictionary as an argument. This CL doesn't change behavior. Tests under
http/tests/eventsource cover this change.

[1] http://www.w3.org/TR/eventsource/#eventsource

BUG=403150

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

git-svn-id: svn://svn.chromium.org/blink/trunk@181705 bbb929c8-8fbe-4397-9dbb-9b2b20218538
GN fixes to make webkit_unit_tests link on android

Linux sometimes means android too.

R=brettw@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@181706 bbb929c8-8fbe-4397-9dbb-9b2b20218538