Index: content/browser/media/webrtc/webrtc_internals.cc |
diff --git a/content/browser/media/webrtc/webrtc_internals.cc b/content/browser/media/webrtc/webrtc_internals.cc |
index 1ebc884a5cb0a7816f607c31ddd38dc9ebedd0b0..8c609a89a4a95e12e024f8c98ff999fe0ea30b41 100644 |
--- a/content/browser/media/webrtc/webrtc_internals.cc |
+++ b/content/browser/media/webrtc/webrtc_internals.cc |
@@ -9,12 +9,19 @@ |
#include "base/strings/string_number_conversions.h" |
#include "build/build_config.h" |
#include "content/browser/media/webrtc/webrtc_internals_ui_observer.h" |
+#include "content/browser/renderer_host/render_process_host_impl.h" |
#include "content/browser/web_contents/web_contents_view.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/content_browser_client.h" |
#include "content/public/browser/power_save_blocker.h" |
-#include "content/public/browser/render_process_host.h" |
#include "content/public/browser/web_contents.h" |
+#include "ipc/ipc_platform_file.h" |
+ |
+#if defined(OS_WIN) |
+#define IntToStringType base::IntToString16 |
+#else |
+#define IntToStringType base::IntToString |
+#endif |
using base::ProcessId; |
using std::string; |
@@ -252,10 +259,13 @@ void WebRTCInternals::RemoveObserver(WebRTCInternalsUIObserver* observer) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
observers_.RemoveObserver(observer); |
- // Disables audio debug recordings if it is enabled and the last |
+ // Disables event log and audio debug recordings if enabled and the last |
// webrtc-internals page is going away. |
- if (audio_debug_recordings_ && !observers_.might_have_observers()) |
- DisableAudioDebugRecordings(); |
+ if (!observers_.might_have_observers()) { |
+ if (audio_debug_recordings_) |
+ DisableAudioDebugRecordings(); |
+ DisableEventLogRecordings(); |
+ } |
} |
void WebRTCInternals::UpdateObserver(WebRTCInternalsUIObserver* observer) { |
@@ -320,37 +330,34 @@ const base::FilePath& WebRTCInternals::GetAudioDebugRecordingsFilePath() const { |
return audio_debug_recordings_file_path_; |
} |
-void WebRTCInternals::SetEventLogRecordings( |
- bool enable, |
+void WebRTCInternals::EnableEventLogRecordings( |
content::WebContents* web_contents) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
#if defined(ENABLE_WEBRTC) |
- if (enable) { |
#if defined(OS_ANDROID) |
- EnableEventLogRecordingsOnAllRenderProcessHosts(); |
+ EnableEventLogRecordingsOnAllRenderProcessHosts(); |
#else |
- DCHECK(web_contents); |
- DCHECK(select_file_dialog_ == nullptr); |
- selecting_event_log_ = true; |
- select_file_dialog_ = ui::SelectFileDialog::Create(this, nullptr); |
- select_file_dialog_->SelectFile( |
- ui::SelectFileDialog::SELECT_SAVEAS_FILE, base::string16(), |
- event_log_recordings_file_path_, nullptr, 0, FILE_PATH_LITERAL(""), |
- web_contents->GetTopLevelNativeWindow(), nullptr); |
+ DCHECK(web_contents); |
+ DCHECK(select_file_dialog_ == nullptr); |
+ selecting_event_log_ = true; |
+ select_file_dialog_ = ui::SelectFileDialog::Create(this, nullptr); |
+ select_file_dialog_->SelectFile( |
+ ui::SelectFileDialog::SELECT_SAVEAS_FILE, base::string16(), |
+ event_log_recordings_file_path_, nullptr, 0, FILE_PATH_LITERAL(""), |
+ web_contents->GetTopLevelNativeWindow(), nullptr); |
#endif |
- } else { |
- event_log_recordings_ = false; |
- // Tear down the dialog since the user has unchecked the audio debug |
- // recordings box. |
- select_file_dialog_ = nullptr; |
- DCHECK(select_file_dialog_->HasOneRef()); |
- |
- for (RenderProcessHost::iterator i( |
- content::RenderProcessHost::AllHostsIterator()); |
- !i.IsAtEnd(); i.Advance()) { |
- i.GetCurrentValue()->DisableEventLogRecordings(); |
- } |
- } |
+#endif |
+} |
+ |
+void WebRTCInternals::DisableEventLogRecordings() { |
+#if defined(ENABLE_WEBRTC) |
+ event_log_recordings_ = false; |
+ // Tear down the dialog since the user has unchecked the event log checkbox. |
Henrik Grunell
2016/06/03 07:40:53
Nit: Is the DCHECK for one ref not useful anymore?
Ivo-OOO until feb 6
2016/06/03 16:07:02
The DCHECK is problematic because the file dialog
Henrik Grunell
2016/06/08 10:08:50
Acknowledged.
|
+ select_file_dialog_ = nullptr; |
+ for (RenderProcessHost::iterator i( |
+ content::RenderProcessHost::AllHostsIterator()); |
+ !i.IsAtEnd(); i.Advance()) |
+ i.GetCurrentValue()->StopWebRTCEventLog(); |
#endif |
} |
@@ -359,7 +366,7 @@ bool WebRTCInternals::IsEventLogRecordingsEnabled() const { |
return event_log_recordings_; |
} |
-const base::FilePath& WebRTCInternals::GetEventLogRecordingsFilePath() const { |
+const base::FilePath& WebRTCInternals::GetEventLogFilePath() const { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
return event_log_recordings_file_path_; |
} |
@@ -485,10 +492,8 @@ void WebRTCInternals::EnableEventLogRecordingsOnAllRenderProcessHosts() { |
event_log_recordings_ = true; |
for (RenderProcessHost::iterator i( |
content::RenderProcessHost::AllHostsIterator()); |
- !i.IsAtEnd(); i.Advance()) { |
- i.GetCurrentValue()->EnableEventLogRecordings( |
- event_log_recordings_file_path_); |
- } |
+ !i.IsAtEnd(); i.Advance()) |
+ i.GetCurrentValue()->StartWebRTCEventLog(event_log_recordings_file_path_); |
} |
#endif |