| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights
reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 325 , m_sentEndEvent(false) | 325 , m_sentEndEvent(false) |
| 326 , m_pausedInternal(false) | 326 , m_pausedInternal(false) |
| 327 , m_closedCaptionsVisible(false) | 327 , m_closedCaptionsVisible(false) |
| 328 , m_completelyLoaded(false) | 328 , m_completelyLoaded(false) |
| 329 , m_havePreparedToPlay(false) | 329 , m_havePreparedToPlay(false) |
| 330 , m_tracksAreReady(true) | 330 , m_tracksAreReady(true) |
| 331 , m_haveVisibleTextTrack(false) | 331 , m_haveVisibleTextTrack(false) |
| 332 , m_processingPreferenceChange(false) | 332 , m_processingPreferenceChange(false) |
| 333 #if ENABLE(OILPAN) | 333 #if ENABLE(OILPAN) |
| 334 , m_isFinalizing(false) | 334 , m_isFinalizing(false) |
| 335 , m_closeMediaSourceWhenFinalizing(false) |
| 335 #endif | 336 #endif |
| 336 , m_lastTextTrackUpdateTime(-1) | 337 , m_lastTextTrackUpdateTime(-1) |
| 337 , m_audioTracks(AudioTrackList::create(*this)) | 338 , m_audioTracks(AudioTrackList::create(*this)) |
| 338 , m_videoTracks(VideoTrackList::create(*this)) | 339 , m_videoTracks(VideoTrackList::create(*this)) |
| 339 , m_textTracks(nullptr) | 340 , m_textTracks(nullptr) |
| 340 , m_ignoreTrackDisplayUpdate(0) | 341 , m_ignoreTrackDisplayUpdate(0) |
| 341 #if ENABLE(WEB_AUDIO) | 342 #if ENABLE(WEB_AUDIO) |
| 342 , m_audioSourceNode(nullptr) | 343 , m_audioSourceNode(nullptr) |
| 343 #endif | 344 #endif |
| 344 { | 345 { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 m_textTracks->clearOwner(); | 384 m_textTracks->clearOwner(); |
| 384 m_audioTracks->shutdown(); | 385 m_audioTracks->shutdown(); |
| 385 m_videoTracks->shutdown(); | 386 m_videoTracks->shutdown(); |
| 386 | 387 |
| 387 if (m_mediaController) { | 388 if (m_mediaController) { |
| 388 m_mediaController->removeMediaElement(this); | 389 m_mediaController->removeMediaElement(this); |
| 389 m_mediaController = nullptr; | 390 m_mediaController = nullptr; |
| 390 } | 391 } |
| 391 #endif | 392 #endif |
| 392 | 393 |
| 394 #if ENABLE(OILPAN) |
| 395 if (m_closeMediaSourceWhenFinalizing) |
| 396 closeMediaSource(); |
| 397 #else |
| 393 closeMediaSource(); | 398 closeMediaSource(); |
| 394 | 399 |
| 395 #if !ENABLE(OILPAN) | |
| 396 removeElementFromDocumentMap(this, &document()); | 400 removeElementFromDocumentMap(this, &document()); |
| 397 #endif | 401 #endif |
| 398 | 402 |
| 399 // Destroying the player may cause a resource load to be canceled, | 403 // Destroying the player may cause a resource load to be canceled, |
| 400 // which could result in userCancelledLoad() being called back. | 404 // which could result in userCancelledLoad() being called back. |
| 401 // Setting m_completelyLoaded ensures that such a call will not cause | 405 // Setting m_completelyLoaded ensures that such a call will not cause |
| 402 // us to dispatch an abort event, which would result in a crash. | 406 // us to dispatch an abort event, which would result in a crash. |
| 403 // See http://crbug.com/233654 for more details. | 407 // See http://crbug.com/233654 for more details. |
| 404 m_completelyLoaded = true; | 408 m_completelyLoaded = true; |
| 405 | 409 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 436 #if ENABLE(WEB_AUDIO) && !ENABLE(OILPAN) | 440 #if ENABLE(WEB_AUDIO) && !ENABLE(OILPAN) |
| 437 ASSERT(!m_audioSourceNode); | 441 ASSERT(!m_audioSourceNode); |
| 438 #endif | 442 #endif |
| 439 clearMediaPlayerAndAudioSourceProviderClientWithoutLocking(); | 443 clearMediaPlayerAndAudioSourceProviderClientWithoutLocking(); |
| 440 | 444 |
| 441 #if !ENABLE(OILPAN) | 445 #if !ENABLE(OILPAN) |
| 442 document().decrementLoadEventDelayCount(); | 446 document().decrementLoadEventDelayCount(); |
| 443 #endif | 447 #endif |
| 444 } | 448 } |
| 445 | 449 |
| 450 #if ENABLE(OILPAN) |
| 451 void HTMLMediaElement::setCloseMediaSourceWhenFinalizing() |
| 452 { |
| 453 ASSERT(!m_closeMediaSourceWhenFinalizing); |
| 454 m_closeMediaSourceWhenFinalizing = true; |
| 455 } |
| 456 #endif |
| 457 |
| 446 void HTMLMediaElement::didMoveToNewDocument(Document& oldDocument) | 458 void HTMLMediaElement::didMoveToNewDocument(Document& oldDocument) |
| 447 { | 459 { |
| 448 WTF_LOG(Media, "HTMLMediaElement::didMoveToNewDocument"); | 460 WTF_LOG(Media, "HTMLMediaElement::didMoveToNewDocument"); |
| 449 | 461 |
| 450 if (m_shouldDelayLoadEvent) { | 462 if (m_shouldDelayLoadEvent) { |
| 451 document().incrementLoadEventDelayCount(); | 463 document().incrementLoadEventDelayCount(); |
| 452 // Note: Keeping the load event delay count increment on oldDocument tha
t was added | 464 // Note: Keeping the load event delay count increment on oldDocument tha
t was added |
| 453 // when m_shouldDelayLoadEvent was set so that destruction of m_player c
an not | 465 // when m_shouldDelayLoadEvent was set so that destruction of m_player c
an not |
| 454 // cause load event dispatching in oldDocument. | 466 // cause load event dispatching in oldDocument. |
| 455 } else { | 467 } else { |
| (...skipping 3451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3907 } | 3919 } |
| 3908 HTMLElement::defaultEventHandler(event); | 3920 HTMLElement::defaultEventHandler(event); |
| 3909 } | 3921 } |
| 3910 | 3922 |
| 3911 void HTMLMediaElement::trace(Visitor* visitor) | 3923 void HTMLMediaElement::trace(Visitor* visitor) |
| 3912 { | 3924 { |
| 3913 visitor->trace(m_asyncEventQueue); | 3925 visitor->trace(m_asyncEventQueue); |
| 3914 visitor->trace(m_error); | 3926 visitor->trace(m_error); |
| 3915 visitor->trace(m_currentSourceNode); | 3927 visitor->trace(m_currentSourceNode); |
| 3916 visitor->trace(m_nextChildNodeToConsider); | 3928 visitor->trace(m_nextChildNodeToConsider); |
| 3929 visitor->trace(m_mediaSource); |
| 3917 visitor->trace(m_audioTracks); | 3930 visitor->trace(m_audioTracks); |
| 3918 visitor->trace(m_videoTracks); | 3931 visitor->trace(m_videoTracks); |
| 3919 visitor->trace(m_textTracks); | 3932 visitor->trace(m_textTracks); |
| 3920 visitor->trace(m_textTracksWhenResourceSelectionBegan); | 3933 visitor->trace(m_textTracksWhenResourceSelectionBegan); |
| 3921 visitor->trace(m_mediaController); | 3934 visitor->trace(m_mediaController); |
| 3922 #if ENABLE(WEB_AUDIO) | 3935 #if ENABLE(WEB_AUDIO) |
| 3923 visitor->registerWeakMembers<HTMLMediaElement, &HTMLMediaElement::clearWeakM
embers>(this); | 3936 visitor->registerWeakMembers<HTMLMediaElement, &HTMLMediaElement::clearWeakM
embers>(this); |
| 3924 #endif | 3937 #endif |
| 3925 WillBeHeapSupplementable<HTMLMediaElement>::trace(visitor); | 3938 WillBeHeapSupplementable<HTMLMediaElement>::trace(visitor); |
| 3926 HTMLElement::trace(visitor); | 3939 HTMLElement::trace(visitor); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 3956 | 3969 |
| 3957 #if ENABLE(WEB_AUDIO) | 3970 #if ENABLE(WEB_AUDIO) |
| 3958 void HTMLMediaElement::clearWeakMembers(Visitor* visitor) | 3971 void HTMLMediaElement::clearWeakMembers(Visitor* visitor) |
| 3959 { | 3972 { |
| 3960 if (!visitor->isAlive(m_audioSourceNode) && audioSourceProvider()) | 3973 if (!visitor->isAlive(m_audioSourceNode) && audioSourceProvider()) |
| 3961 audioSourceProvider()->setClient(0); | 3974 audioSourceProvider()->setClient(0); |
| 3962 } | 3975 } |
| 3963 #endif | 3976 #endif |
| 3964 | 3977 |
| 3965 } | 3978 } |
| OLD | NEW |