Changeset 116242 in webkit
- Timestamp:
- May 6, 2012 3:06:47 PM (12 years ago)
- Location:
- trunk/Source/WebKit/chromium
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/chromium/ChangeLog
r116239 r116242 1 2012-05-06 Adrienne Walker <enne@google.com> 2 3 [chromium] Allow WebMediaPlayerClientImpl to switch clients 4 https://bugs.webkit.org/show_bug.cgi?id=85093 5 6 Reviewed by James Robinson. 7 8 WebVideoFrameProviderClient has a 1:1 relationship with a 9 WebVideoFrameProvider. The client here is CCVideoLayerImpl and the 10 provider is WebMediaPlayerClientImpl. If the provider gets a new 11 client, then the old client needs to be informed to stop using the 12 provider. 13 14 If this doesn't happen, then the old client will have an unsafe 15 pointer to the provider, will not get informed if the provider gets 16 deleted, and the client will crash when it dereferences the provider 17 pointer trying to tell the provider that its client is going away. 18 19 Test: WebMediaPlayerClientImplTest.InitialNullVideoClient 20 WebMediaPlayerClientImplTest.SetAndUnsetVideoClient 21 WebMediaPlayerClientImplTest.DestroyProvider 22 WebMediaPlayerClientImplTest.SetMultipleVideoClients 23 24 * WebKit.gypi: 25 * src/WebMediaPlayerClientImpl.cpp: 26 (WebKit::WebMediaPlayerClientImpl::setVideoFrameProviderClient): 27 * src/WebMediaPlayerClientImpl.h: 28 (WebMediaPlayerClientImpl): 29 * tests/WebMediaPlayerClientImplTest.cpp: Added. 30 (WebKit): 31 (FakeWebMediaPlayerClientImpl): 32 (WebKit::FakeWebMediaPlayerClientImpl::create): 33 (WebKit::FakeWebMediaPlayerClientImpl::FakeWebMediaPlayerClientImpl): 34 (FakeVideoFrameProviderClient): 35 (WebKit::FakeVideoFrameProviderClient::create): 36 (WebKit::FakeVideoFrameProviderClient::~FakeVideoFrameProviderClient): 37 (WebKit::FakeVideoFrameProviderClient::didReceiveFrame): 38 (WebKit::FakeVideoFrameProviderClient::didUpdateMatrix): 39 (WebKit::FakeVideoFrameProviderClient::stopUsingProvider): 40 (WebKit::FakeVideoFrameProviderClient::provider): 41 (WebKit::FakeVideoFrameProviderClient::FakeVideoFrameProviderClient): 42 (WebKit::TEST): 43 1 44 2012-05-06 Sheriff Bot <webkit.review.bot@gmail.com> 2 45 -
trunk/Source/WebKit/chromium/WebKit.gypi
r115733 r116242 136 136 'tests/WebFrameTest.cpp', 137 137 'tests/WebLayerTest.cpp', 138 'tests/WebMediaPlayerClientImplTest.cpp', 138 139 'tests/WebPageNewSerializerTest.cpp', 139 140 'tests/WebPageSerializerTest.cpp', -
trunk/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
r115771 r116242 688 688 { 689 689 MutexLocker locker(m_compositingMutex); 690 if (m_videoFrameProviderClient) 691 m_videoFrameProviderClient->stopUsingProvider(); 690 692 m_videoFrameProviderClient = client; 691 693 if (m_webMediaPlayer) -
trunk/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h
r115771 r116242 170 170 virtual void didUpdateMatrix(const float*); 171 171 172 protected: 173 WebMediaPlayerClientImpl(); 172 174 private: 173 WebMediaPlayerClientImpl();174 175 void startDelayedLoad(); 175 176 void loadInternal();
Note: See TracChangeset
for help on using the changeset viewer.