Changeset 85872 in webkit
- Timestamp:
- May 5, 2011 1:21:38 PM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r85869 r85872 1 2011-05-05 Eric Carlson <eric.carlson@apple.com> 2 3 Reviewed by Adam Roben. 4 5 Block callbacks delivered during destruction 6 https://bugs.webkit.org/show_bug.cgi?id=60291 7 <rdar://problem/9382942> 8 9 No new tests, tested by existing tests. 10 11 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: 12 (WebCore::MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation): Call 13 setIgnoreLoadStateChanges(true) to cancel all callbacks. 14 (WebCore::MediaPlayerPrivateAVFoundation::updateStates): Return immediately if 15 m_ignoreLoadStateChanges is true. 16 (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): loadStateChanged -> updateStates. 17 Don't call updateStates after calling loadedTimeRangesChanged, it already does it. 18 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: 19 1 20 2011-05-05 David Hyatt <hyatt@apple.com> 2 21 -
trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp
r85865 r85872 80 80 { 81 81 LOG(Media, "MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation(%p)", this); 82 setIgnoreLoadStateChanges(true); 82 83 cancelCallOnMainThread(mainThreadCallback, this); 83 84 } … … 383 384 void MediaPlayerPrivateAVFoundation::updateStates() 384 385 { 386 if (m_ignoreLoadStateChanges) 387 return; 388 385 389 MediaPlayer::NetworkState oldNetworkState = m_networkState; 386 390 MediaPlayer::ReadyState oldReadyState = m_readyState; … … 509 513 } 510 514 511 void MediaPlayerPrivateAVFoundation::loadStateChanged()512 {513 if (m_ignoreLoadStateChanges)514 return;515 updateStates();516 }517 518 515 void MediaPlayerPrivateAVFoundation::rateChanged() 519 516 { … … 731 728 break; 732 729 case Notification::ItemStatusChanged: 733 loadStateChanged();730 updateStates(); 734 731 break; 735 732 case Notification::ItemSeekableTimeRangesChanged: 736 733 seekableTimeRangesChanged(); 737 loadStateChanged();738 734 break; 739 735 case Notification::ItemLoadedTimeRangesChanged: 740 736 loadedTimeRangesChanged(); 741 loadStateChanged();742 737 break; 743 738 case Notification::ItemPresentationSizeChanged: … … 746 741 break; 747 742 case Notification::ItemIsPlaybackLikelyToKeepUpChanged: 748 loadStateChanged();743 updateStates(); 749 744 break; 750 745 case Notification::ItemIsPlaybackBufferEmptyChanged: 751 loadStateChanged();746 updateStates(); 752 747 break; 753 748 case Notification::ItemIsPlaybackBufferFullChanged: 754 loadStateChanged();749 updateStates(); 755 750 break; 756 751 case Notification::PlayerRateChanged: -
trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h
r85865 r85872 43 43 virtual void repaint(); 44 44 virtual void metadataLoaded(); 45 virtual void loadStateChanged();46 45 virtual void playabilityKnown(); 47 46 virtual void rateChanged();
Note: See TracChangeset
for help on using the changeset viewer.