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

Unified Diff: chromeos/components/tether/tether_connector.cc

Issue 2949343002: Tether: record each type of host connection result. (Closed)
Patch Set: Reviewer comments. Created 3 years, 5 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: chromeos/components/tether/tether_connector.cc
diff --git a/chromeos/components/tether/tether_connector.cc b/chromeos/components/tether/tether_connector.cc
index ee34c45041305f63f17e5e79e9226f1312daf6b7..6bbbd57187c3783c73928581f499103c83e98e9c 100644
--- a/chromeos/components/tether/tether_connector.cc
+++ b/chromeos/components/tether/tether_connector.cc
@@ -7,6 +7,7 @@
#include "base/bind.h"
#include "chromeos/components/tether/active_host.h"
#include "chromeos/components/tether/device_id_tether_network_guid_map.h"
+#include "chromeos/components/tether/host_connection_metrics_logger.h"
#include "chromeos/components/tether/host_scan_cache.h"
#include "chromeos/components/tether/notification_presenter.h"
#include "chromeos/components/tether/tether_host_fetcher.h"
@@ -29,7 +30,8 @@ TetherConnector::TetherConnector(
TetherHostResponseRecorder* tether_host_response_recorder,
DeviceIdTetherNetworkGuidMap* device_id_tether_network_guid_map,
HostScanCache* host_scan_cache,
- NotificationPresenter* notification_presenter)
+ NotificationPresenter* notification_presenter,
+ HostConnectionMetricsLogger* host_connection_metrics_logger)
: network_state_handler_(network_state_handler),
wifi_hotspot_connector_(wifi_hotspot_connector),
active_host_(active_host),
@@ -39,6 +41,7 @@ TetherConnector::TetherConnector(
device_id_tether_network_guid_map_(device_id_tether_network_guid_map),
host_scan_cache_(host_scan_cache),
notification_presenter_(notification_presenter),
+ host_connection_metrics_logger_(host_connection_metrics_logger),
weak_ptr_factory_(this) {}
TetherConnector::~TetherConnector() {
@@ -99,6 +102,10 @@ void TetherConnector::ConnectToNetwork(
bool TetherConnector::CancelConnectionAttempt(
const std::string& tether_network_guid) {
+ host_connection_metrics_logger_->RecordConnectionToHostResult(
Kyle Horimoto 2017/07/07 17:06:33 Move this down to after the device ID check. This
Ryan Hansberry 2017/07/12 16:37:06 Done.
+ HostConnectionMetricsLogger::ConnectionToHostResult::
+ CONNECTION_RESULT_FAILURE_CLIENT_CONNECTION_CANCELED_BY_USER);
+
const std::string device_id =
device_id_tether_network_guid_map_->GetDeviceIdForTetherNetworkGuid(
tether_network_guid);
@@ -174,6 +181,32 @@ void TetherConnector::OnConnectTetheringFailure(
<< remote_device.GetTruncatedDeviceIdForLogs()
<< " could not complete. Error code: " << error_code;
+ if (error_code ==
+ ConnectTetheringResponse_ResponseCode::
+ ConnectTetheringResponse_ResponseCode_PROVISIONING_FAILED) {
+ host_connection_metrics_logger_->RecordConnectionToHostResult(
+ HostConnectionMetricsLogger::ConnectionToHostResult::
+ CONNECTION_RESULT_PROVISIONING_FAILED);
+ } else if (error_code ==
+ ConnectTetheringResponse_ResponseCode::
+ ConnectTetheringResponse_ResponseCode_TETHERING_TIMEOUT) {
+ const std::string tether_network_guid =
+ device_id_tether_network_guid_map_->GetTetherNetworkGuidForDeviceId(
+ remote_device.GetDeviceId());
+ bool setup_was_required =
+ host_scan_cache_->DoesHostRequireSetup(tether_network_guid);
+ host_connection_metrics_logger_->RecordConnectionToHostResult(
+ setup_was_required
+ ? HostConnectionMetricsLogger::ConnectionToHostResult::
+ CONNECTION_RESULT_FAILURE_TETHERING_TIMED_OUT_FIRST_TIME_SETUP_WAS_REQUIRED
+ : HostConnectionMetricsLogger::ConnectionToHostResult::
+ CONNECTION_RESULT_FAILURE_TETHERING_TIMED_OUT_FIRST_TIME_SETUP_WAS_NOT_REQUIRED);
+ } else {
+ host_connection_metrics_logger_->RecordConnectionToHostResult(
+ HostConnectionMetricsLogger::ConnectionToHostResult::
+ CONNECTION_RESULT_FAILURE_UNKNOWN_ERROR);
+ }
+
connect_tethering_operation_->RemoveObserver(this);
connect_tethering_operation_.reset();
SetConnectionFailed(NetworkConnectionHandler::kErrorConnectFailed);
@@ -194,12 +227,15 @@ void TetherConnector::OnTetherHostToConnectFetched(
<< cryptauth::RemoteDevice::TruncateDeviceIdForLogs(device_id)
<< ". Cannot connect.";
SetConnectionFailed(NetworkConnectionHandler::kErrorConnectFailed);
+ host_connection_metrics_logger_->RecordConnectionToHostResult(
Kyle Horimoto 2017/07/07 17:06:33 See comment on other CL - I think this should just
Ryan Hansberry 2017/07/12 16:37:06 Done.
+ HostConnectionMetricsLogger::ConnectionToHostResult::
+ CONNECTION_RESULT_FAILURE_CLIENT_CONNECTION_HOST_FETCH_FAILURE);
return;
}
DCHECK(device_id == tether_host_to_connect->GetDeviceId());
- const std::string& tether_network_guid =
+ const std::string tether_network_guid =
device_id_tether_network_guid_map_->GetTetherNetworkGuidForDeviceId(
device_id);
connect_tethering_operation_ =
@@ -235,6 +271,10 @@ void TetherConnector::SetConnectionSucceeded(
DCHECK(device_id_pending_connection_ == device_id);
DCHECK(!success_callback_.is_null());
+ host_connection_metrics_logger_->RecordConnectionToHostResult(
+ HostConnectionMetricsLogger::ConnectionToHostResult::
+ CONNECTION_RESULT_SUCCESS);
+
notification_presenter_->RemoveSetupRequiredNotification();
// Save a copy of the callback before resetting it below.
@@ -273,6 +313,10 @@ void TetherConnector::OnWifiConnection(const std::string& device_id,
<< cryptauth::RemoteDevice::TruncateDeviceIdForLogs(device_id)
<< ".";
+ host_connection_metrics_logger_->RecordConnectionToHostResult(
Kyle Horimoto 2017/07/07 17:06:33 Same thing - think you should move to SetConnectio
Ryan Hansberry 2017/07/12 16:37:06 Done.
+ HostConnectionMetricsLogger::ConnectionToHostResult::
+ CONNECTION_RESULT_FAILURE_CLIENT_CONNECTION_TIMEOUT);
+
SetConnectionFailed(NetworkConnectionHandler::kErrorConnectFailed);
return;
}
« no previous file with comments | « chromeos/components/tether/tether_connector.h ('k') | chromeos/components/tether/tether_connector_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698