Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: Source/core/html/HTMLMediaElement.cpp

Issue 23969007: Fix threading races on WebAudioSourceProviderImpl::provideInput (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 336
337 removeElementFromDocumentMap(this, &document()); 337 removeElementFromDocumentMap(this, &document());
338 338
339 // Destroying the player may cause a resource load to be canceled, 339 // Destroying the player may cause a resource load to be canceled,
340 // which could result in userCancelledLoad() being called back. 340 // which could result in userCancelledLoad() being called back.
341 // Setting m_completelyLoaded ensures that such a call will not cause 341 // Setting m_completelyLoaded ensures that such a call will not cause
342 // us to dispatch an abort event, which would result in a crash. 342 // us to dispatch an abort event, which would result in a crash.
343 // See http://crbug.com/233654 for more details. 343 // See http://crbug.com/233654 for more details.
344 m_completelyLoaded = true; 344 m_completelyLoaded = true;
345 m_player.clear(); 345 m_player.clear();
346 #if ENABLE(WEB_AUDIO)
347 if (audioSourceProvider())
348 audioSourceProvider()->setClient(0);
349 #endif
346 } 350 }
347 351
348 void HTMLMediaElement::didMoveToNewDocument(Document* oldDocument) 352 void HTMLMediaElement::didMoveToNewDocument(Document* oldDocument)
349 { 353 {
350 LOG(Media, "HTMLMediaElement::didMoveToNewDocument"); 354 LOG(Media, "HTMLMediaElement::didMoveToNewDocument");
351 355
352 if (m_shouldDelayLoadEvent) { 356 if (m_shouldDelayLoadEvent) {
353 if (oldDocument) 357 if (oldDocument)
354 oldDocument->decrementLoadEventDelayCount(); 358 oldDocument->decrementLoadEventDelayCount();
355 document().incrementLoadEventDelayCount(); 359 document().incrementLoadEventDelayCount();
(...skipping 3091 matching lines...) Expand 10 before | Expand all | Expand 10 after
3447 updateActiveTextTrackCues(0); 3451 updateActiveTextTrackCues(0);
3448 } 3452 }
3449 3453
3450 void HTMLMediaElement::clearMediaPlayer(int flags) 3454 void HTMLMediaElement::clearMediaPlayer(int flags)
3451 { 3455 {
3452 removeAllInbandTracks(); 3456 removeAllInbandTracks();
3453 3457
3454 closeMediaSource(); 3458 closeMediaSource();
3455 3459
3456 m_player.clear(); 3460 m_player.clear();
3461 #if ENABLE(WEB_AUDIO)
3462 if (audioSourceProvider())
3463 audioSourceProvider()->setClient(0);
3464 #endif
3457 stopPeriodicTimers(); 3465 stopPeriodicTimers();
3458 m_loadTimer.stop(); 3466 m_loadTimer.stop();
3459 3467
3460 m_pendingActionFlags &= ~flags; 3468 m_pendingActionFlags &= ~flags;
3461 m_loadState = WaitingForSource; 3469 m_loadState = WaitingForSource;
3462 3470
3463 if (m_textTracks) 3471 if (m_textTracks)
3464 configureTextTrackDisplay(); 3472 configureTextTrackDisplay();
3465 } 3473 }
3466 3474
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
3981 { 3989 {
3982 m_restrictions = NoRestrictions; 3990 m_restrictions = NoRestrictions;
3983 } 3991 }
3984 3992
3985 void HTMLMediaElement::mediaPlayerScheduleLayerUpdate() 3993 void HTMLMediaElement::mediaPlayerScheduleLayerUpdate()
3986 { 3994 {
3987 scheduleLayerUpdate(); 3995 scheduleLayerUpdate();
3988 } 3996 }
3989 3997
3990 } 3998 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698