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

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

Issue 1855193002: Move the call to enable the WebRTC event log from PeerConnectionFactory to PeerConnection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added CONTENT_EXPORT to WebRTCEventLogHost. Created 4 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 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 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 #endif 241 #endif
242 242
243 namespace content { 243 namespace content {
244 namespace { 244 namespace {
245 245
246 const char kSiteProcessMapKeyName[] = "content_site_process_map"; 246 const char kSiteProcessMapKeyName[] = "content_site_process_map";
247 247
248 #ifdef ENABLE_WEBRTC 248 #ifdef ENABLE_WEBRTC
249 const base::FilePath::CharType kAecDumpFileNameAddition[] = 249 const base::FilePath::CharType kAecDumpFileNameAddition[] =
250 FILE_PATH_LITERAL("aec_dump"); 250 FILE_PATH_LITERAL("aec_dump");
251 const base::FilePath::CharType kEventLogFileNameAddition[] =
252 FILE_PATH_LITERAL("event_log");
253 #endif 251 #endif
254 252
255 void CacheShaderInfo(int32_t id, base::FilePath path) { 253 void CacheShaderInfo(int32_t id, base::FilePath path) {
256 ShaderCacheFactory::GetInstance()->SetCacheInfo(id, path); 254 ShaderCacheFactory::GetInstance()->SetCacheInfo(id, path);
257 } 255 }
258 256
259 void RemoveShaderInfo(int32_t id) { 257 void RemoveShaderInfo(int32_t id) {
260 ShaderCacheFactory::GetInstance()->RemoveCacheInfo(id); 258 ShaderCacheFactory::GetInstance()->RemoveCacheInfo(id);
261 } 259 }
262 260
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 id_(ChildProcessHostImpl::GenerateChildProcessUniqueId()), 544 id_(ChildProcessHostImpl::GenerateChildProcessUniqueId()),
547 browser_context_(browser_context), 545 browser_context_(browser_context),
548 storage_partition_impl_(storage_partition_impl), 546 storage_partition_impl_(storage_partition_impl),
549 sudden_termination_allowed_(true), 547 sudden_termination_allowed_(true),
550 ignore_input_events_(false), 548 ignore_input_events_(false),
551 is_for_guests_only_(is_for_guests_only), 549 is_for_guests_only_(is_for_guests_only),
552 gpu_observer_registered_(false), 550 gpu_observer_registered_(false),
553 delayed_cleanup_needed_(false), 551 delayed_cleanup_needed_(false),
554 within_process_died_observer_(false), 552 within_process_died_observer_(false),
555 power_monitor_broadcaster_(this), 553 power_monitor_broadcaster_(this),
554 #if defined(ENABLE_WEBRTC)
555 webrtc_eventlog_host_(id_),
556 #endif
556 worker_ref_count_(0), 557 worker_ref_count_(0),
557 max_worker_count_(0), 558 max_worker_count_(0),
558 permission_service_context_(new PermissionServiceContext(this)), 559 permission_service_context_(new PermissionServiceContext(this)),
559 channel_connected_(false), 560 channel_connected_(false),
560 sent_render_process_ready_(false), 561 sent_render_process_ready_(false),
561 #if defined(OS_ANDROID) 562 #if defined(OS_ANDROID)
562 never_signaled_(base::WaitableEvent::ResetPolicy::MANUAL, 563 never_signaled_(base::WaitableEvent::ResetPolicy::MANUAL,
563 base::WaitableEvent::InitialState::NOT_SIGNALED), 564 base::WaitableEvent::InitialState::NOT_SIGNALED),
564 #endif 565 #endif
565 weak_factory_(this) { 566 weak_factory_(this) {
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 storage_partition_impl_->GetAppCacheService(), GetID())); 926 storage_partition_impl_->GetAppCacheService(), GetID()));
926 AddFilter(new ClipboardMessageFilter(blob_storage_context)); 927 AddFilter(new ClipboardMessageFilter(blob_storage_context));
927 AddFilter(new DOMStorageMessageFilter( 928 AddFilter(new DOMStorageMessageFilter(
928 storage_partition_impl_->GetDOMStorageContext())); 929 storage_partition_impl_->GetDOMStorageContext()));
929 AddFilter(new IndexedDBDispatcherHost( 930 AddFilter(new IndexedDBDispatcherHost(
930 GetID(), storage_partition_impl_->GetURLRequestContext(), 931 GetID(), storage_partition_impl_->GetURLRequestContext(),
931 storage_partition_impl_->GetIndexedDBContext(), 932 storage_partition_impl_->GetIndexedDBContext(),
932 blob_storage_context.get())); 933 blob_storage_context.get()));
933 934
934 #if defined(ENABLE_WEBRTC) 935 #if defined(ENABLE_WEBRTC)
935 peer_connection_tracker_host_ = new PeerConnectionTrackerHost(GetID()); 936 peer_connection_tracker_host_ =
937 new PeerConnectionTrackerHost(GetID(), &webrtc_eventlog_host_);
936 AddFilter(peer_connection_tracker_host_.get()); 938 AddFilter(peer_connection_tracker_host_.get());
937 AddFilter(new MediaStreamDispatcherHost( 939 AddFilter(new MediaStreamDispatcherHost(
938 GetID(), browser_context->GetResourceContext()->GetMediaDeviceIDSalt(), 940 GetID(), browser_context->GetResourceContext()->GetMediaDeviceIDSalt(),
939 media_stream_manager)); 941 media_stream_manager));
940 AddFilter(new MediaStreamTrackMetricsHost()); 942 AddFilter(new MediaStreamTrackMetricsHost());
941 #endif 943 #endif
942 #if defined(ENABLE_PLUGINS) 944 #if defined(ENABLE_PLUGINS)
943 AddFilter(new PepperRendererConnection(GetID())); 945 AddFilter(new PepperRendererConnection(GetID()));
944 #endif 946 #endif
945 AddFilter(new SpeechRecognitionDispatcherHost( 947 AddFilter(new SpeechRecognitionDispatcherHost(
(...skipping 804 matching lines...) Expand 10 before | Expand all | Expand 10 after
1750 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_ShutdownRequest, 1752 IPC_MESSAGE_HANDLER(ChildProcessHostMsg_ShutdownRequest,
1751 OnShutdownRequest) 1753 OnShutdownRequest)
1752 IPC_MESSAGE_HANDLER(RenderProcessHostMsg_SuddenTerminationChanged, 1754 IPC_MESSAGE_HANDLER(RenderProcessHostMsg_SuddenTerminationChanged,
1753 SuddenTerminationChanged) 1755 SuddenTerminationChanged)
1754 IPC_MESSAGE_HANDLER(ViewHostMsg_UserMetricsRecordAction, 1756 IPC_MESSAGE_HANDLER(ViewHostMsg_UserMetricsRecordAction,
1755 OnUserMetricsRecordAction) 1757 OnUserMetricsRecordAction)
1756 IPC_MESSAGE_HANDLER(ViewHostMsg_Close_ACK, OnCloseACK) 1758 IPC_MESSAGE_HANDLER(ViewHostMsg_Close_ACK, OnCloseACK)
1757 #if defined(ENABLE_WEBRTC) 1759 #if defined(ENABLE_WEBRTC)
1758 IPC_MESSAGE_HANDLER(AecDumpMsg_RegisterAecDumpConsumer, 1760 IPC_MESSAGE_HANDLER(AecDumpMsg_RegisterAecDumpConsumer,
1759 OnRegisterAecDumpConsumer) 1761 OnRegisterAecDumpConsumer)
1760 IPC_MESSAGE_HANDLER(WebRTCEventLogMsg_RegisterEventLogConsumer,
1761 OnRegisterEventLogConsumer)
1762 IPC_MESSAGE_HANDLER(AecDumpMsg_UnregisterAecDumpConsumer, 1762 IPC_MESSAGE_HANDLER(AecDumpMsg_UnregisterAecDumpConsumer,
1763 OnUnregisterAecDumpConsumer) 1763 OnUnregisterAecDumpConsumer)
1764 IPC_MESSAGE_HANDLER(WebRTCEventLogMsg_UnregisterEventLogConsumer,
1765 OnUnregisterEventLogConsumer)
1766 #endif 1764 #endif
1767 // Adding single handlers for your service here is fine, but once your 1765 // Adding single handlers for your service here is fine, but once your
1768 // service needs more than one handler, please extract them into a new 1766 // service needs more than one handler, please extract them into a new
1769 // message filter and add that filter to CreateMessageFilters(). 1767 // message filter and add that filter to CreateMessageFilters().
1770 IPC_END_MESSAGE_MAP() 1768 IPC_END_MESSAGE_MAP()
1771 1769
1772 return true; 1770 return true;
1773 } 1771 }
1774 1772
1775 // Dispatch incoming messages to the appropriate IPC::Listener. 1773 // Dispatch incoming messages to the appropriate IPC::Listener.
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
2014 // guaranteed during the lifetime of the closure. 2012 // guaranteed during the lifetime of the closure.
2015 if (audio_input_renderer_host_) { 2013 if (audio_input_renderer_host_) {
2016 // Not null if RenderProcessHostImpl::Init has already been called. 2014 // Not null if RenderProcessHostImpl::Init has already been called.
2017 BrowserThread::PostTask( 2015 BrowserThread::PostTask(
2018 BrowserThread::IO, FROM_HERE, 2016 BrowserThread::IO, FROM_HERE,
2019 base::Bind(&AudioInputRendererHost::DisableDebugRecording, 2017 base::Bind(&AudioInputRendererHost::DisableDebugRecording,
2020 audio_input_renderer_host_)); 2018 audio_input_renderer_host_));
2021 } 2019 }
2022 } 2020 }
2023 2021
2024 void RenderProcessHostImpl::EnableEventLogRecordings( 2022 bool RenderProcessHostImpl::StartWebRTCEventLog(
2025 const base::FilePath& file) { 2023 const base::FilePath& file_path) {
2026 DCHECK_CURRENTLY_ON(BrowserThread::UI); 2024 return webrtc_eventlog_host_.StartWebRTCEventLog(file_path);
2027
2028 // Enable Event log for each registered consumer.
2029 base::FilePath file_with_extensions = GetEventLogFilePathWithExtensions(file);
2030 for (int id : aec_dump_consumers_)
2031 EnableEventLogForId(file_with_extensions, id);
2032 } 2025 }
2033 2026
2034 void RenderProcessHostImpl::DisableEventLogRecordings() { 2027 bool RenderProcessHostImpl::StopWebRTCEventLog() {
2035 DCHECK_CURRENTLY_ON(BrowserThread::UI); 2028 return webrtc_eventlog_host_.StopWebRTCEventLog();
2036
2037 // Posting on the FILE thread and then replying back on the UI thread is only
2038 // for avoiding races between enable and disable. Nothing is done on the FILE
2039 // thread.
2040 BrowserThread::PostTaskAndReply(
2041 BrowserThread::FILE, FROM_HERE, base::Bind(&base::DoNothing),
2042 base::Bind(&RenderProcessHostImpl::SendDisableEventLogToRenderer,
2043 weak_factory_.GetWeakPtr()));
2044 } 2029 }
2045 2030
2046 void RenderProcessHostImpl::SetWebRtcLogMessageCallback( 2031 void RenderProcessHostImpl::SetWebRtcLogMessageCallback(
2047 base::Callback<void(const std::string&)> callback) { 2032 base::Callback<void(const std::string&)> callback) {
2048 #if defined(ENABLE_WEBRTC) 2033 #if defined(ENABLE_WEBRTC)
2049 BrowserMainLoop::GetInstance()->media_stream_manager()-> 2034 BrowserMainLoop::GetInstance()->media_stream_manager()->
2050 RegisterNativeLogCallback(GetID(), callback); 2035 RegisterNativeLogCallback(GetID(), callback);
2051 #endif 2036 #endif
2052 } 2037 }
2053 2038
(...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after
2675 } 2660 }
2676 2661
2677 #if defined(ENABLE_WEBRTC) 2662 #if defined(ENABLE_WEBRTC)
2678 void RenderProcessHostImpl::OnRegisterAecDumpConsumer(int id) { 2663 void RenderProcessHostImpl::OnRegisterAecDumpConsumer(int id) {
2679 BrowserThread::PostTask( 2664 BrowserThread::PostTask(
2680 BrowserThread::UI, FROM_HERE, 2665 BrowserThread::UI, FROM_HERE,
2681 base::Bind(&RenderProcessHostImpl::RegisterAecDumpConsumerOnUIThread, 2666 base::Bind(&RenderProcessHostImpl::RegisterAecDumpConsumerOnUIThread,
2682 weak_factory_.GetWeakPtr(), id)); 2667 weak_factory_.GetWeakPtr(), id));
2683 } 2668 }
2684 2669
2685 void RenderProcessHostImpl::OnRegisterEventLogConsumer(int id) {
2686 BrowserThread::PostTask(
2687 BrowserThread::UI, FROM_HERE,
2688 base::Bind(&RenderProcessHostImpl::RegisterEventLogConsumerOnUIThread,
2689 weak_factory_.GetWeakPtr(), id));
2690 }
2691
2692 void RenderProcessHostImpl::OnUnregisterAecDumpConsumer(int id) { 2670 void RenderProcessHostImpl::OnUnregisterAecDumpConsumer(int id) {
2693 BrowserThread::PostTask( 2671 BrowserThread::PostTask(
2694 BrowserThread::UI, FROM_HERE, 2672 BrowserThread::UI, FROM_HERE,
2695 base::Bind(&RenderProcessHostImpl::UnregisterAecDumpConsumerOnUIThread, 2673 base::Bind(&RenderProcessHostImpl::UnregisterAecDumpConsumerOnUIThread,
2696 weak_factory_.GetWeakPtr(), id)); 2674 weak_factory_.GetWeakPtr(), id));
2697 } 2675 }
2698 2676
2699 void RenderProcessHostImpl::OnUnregisterEventLogConsumer(int id) {
2700 BrowserThread::PostTask(
2701 BrowserThread::UI, FROM_HERE,
2702 base::Bind(&RenderProcessHostImpl::UnregisterEventLogConsumerOnUIThread,
2703 weak_factory_.GetWeakPtr(), id));
2704 }
2705
2706 void RenderProcessHostImpl::RegisterAecDumpConsumerOnUIThread(int id) { 2677 void RenderProcessHostImpl::RegisterAecDumpConsumerOnUIThread(int id) {
2707 DCHECK_CURRENTLY_ON(BrowserThread::UI); 2678 DCHECK_CURRENTLY_ON(BrowserThread::UI);
2708 aec_dump_consumers_.push_back(id); 2679 aec_dump_consumers_.push_back(id);
2709 2680
2710 if (WebRTCInternals::GetInstance()->IsAudioDebugRecordingsEnabled()) { 2681 if (WebRTCInternals::GetInstance()->IsAudioDebugRecordingsEnabled()) {
2711 base::FilePath file_with_extensions = GetAecDumpFilePathWithExtensions( 2682 base::FilePath file_with_extensions = GetAecDumpFilePathWithExtensions(
2712 WebRTCInternals::GetInstance()->GetAudioDebugRecordingsFilePath()); 2683 WebRTCInternals::GetInstance()->GetAudioDebugRecordingsFilePath());
2713 EnableAecDumpForId(file_with_extensions, id); 2684 EnableAecDumpForId(file_with_extensions, id);
2714 } 2685 }
2715 } 2686 }
2716 2687
2717 void RenderProcessHostImpl::RegisterEventLogConsumerOnUIThread(int id) {
2718 DCHECK_CURRENTLY_ON(BrowserThread::UI);
2719 aec_dump_consumers_.push_back(id);
2720
2721 if (WebRTCInternals::GetInstance()->IsEventLogRecordingsEnabled()) {
2722 base::FilePath file_with_extensions = GetEventLogFilePathWithExtensions(
2723 WebRTCInternals::GetInstance()->GetEventLogRecordingsFilePath());
2724 EnableEventLogForId(file_with_extensions, id);
2725 }
2726 }
2727
2728 void RenderProcessHostImpl::UnregisterAecDumpConsumerOnUIThread(int id) { 2688 void RenderProcessHostImpl::UnregisterAecDumpConsumerOnUIThread(int id) {
2729 DCHECK_CURRENTLY_ON(BrowserThread::UI); 2689 DCHECK_CURRENTLY_ON(BrowserThread::UI);
2730 for (std::vector<int>::iterator it = aec_dump_consumers_.begin(); 2690 for (std::vector<int>::iterator it = aec_dump_consumers_.begin();
2731 it != aec_dump_consumers_.end(); ++it) { 2691 it != aec_dump_consumers_.end(); ++it) {
2732 if (*it == id) { 2692 if (*it == id) {
2733 aec_dump_consumers_.erase(it); 2693 aec_dump_consumers_.erase(it);
2734 break; 2694 break;
2735 } 2695 }
2736 } 2696 }
2737 } 2697 }
2738 2698
2739 void RenderProcessHostImpl::UnregisterEventLogConsumerOnUIThread(int id) {
2740 DCHECK_CURRENTLY_ON(BrowserThread::UI);
2741 for (std::vector<int>::iterator it = aec_dump_consumers_.begin();
2742 it != aec_dump_consumers_.end(); ++it) {
2743 if (*it == id) {
2744 aec_dump_consumers_.erase(it);
2745 break;
2746 }
2747 }
2748 }
2749
2750 void RenderProcessHostImpl::EnableAecDumpForId(const base::FilePath& file, 2699 void RenderProcessHostImpl::EnableAecDumpForId(const base::FilePath& file,
2751 int id) { 2700 int id) {
2752 DCHECK_CURRENTLY_ON(BrowserThread::UI); 2701 DCHECK_CURRENTLY_ON(BrowserThread::UI);
2753 BrowserThread::PostTaskAndReplyWithResult( 2702 BrowserThread::PostTaskAndReplyWithResult(
2754 BrowserThread::FILE, FROM_HERE, 2703 BrowserThread::FILE, FROM_HERE,
2755 base::Bind(&CreateFileForProcess, file.AddExtension(IntToStringType(id))), 2704 base::Bind(&CreateFileForProcess, file.AddExtension(IntToStringType(id))),
2756 base::Bind(&RenderProcessHostImpl::SendAecDumpFileToRenderer, 2705 base::Bind(&RenderProcessHostImpl::SendAecDumpFileToRenderer,
2757 weak_factory_.GetWeakPtr(), id)); 2706 weak_factory_.GetWeakPtr(), id));
2758 } 2707 }
2759 2708
2760 void RenderProcessHostImpl::EnableEventLogForId(const base::FilePath& file,
2761 int id) {
2762 DCHECK_CURRENTLY_ON(BrowserThread::UI);
2763 BrowserThread::PostTaskAndReplyWithResult(
2764 BrowserThread::FILE, FROM_HERE,
2765 base::Bind(&CreateFileForProcess, file.AddExtension(IntToStringType(id))),
2766 base::Bind(&RenderProcessHostImpl::SendEventLogFileToRenderer,
2767 weak_factory_.GetWeakPtr(), id));
2768 }
2769
2770 void RenderProcessHostImpl::SendAecDumpFileToRenderer( 2709 void RenderProcessHostImpl::SendAecDumpFileToRenderer(
2771 int id, 2710 int id,
2772 IPC::PlatformFileForTransit file_for_transit) { 2711 IPC::PlatformFileForTransit file_for_transit) {
2773 if (file_for_transit == IPC::InvalidPlatformFileForTransit()) 2712 if (file_for_transit == IPC::InvalidPlatformFileForTransit())
2774 return; 2713 return;
2775 Send(new AecDumpMsg_EnableAecDump(id, file_for_transit)); 2714 Send(new AecDumpMsg_EnableAecDump(id, file_for_transit));
2776 } 2715 }
2777 2716
2778 void RenderProcessHostImpl::SendEventLogFileToRenderer(
2779 int id,
2780 IPC::PlatformFileForTransit file_for_transit) {
2781 if (file_for_transit == IPC::InvalidPlatformFileForTransit())
2782 return;
2783 Send(new WebRTCEventLogMsg_EnableEventLog(id, file_for_transit));
2784 }
2785
2786 void RenderProcessHostImpl::SendDisableAecDumpToRenderer() { 2717 void RenderProcessHostImpl::SendDisableAecDumpToRenderer() {
2787 Send(new AecDumpMsg_DisableAecDump()); 2718 Send(new AecDumpMsg_DisableAecDump());
2788 } 2719 }
2789 2720
2790 void RenderProcessHostImpl::SendDisableEventLogToRenderer() {
2791 Send(new WebRTCEventLogMsg_DisableEventLog());
2792 }
2793
2794 base::FilePath RenderProcessHostImpl::GetAecDumpFilePathWithExtensions( 2721 base::FilePath RenderProcessHostImpl::GetAecDumpFilePathWithExtensions(
2795 const base::FilePath& file) { 2722 const base::FilePath& file) {
2796 return file.AddExtension(IntToStringType(base::GetProcId(GetHandle()))) 2723 return file.AddExtension(IntToStringType(base::GetProcId(GetHandle())))
2797 .AddExtension(kAecDumpFileNameAddition); 2724 .AddExtension(kAecDumpFileNameAddition);
2798 } 2725 }
2799
2800 base::FilePath RenderProcessHostImpl::GetEventLogFilePathWithExtensions(
2801 const base::FilePath& file) {
2802 return file.AddExtension(IntToStringType(base::GetProcId(GetHandle())))
2803 .AddExtension(kEventLogFileNameAddition);
2804 }
2805 #endif // defined(ENABLE_WEBRTC) 2726 #endif // defined(ENABLE_WEBRTC)
2806 2727
2807 void RenderProcessHostImpl::GetAudioOutputControllers( 2728 void RenderProcessHostImpl::GetAudioOutputControllers(
2808 const GetAudioOutputControllersCallback& callback) const { 2729 const GetAudioOutputControllersCallback& callback) const {
2809 audio_renderer_host()->GetOutputControllers(callback); 2730 audio_renderer_host()->GetOutputControllers(callback);
2810 } 2731 }
2811 2732
2812 BluetoothAdapterFactoryWrapper* 2733 BluetoothAdapterFactoryWrapper*
2813 RenderProcessHostImpl::GetBluetoothAdapterFactoryWrapper() { 2734 RenderProcessHostImpl::GetBluetoothAdapterFactoryWrapper() {
2814 return &bluetooth_adapter_factory_wrapper_; 2735 return &bluetooth_adapter_factory_wrapper_;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2846 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; 2767 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error;
2847 2768
2848 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. Alias 2769 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. Alias
2849 // enough information here so that we can determine what the bad message was. 2770 // enough information here so that we can determine what the bad message was.
2850 base::debug::Alias(&error); 2771 base::debug::Alias(&error);
2851 bad_message::ReceivedBadMessage(process.get(), 2772 bad_message::ReceivedBadMessage(process.get(),
2852 bad_message::RPH_MOJO_PROCESS_ERROR); 2773 bad_message::RPH_MOJO_PROCESS_ERROR);
2853 } 2774 }
2854 2775
2855 } // namespace content 2776 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_process_host_impl.h ('k') | content/browser/resources/media/dump_creator.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698