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

Side by Side Diff: content/browser/renderer_host/render_process_host_impl.cc

Issue 2812883003: Browser test dry runs with mojo audio streams.
Patch Set: Rebase Created 3 years, 6 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 // Represents the browser side of the browser <--> renderer communication 5 // Represents the browser side of the browser <--> renderer communication
6 // channel. There will be one RenderProcessHost per renderer process. 6 // channel. There will be one RenderProcessHost per renderer process.
7 7
8 #include "content/browser/renderer_host/render_process_host_impl.h" 8 #include "content/browser/renderer_host/render_process_host_impl.h"
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 1311 matching lines...) Expand 10 before | Expand all | Expand 10 after
1322 storage_partition_impl_->GetFileSystemContext(), 1322 storage_partition_impl_->GetFileSystemContext(),
1323 storage_partition_impl_->GetServiceWorkerContext(), get_contexts_callback, 1323 storage_partition_impl_->GetServiceWorkerContext(), get_contexts_callback,
1324 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); 1324 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO));
1325 1325
1326 AddFilter(resource_message_filter_.get()); 1326 AddFilter(resource_message_filter_.get());
1327 1327
1328 media::AudioManager* audio_manager = 1328 media::AudioManager* audio_manager =
1329 BrowserMainLoop::GetInstance()->audio_manager(); 1329 BrowserMainLoop::GetInstance()->audio_manager();
1330 MediaStreamManager* media_stream_manager = 1330 MediaStreamManager* media_stream_manager =
1331 BrowserMainLoop::GetInstance()->media_stream_manager(); 1331 BrowserMainLoop::GetInstance()->media_stream_manager();
1332 // The AudioInputRendererHost and AudioRendererHost needs to be available for 1332 // The AudioInputRendererHost needs to be available for
1333 // lookup, so it's stashed in a member variable. 1333 // lookup, so it's stashed in a member variable.
1334 audio_input_renderer_host_ = new AudioInputRendererHost( 1334 audio_input_renderer_host_ = new AudioInputRendererHost(
1335 GetID(), audio_manager, media_stream_manager, 1335 GetID(), audio_manager, media_stream_manager,
1336 AudioMirroringManager::GetInstance(), 1336 AudioMirroringManager::GetInstance(),
1337 BrowserMainLoop::GetInstance()->user_input_monitor()); 1337 BrowserMainLoop::GetInstance()->user_input_monitor());
1338 AddFilter(audio_input_renderer_host_.get()); 1338 AddFilter(audio_input_renderer_host_.get());
1339 audio_renderer_host_ = new AudioRendererHost( 1339 if (!RendererAudioOutputStreamFactoryContextImpl::UseMojoFactories()) {
1340 GetID(), audio_manager, BrowserMainLoop::GetInstance()->audio_system(), 1340 AddFilter(base::MakeRefCounted<AudioRendererHost>(
1341 AudioMirroringManager::GetInstance(), media_stream_manager, 1341 GetID(), audio_manager,
1342 browser_context->GetMediaDeviceIDSalt()); 1342 BrowserMainLoop::GetInstance()->audio_system(),
1343 AddFilter(audio_renderer_host_.get()); 1343 AudioMirroringManager::GetInstance(), media_stream_manager,
1344 browser_context->GetMediaDeviceIDSalt())
1345 .get());
1346 }
1344 AddFilter( 1347 AddFilter(
1345 new MidiHost(GetID(), BrowserMainLoop::GetInstance()->midi_service())); 1348 new MidiHost(GetID(), BrowserMainLoop::GetInstance()->midi_service()));
1346 AddFilter(new AppCacheDispatcherHost( 1349 AddFilter(new AppCacheDispatcherHost(
1347 storage_partition_impl_->GetAppCacheService(), GetID())); 1350 storage_partition_impl_->GetAppCacheService(), GetID()));
1348 AddFilter(new ClipboardMessageFilter(blob_storage_context)); 1351 AddFilter(new ClipboardMessageFilter(blob_storage_context));
1349 AddFilter(new DOMStorageMessageFilter( 1352 AddFilter(new DOMStorageMessageFilter(
1350 storage_partition_impl_->GetDOMStorageContext())); 1353 storage_partition_impl_->GetDOMStorageContext()));
1351 1354
1352 #if BUILDFLAG(ENABLE_WEBRTC) 1355 #if BUILDFLAG(ENABLE_WEBRTC)
1353 peer_connection_tracker_host_ = new PeerConnectionTrackerHost( 1356 peer_connection_tracker_host_ = new PeerConnectionTrackerHost(
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
1825 --visible_widgets_; 1828 --visible_widgets_;
1826 if (visible_widgets_ == 0) { 1829 if (visible_widgets_ == 0) {
1827 UpdateProcessPriority(); 1830 UpdateProcessPriority();
1828 } 1831 }
1829 } 1832 }
1830 1833
1831 int RenderProcessHostImpl::VisibleWidgetCount() const { 1834 int RenderProcessHostImpl::VisibleWidgetCount() const {
1832 return visible_widgets_; 1835 return visible_widgets_;
1833 } 1836 }
1834 1837
1838 UniqueAudioOutputStreamFactoryPtr
1839 RenderProcessHostImpl::CreateAudioOutputStreamFactory(
1840 int frame_id,
1841 mojom::RendererAudioOutputStreamFactoryRequest request) {
1842 if (!audio_output_stream_factory_context_) {
1843 media::AudioManager* audio_manager =
1844 BrowserMainLoop::GetInstance()->audio_manager();
1845 MediaStreamManager* media_stream_manager =
1846 BrowserMainLoop::GetInstance()->media_stream_manager();
1847 media::AudioSystem* audio_system =
1848 BrowserMainLoop::GetInstance()->audio_system();
1849 std::string salt = GetBrowserContext()->GetMediaDeviceIDSalt();
1850 audio_output_stream_factory_context_.reset(
1851 new RendererAudioOutputStreamFactoryContextImpl(
1852 GetID(), audio_system, audio_manager, media_stream_manager, salt));
1853 }
1854 return audio_output_stream_factory_context_->CreateFactory(
1855 frame_id, std::move(request));
1856 }
1857
1835 void RenderProcessHostImpl::OnAudioStreamAdded() { 1858 void RenderProcessHostImpl::OnAudioStreamAdded() {
1836 ++audio_stream_count_; 1859 ++audio_stream_count_;
1837 UpdateProcessPriority(); 1860 UpdateProcessPriority();
1838 } 1861 }
1839 1862
1840 void RenderProcessHostImpl::OnAudioStreamRemoved() { 1863 void RenderProcessHostImpl::OnAudioStreamRemoved() {
1841 DCHECK_GT(audio_stream_count_, 0); 1864 DCHECK_GT(audio_stream_count_, 0);
1842 --audio_stream_count_; 1865 --audio_stream_count_;
1843 UpdateProcessPriority(); 1866 UpdateProcessPriority();
1844 } 1867 }
(...skipping 1549 matching lines...) Expand 10 before | Expand all | Expand 10 after
3394 // sent a RenderProcessHostDestroyed notification, and we must observe our 3417 // sent a RenderProcessHostDestroyed notification, and we must observe our
3395 // contract that says that will be the last call. 3418 // contract that says that will be the last call.
3396 if (deleting_soon_) 3419 if (deleting_soon_)
3397 return; 3420 return;
3398 3421
3399 RendererClosedDetails details{base::TERMINATION_STATUS_LAUNCH_FAILED, 3422 RendererClosedDetails details{base::TERMINATION_STATUS_LAUNCH_FAILED,
3400 error_code}; 3423 error_code};
3401 ProcessDied(true, &details); 3424 ProcessDied(true, &details);
3402 } 3425 }
3403 3426
3404 scoped_refptr<AudioRendererHost> RenderProcessHostImpl::audio_renderer_host()
3405 const {
3406 return audio_renderer_host_;
3407 }
3408
3409 void RenderProcessHostImpl::OnUserMetricsRecordAction( 3427 void RenderProcessHostImpl::OnUserMetricsRecordAction(
3410 const std::string& action) { 3428 const std::string& action) {
3411 base::RecordComputedAction(action); 3429 base::RecordComputedAction(action);
3412 } 3430 }
3413 3431
3414 void RenderProcessHostImpl::OnCloseACK(int old_route_id) { 3432 void RenderProcessHostImpl::OnCloseACK(int old_route_id) {
3415 SessionStorageHolder* holder = 3433 SessionStorageHolder* holder =
3416 static_cast<SessionStorageHolder*>(GetUserData(kSessionStorageHolderKey)); 3434 static_cast<SessionStorageHolder*>(GetUserData(kSessionStorageHolderKey));
3417 if (!holder) 3435 if (!holder)
3418 return; 3436 return;
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
3574 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; 3592 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error;
3575 3593
3576 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. 3594 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing.
3577 // Capture the error message in a crash key value. 3595 // Capture the error message in a crash key value.
3578 base::debug::ScopedCrashKey error_key_value("mojo-message-error", error); 3596 base::debug::ScopedCrashKey error_key_value("mojo-message-error", error);
3579 bad_message::ReceivedBadMessage(render_process_id, 3597 bad_message::ReceivedBadMessage(render_process_id,
3580 bad_message::RPH_MOJO_PROCESS_ERROR); 3598 bad_message::RPH_MOJO_PROCESS_ERROR);
3581 } 3599 }
3582 3600
3583 } // namespace content 3601 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_process_host_impl.h ('k') | content/public/app/mojo/content_browser_manifest.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698