Index: chrome/browser/media/webrtc_logging_handler_host.cc |
=================================================================== |
--- chrome/browser/media/webrtc_logging_handler_host.cc (revision 273292) |
+++ chrome/browser/media/webrtc_logging_handler_host.cc (working copy) |
@@ -7,24 +7,18 @@ |
#include <string> |
#include "base/bind.h" |
-#include "base/command_line.h" |
#include "base/cpu.h" |
#include "base/file_util.h" |
#include "base/logging.h" |
-#include "base/prefs/pref_service.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/sys_info.h" |
#include "base/time/time.h" |
#include "chrome/browser/browser_process.h" |
-#include "chrome/browser/chromeos/settings/cros_settings.h" |
#include "chrome/browser/media/webrtc_log_list.h" |
#include "chrome/browser/media/webrtc_log_uploader.h" |
#include "chrome/browser/profiles/profile.h" |
-#include "chrome/common/chrome_switches.h" |
#include "chrome/common/media/webrtc_logging_messages.h" |
#include "chrome/common/partial_circular_buffer.h" |
-#include "chrome/common/pref_names.h" |
-#include "chromeos/settings/cros_settings_names.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/content_browser_client.h" |
#include "content/public/browser/gpu_data_manager.h" |
@@ -42,6 +36,8 @@ |
#endif |
#if defined(OS_CHROMEOS) |
+#include "chrome/browser/chromeos/settings/cros_settings.h" |
+#include "chromeos/settings/cros_settings_names.h" |
#include "chromeos/system/statistics_provider.h" |
#endif |
@@ -138,9 +134,9 @@ |
error_message = "Meta data must be set before stop or upload."; |
} |
bool success = error_message.empty(); |
- content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, |
- base::Bind(callback, success, |
- error_message)); |
+ BrowserThread::PostTask(BrowserThread::UI, |
+ FROM_HERE, |
+ base::Bind(callback, success, error_message)); |
} |
void WebRtcLoggingHandlerHost::StartLogging( |
@@ -178,15 +174,15 @@ |
if (logging_state_ != STOPPED) { |
if (!callback.is_null()) { |
- content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, |
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
base::Bind(callback, false, "", kLogNotStoppedOrNoLogOpen)); |
} |
return; |
} |
upload_callback_ = callback; |
logging_state_ = UPLOADING; |
- content::BrowserThread::PostTaskAndReplyWithResult( |
- content::BrowserThread::FILE, |
+ base::PostTaskAndReplyWithResult( |
+ BrowserThread::GetBlockingPool(), |
FROM_HERE, |
base::Bind(&WebRtcLoggingHandlerHost::GetLogDirectoryAndEnsureExists, |
this), |
@@ -245,8 +241,8 @@ |
if (upload_log_on_render_close_) { |
logging_state_ = UPLOADING; |
logging_started_time_ = base::Time(); |
- content::BrowserThread::PostTaskAndReplyWithResult( |
- content::BrowserThread::FILE, |
+ base::PostTaskAndReplyWithResult( |
+ BrowserThread::GetBlockingPool(), |
FROM_HERE, |
base::Bind(&WebRtcLoggingHandlerHost::GetLogDirectoryAndEnsureExists, |
this), |
@@ -255,7 +251,7 @@ |
g_browser_process->webrtc_log_uploader()->LoggingStoppedDontUpload(); |
} |
} |
- content::BrowserMessageFilter::OnChannelClosing(); |
+ BrowserMessageFilter::OnChannelClosing(); |
} |
void WebRtcLoggingHandlerHost::OnDestruct() const { |
@@ -330,23 +326,36 @@ |
kWebRtcLogSize / 2, |
false)); |
- BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, base::Bind( |
- &WebRtcLoggingHandlerHost::LogInitialInfoOnFileThread, this)); |
+ BrowserThread::PostBlockingPoolTask( |
+ FROM_HERE, |
+ base::Bind(&WebRtcLoggingHandlerHost::LogInitialInfoOnBlockingPool, |
+ this)); |
} |
-void WebRtcLoggingHandlerHost::LogInitialInfoOnFileThread() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
+void WebRtcLoggingHandlerHost::LogInitialInfoOnBlockingPool() { |
+ DCHECK(BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread()); |
net::NetworkInterfaceList network_list; |
net::GetNetworkList(&network_list, |
net::EXCLUDE_HOST_SCOPE_VIRTUAL_INTERFACES); |
- BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, base::Bind( |
- &WebRtcLoggingHandlerHost::LogInitialInfoOnIOThread, this, network_list)); |
+ std::string linux_distro; |
+#if defined(OS_LINUX) |
+ linux_distro = base::GetLinuxDistro(); |
+#endif |
+ |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind(&WebRtcLoggingHandlerHost::LogInitialInfoOnIOThread, |
+ this, |
+ network_list, |
+ linux_distro)); |
} |
void WebRtcLoggingHandlerHost::LogInitialInfoOnIOThread( |
- const net::NetworkInterfaceList& network_list) { |
+ const net::NetworkInterfaceList& network_list, |
+ const std::string& linux_distro) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
// Log start time (current time). We don't use base/i18n/time_formatting.h |
@@ -369,7 +378,7 @@ |
base::SysInfo::OperatingSystemVersion() + " " + |
base::SysInfo::OperatingSystemArchitecture()); |
#if defined(OS_LINUX) |
- LogToCircularBuffer("Linux distribution: " + base::GetLinuxDistro()); |
+ LogToCircularBuffer("Linux distribution: " + linux_distro); |
#endif |
// CPU |
@@ -440,7 +449,7 @@ |
} |
base::FilePath WebRtcLoggingHandlerHost::GetLogDirectoryAndEnsureExists() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
+ DCHECK(BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread()); |
base::FilePath log_dir_path = |
WebRtcLogList::GetWebRtcLogDirectoryForProfile(profile_->GetPath()); |
base::File::Error error; |
@@ -462,13 +471,14 @@ |
upload_done_data.host = this; |
upload_callback_.Reset(); |
- BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, base::Bind( |
- &WebRtcLogUploader::LoggingStoppedDoUpload, |
- base::Unretained(g_browser_process->webrtc_log_uploader()), |
- Passed(&log_buffer_), |
- kWebRtcLogSize, |
- meta_data_, |
- upload_done_data)); |
+ BrowserThread::PostBlockingPoolTask( |
+ FROM_HERE, |
+ base::Bind(&WebRtcLogUploader::LoggingStoppedDoUpload, |
Henrik Grunell
2014/05/29 17:46:29
WebRtcLogUploader needs to be called on the file t
Henrik Grunell
2014/05/30 06:57:40
Doesn't this need to be a sequenced task to ensure
|
+ base::Unretained(g_browser_process->webrtc_log_uploader()), |
+ Passed(&log_buffer_), |
+ kWebRtcLogSize, |
+ meta_data_, |
+ upload_done_data)); |
meta_data_.clear(); |
circular_buffer_.reset(); |
@@ -478,9 +488,8 @@ |
GenericDoneCallback* callback, bool success, |
const std::string& error_message) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- DCHECK(!(*callback).is_null()); |
- content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, |
- base::Bind(*callback, success, |
- error_message)); |
- (*callback).Reset(); |
+ DCHECK(!callback->is_null()); |
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
+ base::Bind(*callback, success, error_message)); |
+ callback->Reset(); |
} |