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

Unified Diff: content/browser/renderer_host/media/webrtc_logging_handler_host.cc

Issue 14329020: Implementing uploading of a WebRTC diagnostic log. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed file added by mistake. Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/media/webrtc_logging_handler_host.cc
diff --git a/content/browser/renderer_host/media/webrtc_logging_handler_host.cc b/content/browser/renderer_host/media/webrtc_logging_handler_host.cc
index 00d90fd8553091d344c3f8b298f4ef6c17b277b5..294eeefc25dbc86f2ceac68fcc641cb7651a58ff 100644
--- a/content/browser/renderer_host/media/webrtc_logging_handler_host.cc
+++ b/content/browser/renderer_host/media/webrtc_logging_handler_host.cc
@@ -6,19 +6,21 @@
#include "base/bind.h"
#include "base/logging.h"
+#include "base/shared_memory.h"
#include "content/common/media/webrtc_logging_messages.h"
+#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/content_browser_client.h"
namespace content {
const size_t kWebRtcLogSize = 6 * 1024 * 1024; // 6 MB
-WebRtcLoggingHandlerHost::WebRtcLoggingHandlerHost() {
-}
+WebRtcLoggingHandlerHost::WebRtcLoggingHandlerHost() {}
-WebRtcLoggingHandlerHost::~WebRtcLoggingHandlerHost() {
-}
+WebRtcLoggingHandlerHost::~WebRtcLoggingHandlerHost() {}
void WebRtcLoggingHandlerHost::OnChannelClosing() {
+ UploadLog();
BrowserMessageFilter::OnChannelClosing();
}
@@ -40,16 +42,35 @@ bool WebRtcLoggingHandlerHost::OnMessageReceived(const IPC::Message& message,
void WebRtcLoggingHandlerHost::OnOpenLog() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- DCHECK(!base::SharedMemory::IsHandleValid(shared_memory_.handle()));
- if (!shared_memory_.CreateAndMapAnonymous(kWebRtcLogSize)) {
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, base::Bind(
+ &WebRtcLoggingHandlerHost::OpenLogIfAllowed, this));
+}
+
+void WebRtcLoggingHandlerHost::OpenLogIfAllowed() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+ if (!GetContentClient()->browser()->IsWebRtcLoggingAllowed())
+ return;
+
+ BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, base::Bind(
+ &WebRtcLoggingHandlerHost::DoOpenLog, this));
+}
+
+void WebRtcLoggingHandlerHost::DoOpenLog() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ DCHECK(!shared_memory_);
+
+ shared_memory_.reset(new base::SharedMemory());
+
+ if (!shared_memory_->CreateAndMapAnonymous(kWebRtcLogSize)) {
DLOG(ERROR) << "Failed to create shared memory.";
Send(new WebRtcLoggingMsg_OpenLogFailed());
return;
}
base::SharedMemoryHandle foreign_memory_handle;
- if (!shared_memory_.ShareToProcess(peer_handle(),
+ if (!shared_memory_->ShareToProcess(peer_handle(),
&foreign_memory_handle)) {
Send(new WebRtcLoggingMsg_OpenLogFailed());
return;
@@ -58,4 +79,15 @@ void WebRtcLoggingHandlerHost::OnOpenLog() {
Send(new WebRtcLoggingMsg_LogOpened(foreign_memory_handle, kWebRtcLogSize));
}
+void WebRtcLoggingHandlerHost::UploadLog() {
+ if (!shared_memory_)
+ return;
+
+ BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, base::Bind(
+ &ContentBrowserClient::UploadWebRtcLog,
+ base::Unretained(GetContentClient()->browser()),
+ Passed(&shared_memory_),
+ kWebRtcLogSize));
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698