| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/webaudio/AudioWorkletThread.h" | 5 #include "modules/webaudio/AudioWorkletThread.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include "core/workers/GlobalScopeCreationParams.h" | 8 #include "core/workers/GlobalScopeCreationParams.h" |
| 9 #include "core/workers/WorkerBackingThread.h" | 9 #include "core/workers/WorkerBackingThread.h" |
| 10 #include "modules/webaudio/AudioWorkletGlobalScope.h" | 10 #include "modules/webaudio/AudioWorkletGlobalScope.h" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 BLINK_FROM_HERE, CrossThreadBind(&CollectAllGarbageOnAudioWorkletThread, | 58 BLINK_FROM_HERE, CrossThreadBind(&CollectAllGarbageOnAudioWorkletThread, |
| 59 CrossThreadUnretained(&done_event))); | 59 CrossThreadUnretained(&done_event))); |
| 60 done_event.Wait(); | 60 done_event.Wait(); |
| 61 } | 61 } |
| 62 | 62 |
| 63 void AudioWorkletThread::EnsureSharedBackingThread() { | 63 void AudioWorkletThread::EnsureSharedBackingThread() { |
| 64 DCHECK(IsMainThread()); | 64 DCHECK(IsMainThread()); |
| 65 WorkletThreadHolder<AudioWorkletThread>::EnsureInstance("AudioWorkletThread"); | 65 WorkletThreadHolder<AudioWorkletThread>::EnsureInstance("AudioWorkletThread"); |
| 66 } | 66 } |
| 67 | 67 |
| 68 void AudioWorkletThread::SetSharedBackingThread(WebThread* thread) { |
| 69 DCHECK(IsMainThread()); |
| 70 WorkletThreadHolder<AudioWorkletThread>::EnsureInstance(thread); |
| 71 } |
| 72 |
| 68 void AudioWorkletThread::ClearSharedBackingThread() { | 73 void AudioWorkletThread::ClearSharedBackingThread() { |
| 69 DCHECK(IsMainThread()); | 74 DCHECK(IsMainThread()); |
| 70 WorkletThreadHolder<AudioWorkletThread>::ClearInstance(); | 75 WorkletThreadHolder<AudioWorkletThread>::ClearInstance(); |
| 71 } | 76 } |
| 72 | 77 |
| 73 void AudioWorkletThread::CreateSharedBackingThreadForTest() { | 78 void AudioWorkletThread::CreateSharedBackingThreadForTest() { |
| 74 WorkletThreadHolder<AudioWorkletThread>::CreateForTest("AudioWorkletThread"); | 79 WorkletThreadHolder<AudioWorkletThread>::CreateForTest("AudioWorkletThread"); |
| 75 } | 80 } |
| 76 | 81 |
| 77 WorkerOrWorkletGlobalScope* AudioWorkletThread::CreateWorkerGlobalScope( | 82 WorkerOrWorkletGlobalScope* AudioWorkletThread::CreateWorkerGlobalScope( |
| 78 std::unique_ptr<GlobalScopeCreationParams> creation_params) { | 83 std::unique_ptr<GlobalScopeCreationParams> creation_params) { |
| 79 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("audio-worklet"), | 84 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("audio-worklet"), |
| 80 "AudioWorkletThread::createWorkerGlobalScope"); | 85 "AudioWorkletThread::createWorkerGlobalScope"); |
| 81 | 86 |
| 82 RefPtr<SecurityOrigin> security_origin = | 87 RefPtr<SecurityOrigin> security_origin = |
| 83 SecurityOrigin::Create(creation_params->script_url); | 88 SecurityOrigin::Create(creation_params->script_url); |
| 84 if (creation_params->starter_origin_privilege_data) { | 89 if (creation_params->starter_origin_privilege_data) { |
| 85 security_origin->TransferPrivilegesFrom( | 90 security_origin->TransferPrivilegesFrom( |
| 86 std::move(creation_params->starter_origin_privilege_data)); | 91 std::move(creation_params->starter_origin_privilege_data)); |
| 87 } | 92 } |
| 88 | 93 |
| 89 return AudioWorkletGlobalScope::Create( | 94 return AudioWorkletGlobalScope::Create( |
| 90 creation_params->script_url, creation_params->user_agent, | 95 creation_params->script_url, creation_params->user_agent, |
| 91 std::move(security_origin), this->GetIsolate(), this, | 96 std::move(security_origin), this->GetIsolate(), this, |
| 92 creation_params->worker_clients); | 97 creation_params->worker_clients); |
| 93 } | 98 } |
| 94 | 99 |
| 95 } // namespace blink | 100 } // namespace blink |
| OLD | NEW |