Index: chrome/browser/chrome_content_browser_client.cc |
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc |
index 66b9dcddb0a59ddef6c937a53214c1c5d74e3dd5..2593bd9b6632f2861d8a9a8def5ad1ec1bb44946 100644 |
--- a/chrome/browser/chrome_content_browser_client.cc |
+++ b/chrome/browser/chrome_content_browser_client.cc |
@@ -105,6 +105,7 @@ |
#include "content/public/browser/browser_child_process_host.h" |
#include "content/public/browser/browser_main_parts.h" |
#include "content/public/browser/browser_ppapi_host.h" |
+#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/browser_url_handler.h" |
#include "content/public/browser/child_process_data.h" |
#include "content/public/browser/child_process_security_policy.h" |
@@ -181,6 +182,10 @@ |
#include "chrome/browser/media_galleries/fileapi/media_file_system_mount_point_provider.h" |
#endif |
+#if defined(ENABLE_WEBRTC) |
+#include "components/webrtc_log_uploader/webrtc_log_uploader.h" |
+#endif |
+ |
using base::FileDescriptor; |
using content::AccessTokenStore; |
using content::BrowserChildProcessHostIterator; |
@@ -2331,4 +2336,45 @@ crypto::CryptoModuleBlockingPasswordDelegate* |
} |
#endif |
+#if defined(ENABLE_WEBRTC) |
+bool ChromeContentBrowserClient::IsWebRtcLoggingAllowed() { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ bool enabled = false; |
+ |
+ // If the user permits metrics reporting / crash uploading with the checkbox |
+ // in the prefs, we allow uploading automatically. We disable uploading |
+ // completely for non-official builds. |
+#if defined(GOOGLE_CHROME_BUILD) |
+#if defined(OS_CHROMEOS) |
+ chromeos::CrosSettings::Get()->GetBoolean(chromeos::kStatsReportingPref, |
+ &enabled); |
+#else |
+ enabled = g_browser_process->local_state()->GetBoolean( |
+ prefs::kMetricsReportingEnabled); |
+#endif // #if defined(OS_CHROMEOS) |
+#endif // defined(GOOGLE_CHROME_BUILD) |
+ if (!enabled) |
+ return false; |
+ |
+ return g_browser_process->webrtc_log_uploader()->ApplyForStartLogging(); |
+} |
+ |
+void ChromeContentBrowserClient::UploadWebRtcLog( |
+ content::BrowserContext* browser_context, |
+ scoped_ptr<base::SharedMemory> shared_memory, uint32 length, |
+ const std::string& app_session_id, const std::string& app_url) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, base::Bind( |
+ &components::WebRtcLogUploader::UploadLog, |
+ base::Unretained(g_browser_process->webrtc_log_uploader()), |
+ base::Unretained(browser_context->GetRequestContext()), |
+ Passed(&shared_memory), |
+ length, |
+ app_session_id, |
+ app_url)); |
+} |
+#endif // defined(ENABLE_WEBRTC) |
+ |
} // namespace chrome |