Add safety when the .src attribute of an <audio> or <video> element is changed and it's used with the Web Audio API
When this happens, the underlying WebMediaPlayer is changed, with the old one destroyed and the new one created.
We need to take care to synchronize this destruction of the old WebMediaPlayer.
Part of this change involves making sure WebMediaPlayerClientImpl::AudioSourceProviderImpl::wrap(0)
calls WebAudioSourceProvider::setClient(0) for the old WebAudioSourceProvider.
We also add locking in the WebMediaPlayerClientImpl::AudioSourceProviderImpl methods.
BUG=239897
R=abarth@chromium.org, dalecurtis@chromium.org, kbr@chromium.org
Review URL: https://codereview.chromium.org/15077011
git-svn-id: svn://svn.chromium.org/blink/trunk@150330 bbb929c8-8fbe-4397-9dbb-9b2b20218538