Chromium Code Reviews| 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/WorkerBackingThread.h" | 8 #include "core/workers/WorkerBackingThread.h" |
| 9 #include "core/workers/WorkerThreadStartupData.h" | 9 #include "core/workers/WorkerThreadStartupData.h" |
| 10 #include "modules/webaudio/AudioWorkletGlobalScope.h" | 10 #include "modules/webaudio/AudioWorkletGlobalScope.h" |
| 11 #include "platform/CrossThreadFunctional.h" | 11 #include "platform/CrossThreadFunctional.h" |
| 12 #include "platform/WaitableEvent.h" | 12 #include "platform/WaitableEvent.h" |
| 13 #include "platform/WebThreadSupportingGC.h" | 13 #include "platform/WebThreadSupportingGC.h" |
| 14 #include "platform/instrumentation/tracing/TraceEvent.h" | 14 #include "platform/instrumentation/tracing/TraceEvent.h" |
| 15 #include "platform/weborigin/SecurityOrigin.h" | 15 #include "platform/weborigin/SecurityOrigin.h" |
| 16 #include "platform/wtf/Assertions.h" | 16 #include "platform/wtf/Assertions.h" |
| 17 #include "platform/wtf/PtrUtil.h" | 17 #include "platform/wtf/PtrUtil.h" |
| 18 #include "public/platform/Platform.h" | 18 #include "public/platform/Platform.h" |
| 19 | 19 |
| 20 namespace blink { | 20 namespace blink { |
| 21 | 21 |
| 22 template class WorkletThreadHolder<AudioWorkletThread>; | 22 template class WorkletThreadHolder<AudioWorkletThread>; |
| 23 | 23 |
| 24 std::unique_ptr<AudioWorkletThread> AudioWorkletThread::Create( | 24 std::unique_ptr<AudioWorkletThread> AudioWorkletThread::Create( |
| 25 PassRefPtr<WorkerLoaderProxy> worker_loader_proxy, | 25 ThreadableLoadingContext* loading_context, |
| 26 WorkerReportingProxy& worker_reporting_proxy) { | 26 WorkerReportingProxy& worker_reporting_proxy) { |
| 27 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("audio-worklet"), | 27 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("audio-worklet"), |
| 28 "AudioWorkletThread::create"); | 28 "AudioWorkletThread::create"); |
| 29 DCHECK(IsMainThread()); | 29 DCHECK(IsMainThread()); |
| 30 return WTF::WrapUnique(new AudioWorkletThread(std::move(worker_loader_proxy), | 30 return WTF::WrapUnique( |
| 31 worker_reporting_proxy)); | 31 new AudioWorkletThread(loading_context, worker_reporting_proxy)); |
|
haraken
2017/04/25 16:53:43
MakeUnique
nhiroki
2017/05/29 04:20:24
Let me keep this as is for now because (1) MakeUni
| |
| 32 } | 32 } |
| 33 | 33 |
| 34 AudioWorkletThread::AudioWorkletThread( | 34 AudioWorkletThread::AudioWorkletThread( |
| 35 PassRefPtr<WorkerLoaderProxy> worker_loader_proxy, | 35 ThreadableLoadingContext* loading_context, |
| 36 WorkerReportingProxy& worker_reporting_proxy) | 36 WorkerReportingProxy& worker_reporting_proxy) |
| 37 : WorkerThread(std::move(worker_loader_proxy), worker_reporting_proxy) {} | 37 : WorkerThread(loading_context, worker_reporting_proxy) {} |
| 38 | 38 |
| 39 AudioWorkletThread::~AudioWorkletThread() {} | 39 AudioWorkletThread::~AudioWorkletThread() {} |
| 40 | 40 |
| 41 WorkerBackingThread& AudioWorkletThread::GetWorkerBackingThread() { | 41 WorkerBackingThread& AudioWorkletThread::GetWorkerBackingThread() { |
| 42 return *WorkletThreadHolder<AudioWorkletThread>::GetInstance()->GetThread(); | 42 return *WorkletThreadHolder<AudioWorkletThread>::GetInstance()->GetThread(); |
| 43 } | 43 } |
| 44 | 44 |
| 45 void CollectAllGarbageOnAudioWorkletThread(WaitableEvent* done_event) { | 45 void CollectAllGarbageOnAudioWorkletThread(WaitableEvent* done_event) { |
| 46 blink::ThreadState::Current()->CollectAllGarbage(); | 46 blink::ThreadState::Current()->CollectAllGarbage(); |
| 47 done_event->Signal(); | 47 done_event->Signal(); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 85 security_origin->TransferPrivilegesFrom( | 85 security_origin->TransferPrivilegesFrom( |
| 86 std::move(startup_data->starter_origin_privilege_data_)); | 86 std::move(startup_data->starter_origin_privilege_data_)); |
| 87 } | 87 } |
| 88 | 88 |
| 89 return AudioWorkletGlobalScope::Create( | 89 return AudioWorkletGlobalScope::Create( |
| 90 startup_data->script_url_, startup_data->user_agent_, | 90 startup_data->script_url_, startup_data->user_agent_, |
| 91 security_origin.Release(), this->GetIsolate(), this); | 91 security_origin.Release(), this->GetIsolate(), this); |
| 92 } | 92 } |
| 93 | 93 |
| 94 } // namespace blink | 94 } // namespace blink |
| OLD | NEW |