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

Side by Side Diff: third_party/WebKit/Source/modules/webaudio/AudioWorkletThread.cpp

Issue 2793593002: AudioWorklet prototype
Patch Set: Merge changes, AudioParam bug fix Created 3 years, 5 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
OLDNEW
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
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
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/webaudio/AudioWorkletThread.h ('k') | third_party/WebKit/Source/modules/webaudio/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698