Changeset 115529 in webkit
- Timestamp:
- Apr 27, 2012 7:55:49 PM (12 years ago)
- Location:
- trunk/Source/WebKit/chromium
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/chromium/ChangeLog
r115527 r115529 1 2012-04-27 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-04-27 Tony Chang <tony@chromium.org> 2 45 -
trunk/Source/WebKit/chromium/WebKit.gypi
r115386 r115529 135 135 'tests/WebFrameTest.cpp', 136 136 'tests/WebLayerTest.cpp', 137 'tests/WebMediaPlayerClientImplTest.cpp', 137 138 'tests/WebPageNewSerializerTest.cpp', 138 139 'tests/WebPageSerializerTest.cpp', -
trunk/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
r114390 r115529 673 673 { 674 674 MutexLocker locker(m_compositingMutex); 675 if (m_videoFrameProviderClient) 676 m_videoFrameProviderClient->stopUsingProvider(); 675 677 m_videoFrameProviderClient = client; 676 678 if (m_webMediaPlayer) -
trunk/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h
r114390 r115529 166 166 virtual void didUpdateMatrix(const float*); 167 167 168 protected: 169 WebMediaPlayerClientImpl(); 168 170 private: 169 WebMediaPlayerClientImpl();170 171 void startDelayedLoad(); 171 172 void loadInternal();
Note: See TracChangeset
for help on using the changeset viewer.