| 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 "content/browser/webrtc/webrtc_eventlog_host.h" | 5 #include "content/browser/webrtc/webrtc_eventlog_host.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 | 39 |
| 40 // Appends the IDs to the RTC event log file name. | 40 // Appends the IDs to the RTC event log file name. |
| 41 base::FilePath GetWebRtcEventLogPath(const base::FilePath& base_file, | 41 base::FilePath GetWebRtcEventLogPath(const base::FilePath& base_file, |
| 42 int render_process_id, | 42 int render_process_id, |
| 43 int connection_id) { | 43 int connection_id) { |
| 44 return base_file.AddExtension(IntToStringType(render_process_id)) | 44 return base_file.AddExtension(IntToStringType(render_process_id)) |
| 45 .AddExtension(IntToStringType(connection_id)); | 45 .AddExtension(IntToStringType(connection_id)); |
| 46 } | 46 } |
| 47 | 47 |
| 48 // Opens a logfile to pass on to the renderer. | 48 // Opens a logfile to pass on to the renderer. |
| 49 IPC::PlatformFileForTransit CreateFileForProcess( | 49 IPC::PlatformFileForTransit CreateFileForProcess2( |
| 50 const base::FilePath& base_path, | 50 const base::FilePath& base_path, |
| 51 int render_process_id, | 51 int render_process_id, |
| 52 int connection_id) { | 52 int connection_id) { |
| 53 base::ThreadRestrictions::AssertIOAllowed(); | 53 base::ThreadRestrictions::AssertIOAllowed(); |
| 54 base::FilePath file_path = | 54 base::FilePath file_path = |
| 55 GetWebRtcEventLogPath(base_path, render_process_id, connection_id); | 55 GetWebRtcEventLogPath(base_path, render_process_id, connection_id); |
| 56 base::File event_log_file( | 56 base::File event_log_file( |
| 57 file_path, base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); | 57 file_path, base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); |
| 58 if (!event_log_file.IsValid()) { | 58 if (!event_log_file.IsValid()) { |
| 59 PLOG(ERROR) << "Could not open WebRTC event log file, error=" | 59 PLOG(ERROR) << "Could not open WebRTC event log file, error=" |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 base::WeakPtr<WebRTCEventLogHost> WebRTCEventLogHost::GetWeakPtr() { | 131 base::WeakPtr<WebRTCEventLogHost> WebRTCEventLogHost::GetWeakPtr() { |
| 132 return weak_ptr_factory_.GetWeakPtr(); | 132 return weak_ptr_factory_.GetWeakPtr(); |
| 133 } | 133 } |
| 134 | 134 |
| 135 bool WebRTCEventLogHost::StartEventLogForPeerConnection( | 135 bool WebRTCEventLogHost::StartEventLogForPeerConnection( |
| 136 int peer_connection_local_id) { | 136 int peer_connection_local_id) { |
| 137 if (number_active_log_files_ < kMaxNumberLogFiles) { | 137 if (number_active_log_files_ < kMaxNumberLogFiles) { |
| 138 ++number_active_log_files_; | 138 ++number_active_log_files_; |
| 139 base::PostTaskWithTraitsAndReplyWithResult( | 139 base::PostTaskWithTraitsAndReplyWithResult( |
| 140 FROM_HERE, {base::MayBlock(), base::TaskPriority::BACKGROUND}, | 140 FROM_HERE, {base::MayBlock(), base::TaskPriority::BACKGROUND}, |
| 141 base::Bind(&CreateFileForProcess, base_file_path_, render_process_id_, | 141 base::Bind(&CreateFileForProcess2, base_file_path_, render_process_id_, |
| 142 peer_connection_local_id), | 142 peer_connection_local_id), |
| 143 base::Bind(&WebRTCEventLogHost::SendEventLogFileToRenderer, | 143 base::Bind(&WebRTCEventLogHost::SendEventLogFileToRenderer, |
| 144 weak_ptr_factory_.GetWeakPtr(), peer_connection_local_id)); | 144 weak_ptr_factory_.GetWeakPtr(), peer_connection_local_id)); |
| 145 } | 145 } |
| 146 return true; | 146 return true; |
| 147 } | 147 } |
| 148 | 148 |
| 149 void WebRTCEventLogHost::SendEventLogFileToRenderer( | 149 void WebRTCEventLogHost::SendEventLogFileToRenderer( |
| 150 int peer_connection_local_id, | 150 int peer_connection_local_id, |
| 151 IPC::PlatformFileForTransit file_for_transit) { | 151 IPC::PlatformFileForTransit file_for_transit) { |
| 152 if (file_for_transit == IPC::InvalidPlatformFileForTransit()) { | 152 if (file_for_transit == IPC::InvalidPlatformFileForTransit()) { |
| 153 --number_active_log_files_; | 153 --number_active_log_files_; |
| 154 return; | 154 return; |
| 155 } | 155 } |
| 156 RenderProcessHost* rph = RenderProcessHost::FromID(render_process_id_); | 156 RenderProcessHost* rph = RenderProcessHost::FromID(render_process_id_); |
| 157 if (rph) { | 157 if (rph) { |
| 158 rph->Send(new PeerConnectionTracker_StartEventLog(peer_connection_local_id, | 158 rph->Send(new PeerConnectionTracker_StartEventLog(peer_connection_local_id, |
| 159 file_for_transit)); | 159 file_for_transit)); |
| 160 } else { | 160 } else { |
| 161 --number_active_log_files_; | 161 --number_active_log_files_; |
| 162 IPC::PlatformFileForTransitToFile(file_for_transit).Close(); | 162 IPC::PlatformFileForTransitToFile(file_for_transit).Close(); |
| 163 } | 163 } |
| 164 } | 164 } |
| 165 | 165 |
| 166 } // namespace content | 166 } // namespace content |
| OLD | NEW |