Commit 09dff1cb authored by Nicolás Peña's avatar Nicolás Peña Committed by Commit Bot

[PowerML] Rename UserActivity* classes

This CL renames the classes as follows:
* UserActivityLogger -> UserActivityManager
* UserActivityLoggerDelegate -> UserActivityUkmLogger
* UserActivityLoggerDelegateUkm -> UserActivityUkmLoggerImpl
* UserActivityLoggingController -> UserActivityController

Design doc:
https://docs.google.com/document/d/1QXXnRFKiRDvXaxwNTc6djMDC-5e7SXk4i2FI3fpxMdA/edit?usp=sharing

Change-Id: Id8a1b2e35c3bfde9e07ee47613510da5415f038a
Reviewed-on: https://chromium-review.googlesource.com/956164
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Reviewed-by: default avatarDan Erat <derat@chromium.org>
Reviewed-by: default avatarJia Meng <jiameng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542721}
parent e5f855bf
...@@ -1431,13 +1431,13 @@ source_set("chromeos") { ...@@ -1431,13 +1431,13 @@ source_set("chromeos") {
"power/ml/real_boot_clock.h", "power/ml/real_boot_clock.h",
"power/ml/recent_events_counter.cc", "power/ml/recent_events_counter.cc",
"power/ml/recent_events_counter.h", "power/ml/recent_events_counter.h",
"power/ml/user_activity_logger.cc", "power/ml/user_activity_controller.cc",
"power/ml/user_activity_logger.h", "power/ml/user_activity_controller.h",
"power/ml/user_activity_logger_delegate.h", "power/ml/user_activity_manager.cc",
"power/ml/user_activity_logger_delegate_ukm.cc", "power/ml/user_activity_manager.h",
"power/ml/user_activity_logger_delegate_ukm.h", "power/ml/user_activity_ukm_logger.h",
"power/ml/user_activity_logging_controller.cc", "power/ml/user_activity_ukm_logger_impl.cc",
"power/ml/user_activity_logging_controller.h", "power/ml/user_activity_ukm_logger_impl.h",
"power/power_data_collector.cc", "power/power_data_collector.cc",
"power/power_data_collector.h", "power/power_data_collector.h",
"power/power_metrics_reporter.cc", "power/power_metrics_reporter.cc",
...@@ -2012,8 +2012,8 @@ source_set("unit_tests") { ...@@ -2012,8 +2012,8 @@ source_set("unit_tests") {
"power/ml/idle_event_notifier_unittest.cc", "power/ml/idle_event_notifier_unittest.cc",
"power/ml/real_boot_clock_unittest.cc", "power/ml/real_boot_clock_unittest.cc",
"power/ml/recent_events_counter_unittest.cc", "power/ml/recent_events_counter_unittest.cc",
"power/ml/user_activity_logger_delegate_ukm_unittest.cc", "power/ml/user_activity_manager_unittest.cc",
"power/ml/user_activity_logger_unittest.cc", "power/ml/user_activity_ukm_logger_unittest.cc",
"power/power_data_collector_unittest.cc", "power/power_data_collector_unittest.cc",
"power/power_metrics_reporter_unittest.cc", "power/power_metrics_reporter_unittest.cc",
"power/power_prefs_unittest.cc", "power/power_prefs_unittest.cc",
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
#include "chrome/browser/chromeos/policy/device_local_account.h" #include "chrome/browser/chromeos/policy/device_local_account.h"
#include "chrome/browser/chromeos/power/freezer_cgroup_process_manager.h" #include "chrome/browser/chromeos/power/freezer_cgroup_process_manager.h"
#include "chrome/browser/chromeos/power/idle_action_warning_observer.h" #include "chrome/browser/chromeos/power/idle_action_warning_observer.h"
#include "chrome/browser/chromeos/power/ml/user_activity_logging_controller.h" #include "chrome/browser/chromeos/power/ml/user_activity_controller.h"
#include "chrome/browser/chromeos/power/power_data_collector.h" #include "chrome/browser/chromeos/power/power_data_collector.h"
#include "chrome/browser/chromeos/power/power_metrics_reporter.h" #include "chrome/browser/chromeos/power/power_metrics_reporter.h"
#include "chrome/browser/chromeos/power/power_prefs.h" #include "chrome/browser/chromeos/power/power_prefs.h"
...@@ -1045,8 +1045,8 @@ void ChromeBrowserMainPartsChromeos::PostBrowserStart() { ...@@ -1045,8 +1045,8 @@ void ChromeBrowserMainPartsChromeos::PostBrowserStart() {
shutdown_policy_forwarder_ = std::make_unique<ShutdownPolicyForwarder>(); shutdown_policy_forwarder_ = std::make_unique<ShutdownPolicyForwarder>();
if (base::FeatureList::IsEnabled(features::kUserActivityEventLogging)) { if (base::FeatureList::IsEnabled(features::kUserActivityEventLogging)) {
user_activity_logging_controller_ = user_activity_controller_ =
std::make_unique<power::ml::UserActivityLoggingController>(); std::make_unique<power::ml::UserActivityController>();
} }
ChromeBrowserMainPartsLinux::PostBrowserStart(); ChromeBrowserMainPartsLinux::PostBrowserStart();
...@@ -1102,7 +1102,7 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() { ...@@ -1102,7 +1102,7 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
ScreenLocker::ShutDownClass(); ScreenLocker::ShutDownClass();
keyboard_event_rewriters_.reset(); keyboard_event_rewriters_.reset();
low_disk_notification_.reset(); low_disk_notification_.reset();
user_activity_logging_controller_.reset(); user_activity_controller_.reset();
// Detach D-Bus clients before DBusThreadManager is shut down. // Detach D-Bus clients before DBusThreadManager is shut down.
idle_action_warning_observer_.reset(); idle_action_warning_observer_.reset();
......
...@@ -53,7 +53,7 @@ class SystemTokenCertDBInitializer; ...@@ -53,7 +53,7 @@ class SystemTokenCertDBInitializer;
namespace power { namespace power {
namespace ml { namespace ml {
class UserActivityLoggingController; class UserActivityController;
} // namespace ml } // namespace ml
} // namespace power } // namespace power
...@@ -126,8 +126,7 @@ class ChromeBrowserMainPartsChromeos : public ChromeBrowserMainPartsLinux { ...@@ -126,8 +126,7 @@ class ChromeBrowserMainPartsChromeos : public ChromeBrowserMainPartsLinux {
// send notifier settings information to Ash. // send notifier settings information to Ash.
std::unique_ptr<NotificationPlatformBridge> notification_client_; std::unique_ptr<NotificationPlatformBridge> notification_client_;
std::unique_ptr<power::ml::UserActivityLoggingController> std::unique_ptr<power::ml::UserActivityController> user_activity_controller_;
user_activity_logging_controller_;
DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainPartsChromeos); DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainPartsChromeos);
}; };
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/chromeos/power/ml/user_activity_logging_controller.h" #include "chrome/browser/chromeos/power/ml/user_activity_controller.h"
#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/chrome_user_manager.h"
#include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/dbus_thread_manager.h"
...@@ -17,7 +17,7 @@ namespace chromeos { ...@@ -17,7 +17,7 @@ namespace chromeos {
namespace power { namespace power {
namespace ml { namespace ml {
UserActivityLoggingController::UserActivityLoggingController() { UserActivityController::UserActivityController() {
if (chromeos::GetDeviceType() != chromeos::DeviceType::kChromebook) if (chromeos::GetDeviceType() != chromeos::DeviceType::kChromebook)
return; return;
...@@ -30,7 +30,7 @@ UserActivityLoggingController::UserActivityLoggingController() { ...@@ -30,7 +30,7 @@ UserActivityLoggingController::UserActivityLoggingController() {
session_manager::SessionManager::Get(); session_manager::SessionManager::Get();
DCHECK(session_manager); DCHECK(session_manager);
// TODO(jiameng): both IdleEventNotifier and UserActivityLogger implement // TODO(jiameng): both IdleEventNotifier and UserActivityManager implement
// viz::mojom::VideoDetectorObserver. We should refactor the code to create // viz::mojom::VideoDetectorObserver. We should refactor the code to create
// one shared video detector observer class. // one shared video detector observer class.
viz::mojom::VideoDetectorObserverPtr video_observer_idle_notifier; viz::mojom::VideoDetectorObserverPtr video_observer_idle_notifier;
...@@ -43,8 +43,8 @@ UserActivityLoggingController::UserActivityLoggingController() { ...@@ -43,8 +43,8 @@ UserActivityLoggingController::UserActivityLoggingController() {
->AddVideoDetectorObserver(std::move(video_observer_idle_notifier)); ->AddVideoDetectorObserver(std::move(video_observer_idle_notifier));
viz::mojom::VideoDetectorObserverPtr video_observer_user_logger; viz::mojom::VideoDetectorObserverPtr video_observer_user_logger;
user_activity_logger_ = std::make_unique<UserActivityLogger>( user_activity_manager_ = std::make_unique<UserActivityManager>(
&user_activity_logger_delegate_, idle_event_notifier_.get(), detector, &user_activity_ukm_logger_, idle_event_notifier_.get(), detector,
power_manager_client, session_manager, power_manager_client, session_manager,
mojo::MakeRequest(&video_observer_user_logger), mojo::MakeRequest(&video_observer_user_logger),
chromeos::ChromeUserManager::Get()); chromeos::ChromeUserManager::Get());
...@@ -54,7 +54,7 @@ UserActivityLoggingController::UserActivityLoggingController() { ...@@ -54,7 +54,7 @@ UserActivityLoggingController::UserActivityLoggingController() {
->AddVideoDetectorObserver(std::move(video_observer_user_logger)); ->AddVideoDetectorObserver(std::move(video_observer_user_logger));
} }
UserActivityLoggingController::~UserActivityLoggingController() = default; UserActivityController::~UserActivityController() = default;
} // namespace ml } // namespace ml
} // namespace power } // namespace power
......
...@@ -2,37 +2,37 @@ ...@@ -2,37 +2,37 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGING_CONTROLLER_H_ #ifndef CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_CONTROLLER_H_
#define CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGING_CONTROLLER_H_ #define CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_CONTROLLER_H_
#include <memory> #include <memory>
#include "chrome/browser/chromeos/power/ml/idle_event_notifier.h" #include "chrome/browser/chromeos/power/ml/idle_event_notifier.h"
#include "chrome/browser/chromeos/power/ml/user_activity_logger.h" #include "chrome/browser/chromeos/power/ml/user_activity_manager.h"
#include "chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.h" #include "chrome/browser/chromeos/power/ml/user_activity_ukm_logger_impl.h"
namespace chromeos { namespace chromeos {
namespace power { namespace power {
namespace ml { namespace ml {
// This controller class sets up and destroys all the components associated with // This controller class sets up and destroys all the components associated with
// user activity logging (IdleEventNotifier, UserActivityLoggerDelegate and // user activity logging (IdleEventNotifier, UserActivityUkmLogger and
// UserActivityLogger). // UserActivityManager).
class UserActivityLoggingController { class UserActivityController {
public: public:
UserActivityLoggingController(); UserActivityController();
~UserActivityLoggingController(); ~UserActivityController();
private: private:
std::unique_ptr<IdleEventNotifier> idle_event_notifier_; std::unique_ptr<IdleEventNotifier> idle_event_notifier_;
UserActivityLoggerDelegateUkm user_activity_logger_delegate_; UserActivityUkmLoggerImpl user_activity_ukm_logger_;
std::unique_ptr<UserActivityLogger> user_activity_logger_; std::unique_ptr<UserActivityManager> user_activity_manager_;
DISALLOW_COPY_AND_ASSIGN(UserActivityLoggingController); DISALLOW_COPY_AND_ASSIGN(UserActivityController);
}; };
} // namespace ml } // namespace ml
} // namespace power } // namespace power
} // namespace chromeos } // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGING_CONTROLLER_H_ #endif // CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_CONTROLLER_H_
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/chromeos/power/ml/user_activity_logger.h" #include "chrome/browser/chromeos/power/ml/user_activity_manager.h"
#include <cmath> #include <cmath>
...@@ -22,8 +22,8 @@ namespace chromeos { ...@@ -22,8 +22,8 @@ namespace chromeos {
namespace power { namespace power {
namespace ml { namespace ml {
UserActivityLogger::UserActivityLogger( UserActivityManager::UserActivityManager(
UserActivityLoggerDelegate* delegate, UserActivityUkmLogger* ukm_logger,
IdleEventNotifier* idle_event_notifier, IdleEventNotifier* idle_event_notifier,
ui::UserActivityDetector* detector, ui::UserActivityDetector* detector,
chromeos::PowerManagerClient* power_manager_client, chromeos::PowerManagerClient* power_manager_client,
...@@ -31,7 +31,7 @@ UserActivityLogger::UserActivityLogger( ...@@ -31,7 +31,7 @@ UserActivityLogger::UserActivityLogger(
viz::mojom::VideoDetectorObserverRequest request, viz::mojom::VideoDetectorObserverRequest request,
const chromeos::ChromeUserManager* user_manager) const chromeos::ChromeUserManager* user_manager)
: boot_clock_(std::make_unique<RealBootClock>()), : boot_clock_(std::make_unique<RealBootClock>()),
logger_delegate_(delegate), ukm_logger_(ukm_logger),
idle_event_observer_(this), idle_event_observer_(this),
user_activity_observer_(this), user_activity_observer_(this),
power_manager_client_observer_(this), power_manager_client_observer_(this),
...@@ -40,7 +40,7 @@ UserActivityLogger::UserActivityLogger( ...@@ -40,7 +40,7 @@ UserActivityLogger::UserActivityLogger(
binding_(this, std::move(request)), binding_(this, std::move(request)),
user_manager_(user_manager), user_manager_(user_manager),
weak_ptr_factory_(this) { weak_ptr_factory_(this) {
DCHECK(logger_delegate_); DCHECK(ukm_logger_);
DCHECK(idle_event_notifier); DCHECK(idle_event_notifier);
idle_event_observer_.Add(idle_event_notifier); idle_event_observer_.Add(idle_event_notifier);
...@@ -51,10 +51,10 @@ UserActivityLogger::UserActivityLogger( ...@@ -51,10 +51,10 @@ UserActivityLogger::UserActivityLogger(
power_manager_client_observer_.Add(power_manager_client); power_manager_client_observer_.Add(power_manager_client);
power_manager_client->RequestStatusUpdate(); power_manager_client->RequestStatusUpdate();
power_manager_client->GetSwitchStates( power_manager_client->GetSwitchStates(
base::BindOnce(&UserActivityLogger::OnReceiveSwitchStates, base::BindOnce(&UserActivityManager::OnReceiveSwitchStates,
weak_ptr_factory_.GetWeakPtr())); weak_ptr_factory_.GetWeakPtr()));
power_manager_client->GetInactivityDelays( power_manager_client->GetInactivityDelays(
base::BindOnce(&UserActivityLogger::OnReceiveInactivityDelays, base::BindOnce(&UserActivityManager::OnReceiveInactivityDelays,
weak_ptr_factory_.GetWeakPtr())); weak_ptr_factory_.GetWeakPtr()));
DCHECK(session_manager); DCHECK(session_manager);
...@@ -67,20 +67,20 @@ UserActivityLogger::UserActivityLogger( ...@@ -67,20 +67,20 @@ UserActivityLogger::UserActivityLogger(
} }
} }
UserActivityLogger::~UserActivityLogger() = default; UserActivityManager::~UserActivityManager() = default;
void UserActivityLogger::OnUserActivity(const ui::Event* /* event */) { void UserActivityManager::OnUserActivity(const ui::Event* /* event */) {
MaybeLogEvent(UserActivityEvent::Event::REACTIVATE, MaybeLogEvent(UserActivityEvent::Event::REACTIVATE,
UserActivityEvent::Event::USER_ACTIVITY); UserActivityEvent::Event::USER_ACTIVITY);
} }
void UserActivityLogger::LidEventReceived( void UserActivityManager::LidEventReceived(
chromeos::PowerManagerClient::LidState state, chromeos::PowerManagerClient::LidState state,
const base::TimeTicks& /* timestamp */) { const base::TimeTicks& /* timestamp */) {
lid_state_ = state; lid_state_ = state;
} }
void UserActivityLogger::PowerChanged( void UserActivityManager::PowerChanged(
const power_manager::PowerSupplyProperties& proto) { const power_manager::PowerSupplyProperties& proto) {
if (external_power_.has_value()) { if (external_power_.has_value()) {
bool power_source_changed = (*external_power_ != proto.external_power()); bool power_source_changed = (*external_power_ != proto.external_power());
...@@ -98,29 +98,29 @@ void UserActivityLogger::PowerChanged( ...@@ -98,29 +98,29 @@ void UserActivityLogger::PowerChanged(
} }
} }
void UserActivityLogger::TabletModeEventReceived( void UserActivityManager::TabletModeEventReceived(
chromeos::PowerManagerClient::TabletMode mode, chromeos::PowerManagerClient::TabletMode mode,
const base::TimeTicks& /* timestamp */) { const base::TimeTicks& /* timestamp */) {
tablet_mode_ = mode; tablet_mode_ = mode;
} }
void UserActivityLogger::ScreenIdleStateChanged( void UserActivityManager::ScreenIdleStateChanged(
const power_manager::ScreenIdleState& proto) { const power_manager::ScreenIdleState& proto) {
if (proto.off()) { if (proto.off()) {
screen_idle_timer_.Start( screen_idle_timer_.Start(
FROM_HERE, kIdleDelay, FROM_HERE, kIdleDelay,
base::Bind(&UserActivityLogger::MaybeLogEvent, base::Unretained(this), base::Bind(&UserActivityManager::MaybeLogEvent, base::Unretained(this),
UserActivityEvent::Event::TIMEOUT, UserActivityEvent::Event::TIMEOUT,
UserActivityEvent::Event::SCREEN_OFF)); UserActivityEvent::Event::SCREEN_OFF));
} }
} }
void UserActivityLogger::SuspendImminent( void UserActivityManager::SuspendImminent(
power_manager::SuspendImminent::Reason reason) { power_manager::SuspendImminent::Reason reason) {
suspend_reason_ = reason; suspend_reason_ = reason;
} }
void UserActivityLogger::SuspendDone(const base::TimeDelta& sleep_duration) { void UserActivityManager::SuspendDone(const base::TimeDelta& sleep_duration) {
if (!suspend_reason_) if (!suspend_reason_)
return; return;
...@@ -161,23 +161,23 @@ void UserActivityLogger::SuspendDone(const base::TimeDelta& sleep_duration) { ...@@ -161,23 +161,23 @@ void UserActivityLogger::SuspendDone(const base::TimeDelta& sleep_duration) {
suspend_reason_ = base::nullopt; suspend_reason_ = base::nullopt;
} }
void UserActivityLogger::InactivityDelaysChanged( void UserActivityManager::InactivityDelaysChanged(
const power_manager::PowerManagementPolicy::Delays& delays) { const power_manager::PowerManagementPolicy::Delays& delays) {
OnReceiveInactivityDelays(delays); OnReceiveInactivityDelays(delays);
} }
void UserActivityLogger::OnVideoActivityStarted() { void UserActivityManager::OnVideoActivityStarted() {
MaybeLogEvent(UserActivityEvent::Event::REACTIVATE, MaybeLogEvent(UserActivityEvent::Event::REACTIVATE,
UserActivityEvent::Event::VIDEO_ACTIVITY); UserActivityEvent::Event::VIDEO_ACTIVITY);
} }
void UserActivityLogger::OnIdleEventObserved( void UserActivityManager::OnIdleEventObserved(
const IdleEventNotifier::ActivityData& activity_data) { const IdleEventNotifier::ActivityData& activity_data) {
idle_event_start_since_boot_ = boot_clock_->GetTimeSinceBoot(); idle_event_start_since_boot_ = boot_clock_->GetTimeSinceBoot();
ExtractFeatures(activity_data); ExtractFeatures(activity_data);
} }
void UserActivityLogger::OnSessionStateChanged() { void UserActivityManager::OnSessionStateChanged() {
DCHECK(session_manager_); DCHECK(session_manager_);
const bool was_locked = screen_is_locked_; const bool was_locked = screen_is_locked_;
screen_is_locked_ = session_manager_->IsScreenLocked(); screen_is_locked_ = session_manager_->IsScreenLocked();
...@@ -188,12 +188,12 @@ void UserActivityLogger::OnSessionStateChanged() { ...@@ -188,12 +188,12 @@ void UserActivityLogger::OnSessionStateChanged() {
} }
// static // static
constexpr base::TimeDelta UserActivityLogger::kIdleDelay; constexpr base::TimeDelta UserActivityManager::kIdleDelay;
// static // static
constexpr base::TimeDelta UserActivityLogger::kMinSuspendDuration; constexpr base::TimeDelta UserActivityManager::kMinSuspendDuration;
void UserActivityLogger::OnReceiveSwitchStates( void UserActivityManager::OnReceiveSwitchStates(
base::Optional<chromeos::PowerManagerClient::SwitchStates> switch_states) { base::Optional<chromeos::PowerManagerClient::SwitchStates> switch_states) {
if (switch_states.has_value()) { if (switch_states.has_value()) {
lid_state_ = switch_states->lid_state; lid_state_ = switch_states->lid_state;
...@@ -201,7 +201,7 @@ void UserActivityLogger::OnReceiveSwitchStates( ...@@ -201,7 +201,7 @@ void UserActivityLogger::OnReceiveSwitchStates(
} }
} }
void UserActivityLogger::OnReceiveInactivityDelays( void UserActivityManager::OnReceiveInactivityDelays(
base::Optional<power_manager::PowerManagementPolicy::Delays> delays) { base::Optional<power_manager::PowerManagementPolicy::Delays> delays) {
if (delays.has_value()) { if (delays.has_value()) {
screen_dim_delay_ = screen_dim_delay_ =
...@@ -211,7 +211,7 @@ void UserActivityLogger::OnReceiveInactivityDelays( ...@@ -211,7 +211,7 @@ void UserActivityLogger::OnReceiveInactivityDelays(
} }
} }
void UserActivityLogger::ExtractFeatures( void UserActivityManager::ExtractFeatures(
const IdleEventNotifier::ActivityData& activity_data) { const IdleEventNotifier::ActivityData& activity_data) {
features_.Clear(); features_.Clear();
...@@ -302,7 +302,7 @@ void UserActivityLogger::ExtractFeatures( ...@@ -302,7 +302,7 @@ void UserActivityLogger::ExtractFeatures(
UpdateOpenTabsURLs(); UpdateOpenTabsURLs();
} }
void UserActivityLogger::UpdateOpenTabsURLs() { void UserActivityManager::UpdateOpenTabsURLs() {
open_tabs_.clear(); open_tabs_.clear();
bool topmost_browser_found = false; bool topmost_browser_found = false;
BrowserList* browser_list = BrowserList::GetInstance(); BrowserList* browser_list = BrowserList::GetInstance();
...@@ -356,7 +356,7 @@ void UserActivityLogger::UpdateOpenTabsURLs() { ...@@ -356,7 +356,7 @@ void UserActivityLogger::UpdateOpenTabsURLs() {
} }
} }
void UserActivityLogger::MaybeLogEvent( void UserActivityManager::MaybeLogEvent(
UserActivityEvent::Event::Type type, UserActivityEvent::Event::Type type,
UserActivityEvent::Event::Reason reason) { UserActivityEvent::Event::Reason reason) {
if (!idle_event_start_since_boot_) if (!idle_event_start_since_boot_)
...@@ -374,11 +374,11 @@ void UserActivityLogger::MaybeLogEvent( ...@@ -374,11 +374,11 @@ void UserActivityLogger::MaybeLogEvent(
*activity_event.mutable_features() = features_; *activity_event.mutable_features() = features_;
// Log to metrics. // Log to metrics.
logger_delegate_->LogActivity(activity_event, open_tabs_); ukm_logger_->LogActivity(activity_event, open_tabs_);
idle_event_start_since_boot_ = base::nullopt; idle_event_start_since_boot_ = base::nullopt;
} }
void UserActivityLogger::SetTaskRunnerForTesting( void UserActivityManager::SetTaskRunnerForTesting(
scoped_refptr<base::SequencedTaskRunner> task_runner, scoped_refptr<base::SequencedTaskRunner> task_runner,
std::unique_ptr<BootClock> test_boot_clock) { std::unique_ptr<BootClock> test_boot_clock) {
screen_idle_timer_.SetTaskRunner(task_runner); screen_idle_timer_.SetTaskRunner(task_runner);
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_H_ #ifndef CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_MANAGER_H_
#define CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_H_ #define CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_MANAGER_H_
#include "base/macros.h" #include "base/macros.h"
#include "base/optional.h" #include "base/optional.h"
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" #include "chrome/browser/chromeos/login/users/chrome_user_manager.h"
#include "chrome/browser/chromeos/power/ml/idle_event_notifier.h" #include "chrome/browser/chromeos/power/ml/idle_event_notifier.h"
#include "chrome/browser/chromeos/power/ml/user_activity_event.pb.h" #include "chrome/browser/chromeos/power/ml/user_activity_event.pb.h"
#include "chrome/browser/chromeos/power/ml/user_activity_logger_delegate.h" #include "chrome/browser/chromeos/power/ml/user_activity_ukm_logger.h"
#include "chrome/browser/resource_coordinator/tab_metrics_event.pb.h" #include "chrome/browser/resource_coordinator/tab_metrics_event.pb.h"
#include "chromeos/dbus/power_manager/idle.pb.h" #include "chromeos/dbus/power_manager/idle.pb.h"
#include "chromeos/dbus/power_manager/policy.pb.h" #include "chromeos/dbus/power_manager/policy.pb.h"
...@@ -53,11 +53,11 @@ struct TabProperty { ...@@ -53,11 +53,11 @@ struct TabProperty {
// Logs user activity after an idle event is observed. // Logs user activity after an idle event is observed.
// TODO(renjieliu): Add power-related activity as well. // TODO(renjieliu): Add power-related activity as well.
class UserActivityLogger : public ui::UserActivityObserver, class UserActivityManager : public ui::UserActivityObserver,
public IdleEventNotifier::Observer, public IdleEventNotifier::Observer,
public PowerManagerClient::Observer, public PowerManagerClient::Observer,
public viz::mojom::VideoDetectorObserver, public viz::mojom::VideoDetectorObserver,
public session_manager::SessionManagerObserver { public session_manager::SessionManagerObserver {
public: public:
// Delay after screen idle event, used to trigger TIMEOUT for user activity // Delay after screen idle event, used to trigger TIMEOUT for user activity
// logging. // logging.
...@@ -69,14 +69,14 @@ class UserActivityLogger : public ui::UserActivityObserver, ...@@ -69,14 +69,14 @@ class UserActivityLogger : public ui::UserActivityObserver,
static constexpr base::TimeDelta kMinSuspendDuration = static constexpr base::TimeDelta kMinSuspendDuration =
base::TimeDelta::FromSeconds(10); base::TimeDelta::FromSeconds(10);
UserActivityLogger(UserActivityLoggerDelegate* delegate, UserActivityManager(UserActivityUkmLogger* ukm_logger,
IdleEventNotifier* idle_event_notifier, IdleEventNotifier* idle_event_notifier,
ui::UserActivityDetector* detector, ui::UserActivityDetector* detector,
chromeos::PowerManagerClient* power_manager_client, chromeos::PowerManagerClient* power_manager_client,
session_manager::SessionManager* session_manager, session_manager::SessionManager* session_manager,
viz::mojom::VideoDetectorObserverRequest request, viz::mojom::VideoDetectorObserverRequest request,
const chromeos::ChromeUserManager* user_manager); const chromeos::ChromeUserManager* user_manager);
~UserActivityLogger() override; ~UserActivityManager() override;
// ui::UserActivityObserver overrides. // ui::UserActivityObserver overrides.
void OnUserActivity(const ui::Event* event) override; void OnUserActivity(const ui::Event* event) override;
...@@ -106,7 +106,7 @@ class UserActivityLogger : public ui::UserActivityObserver, ...@@ -106,7 +106,7 @@ class UserActivityLogger : public ui::UserActivityObserver,
void OnSessionStateChanged() override; void OnSessionStateChanged() override;
private: private:
friend class UserActivityLoggerTest; friend class UserActivityManagerTest;
// Updates lid state and tablet mode from received switch states. // Updates lid state and tablet mode from received switch states.
void OnReceiveSwitchStates( void OnReceiveSwitchStates(
...@@ -165,7 +165,7 @@ class UserActivityLogger : public ui::UserActivityObserver, ...@@ -165,7 +165,7 @@ class UserActivityLogger : public ui::UserActivityObserver,
// It is RealBootClock, but will be set to FakeBootClock for tests. // It is RealBootClock, but will be set to FakeBootClock for tests.
std::unique_ptr<BootClock> boot_clock_; std::unique_ptr<BootClock> boot_clock_;
UserActivityLoggerDelegate* const logger_delegate_; UserActivityUkmLogger* const ukm_logger_;
ScopedObserver<IdleEventNotifier, IdleEventNotifier::Observer> ScopedObserver<IdleEventNotifier, IdleEventNotifier::Observer>
idle_event_observer_; idle_event_observer_;
...@@ -191,13 +191,13 @@ class UserActivityLogger : public ui::UserActivityObserver, ...@@ -191,13 +191,13 @@ class UserActivityLogger : public ui::UserActivityObserver,
base::TimeDelta screen_dim_delay_; base::TimeDelta screen_dim_delay_;
base::TimeDelta screen_off_delay_; base::TimeDelta screen_off_delay_;
base::WeakPtrFactory<UserActivityLogger> weak_ptr_factory_; base::WeakPtrFactory<UserActivityManager> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(UserActivityLogger); DISALLOW_COPY_AND_ASSIGN(UserActivityManager);
}; };
} // namespace ml } // namespace ml
} // namespace power } // namespace power
} // namespace chromeos } // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_H_ #endif // CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_MANAGER_H_
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_DELEGATE_H_ #ifndef CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_UKM_LOGGER_H_
#define CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_DELEGATE_H_ #define CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_UKM_LOGGER_H_
#include <map> #include <map>
...@@ -17,9 +17,9 @@ struct TabProperty; ...@@ -17,9 +17,9 @@ struct TabProperty;
class UserActivityEvent; class UserActivityEvent;
// Interface to log UserActivityEvent to UKM. // Interface to log UserActivityEvent to UKM.
class UserActivityLoggerDelegate { class UserActivityUkmLogger {
public: public:
virtual ~UserActivityLoggerDelegate() = default; virtual ~UserActivityUkmLogger() = default;
// Log user activity event using URL data. // Log user activity event using URL data.
virtual void LogActivity( virtual void LogActivity(
...@@ -31,4 +31,4 @@ class UserActivityLoggerDelegate { ...@@ -31,4 +31,4 @@ class UserActivityLoggerDelegate {
} // namespace power } // namespace power
} // namespace chromeos } // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_DELEGATE_H_ #endif // CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_UKM_LOGGER_H_
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
#include <cmath> #include <cmath>
#include "chrome/browser/chromeos/power/ml/user_activity_event.pb.h" #include "chrome/browser/chromeos/power/ml/user_activity_event.pb.h"
#include "chrome/browser/chromeos/power/ml/user_activity_logger.h" #include "chrome/browser/chromeos/power/ml/user_activity_manager.h"
#include "chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.h" #include "chrome/browser/chromeos/power/ml/user_activity_ukm_logger_impl.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "services/metrics/public/cpp/ukm_builders.h" #include "services/metrics/public/cpp/ukm_builders.h"
#include "ui/gfx/native_widget_types.h" #include "ui/gfx/native_widget_types.h"
...@@ -17,37 +17,33 @@ namespace ml { ...@@ -17,37 +17,33 @@ namespace ml {
namespace { namespace {
constexpr UserActivityLoggerDelegateUkm::Bucket kBatteryPercentBuckets[] = { constexpr UserActivityUkmLoggerImpl::Bucket kBatteryPercentBuckets[] = {
{100, 5}}; {100, 5}};
constexpr UserActivityLoggerDelegateUkm::Bucket kEventLogDurationBuckets[] = { constexpr UserActivityUkmLoggerImpl::Bucket kEventLogDurationBuckets[] = {
{60, 1}, {60, 1},
{300, 10}, {300, 10},
{600, 20}}; {600, 20}};
constexpr UserActivityLoggerDelegateUkm::Bucket kUserInputEventBuckets[] = { constexpr UserActivityUkmLoggerImpl::Bucket kUserInputEventBuckets[] = {
{100, 1}, {100, 1},
{1000, 100}, {1000, 100},
{10000, 1000}}; {10000, 1000}};
constexpr UserActivityLoggerDelegateUkm::Bucket constexpr UserActivityUkmLoggerImpl::Bucket kRecentVideoPlayingTimeBuckets[] = {
kRecentVideoPlayingTimeBuckets[] = {{60, 1}, {60, 1},
{1200, 300}, {1200, 300},
{3600, 600}, {3600, 600},
{18000, 1800}}; {18000, 1800}};
constexpr UserActivityLoggerDelegateUkm::Bucket constexpr UserActivityUkmLoggerImpl::Bucket kTimeSinceLastVideoEndedBuckets[] =
kTimeSinceLastVideoEndedBuckets[] = {{60, 1}, {{60, 1}, {600, 60}, {1200, 300}, {3600, 600}, {18000, 1800}};
{600, 60},
{1200, 300},
{3600, 600},
{18000, 1800}};
} // namespace } // namespace
int UserActivityLoggerDelegateUkm::Bucketize(int original_value, int UserActivityUkmLoggerImpl::Bucketize(int original_value,
const Bucket* buckets, const Bucket* buckets,
size_t num_buckets) { size_t num_buckets) {
DCHECK_GE(original_value, 0); DCHECK_GE(original_value, 0);
DCHECK(buckets); DCHECK(buckets);
for (size_t i = 0; i < num_buckets; ++i) { for (size_t i = 0; i < num_buckets; ++i) {
...@@ -59,12 +55,12 @@ int UserActivityLoggerDelegateUkm::Bucketize(int original_value, ...@@ -59,12 +55,12 @@ int UserActivityLoggerDelegateUkm::Bucketize(int original_value,
return buckets[num_buckets - 1].boundary_end; return buckets[num_buckets - 1].boundary_end;
} }
UserActivityLoggerDelegateUkm::UserActivityLoggerDelegateUkm() UserActivityUkmLoggerImpl::UserActivityUkmLoggerImpl()
: ukm_recorder_(ukm::UkmRecorder::Get()) {} : ukm_recorder_(ukm::UkmRecorder::Get()) {}
UserActivityLoggerDelegateUkm::~UserActivityLoggerDelegateUkm() = default; UserActivityUkmLoggerImpl::~UserActivityUkmLoggerImpl() = default;
void UserActivityLoggerDelegateUkm::LogActivity( void UserActivityUkmLoggerImpl::LogActivity(
const UserActivityEvent& event, const UserActivityEvent& event,
const std::map<ukm::SourceId, TabProperty>& open_tabs) { const std::map<ukm::SourceId, TabProperty>& open_tabs) {
DCHECK(ukm_recorder_); DCHECK(ukm_recorder_);
......
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_DELEGATE_UKM_H_ #ifndef CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_UKM_LOGGER_IMPL_H_
#define CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_DELEGATE_UKM_H_ #define CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_UKM_LOGGER_IMPL_H_
#include "base/macros.h" #include "base/macros.h"
#include "chrome/browser/chromeos/power/ml/user_activity_logger_delegate.h" #include "chrome/browser/chromeos/power/ml/user_activity_ukm_logger.h"
#include "chrome/browser/resource_coordinator/tab_metrics_event.pb.h" #include "chrome/browser/resource_coordinator/tab_metrics_event.pb.h"
#include "services/metrics/public/cpp/ukm_recorder.h" #include "services/metrics/public/cpp/ukm_recorder.h"
...@@ -16,7 +16,7 @@ namespace ml { ...@@ -16,7 +16,7 @@ namespace ml {
class UserActivityEvent; class UserActivityEvent;
class UserActivityLoggerDelegateUkm : public UserActivityLoggerDelegate { class UserActivityUkmLoggerImpl : public UserActivityUkmLogger {
public: public:
// Both |boundary_end| and |rounding| must be positive. // Both |boundary_end| and |rounding| must be positive.
struct Bucket { struct Bucket {
...@@ -37,16 +37,16 @@ class UserActivityLoggerDelegateUkm : public UserActivityLoggerDelegate { ...@@ -37,16 +37,16 @@ class UserActivityLoggerDelegateUkm : public UserActivityLoggerDelegate {
const Bucket* buckets, const Bucket* buckets,
size_t num_buckets); size_t num_buckets);
UserActivityLoggerDelegateUkm(); UserActivityUkmLoggerImpl();
~UserActivityLoggerDelegateUkm() override; ~UserActivityUkmLoggerImpl() override;
// chromeos::power::ml::UserActivityLoggerDelegate overrides: // chromeos::power::ml::UserActivityUkmLogger overrides:
void LogActivity( void LogActivity(
const UserActivityEvent& event, const UserActivityEvent& event,
const std::map<ukm::SourceId, TabProperty>& open_tabs) override; const std::map<ukm::SourceId, TabProperty>& open_tabs) override;
private: private:
friend class UserActivityLoggerDelegateUkmTest; friend class UserActivityUkmLoggerTest;
ukm::UkmRecorder* ukm_recorder_; // not owned ukm::UkmRecorder* ukm_recorder_; // not owned
...@@ -54,11 +54,11 @@ class UserActivityLoggerDelegateUkm : public UserActivityLoggerDelegate { ...@@ -54,11 +54,11 @@ class UserActivityLoggerDelegateUkm : public UserActivityLoggerDelegate {
// Event index starts from 1, and resets when a new session starts. // Event index starts from 1, and resets when a new session starts.
int next_sequence_id_ = 1; int next_sequence_id_ = 1;
DISALLOW_COPY_AND_ASSIGN(UserActivityLoggerDelegateUkm); DISALLOW_COPY_AND_ASSIGN(UserActivityUkmLoggerImpl);
}; };
} // namespace ml } // namespace ml
} // namespace power } // namespace power
} // namespace chromeos } // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_LOGGER_DELEGATE_UKM_H_ #endif // CHROME_BROWSER_CHROMEOS_POWER_ML_USER_ACTIVITY_UKM_LOGGER_IMPL_H_
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/chromeos/power/ml/user_activity_logger_delegate_ukm.h" #include "chrome/browser/chromeos/power/ml/user_activity_ukm_logger_impl.h"
#include <memory> #include <memory>
#include <vector> #include <vector>
#include "chrome/browser/chromeos/power/ml/user_activity_event.pb.h" #include "chrome/browser/chromeos/power/ml/user_activity_event.pb.h"
#include "chrome/browser/chromeos/power/ml/user_activity_logger.h" #include "chrome/browser/chromeos/power/ml/user_activity_manager.h"
#include "components/ukm/test_ukm_recorder.h" #include "components/ukm/test_ukm_recorder.h"
#include "services/metrics/public/cpp/ukm_builders.h" #include "services/metrics/public/cpp/ukm_builders.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
...@@ -20,9 +20,9 @@ namespace ml { ...@@ -20,9 +20,9 @@ namespace ml {
using ukm::builders::UserActivity; using ukm::builders::UserActivity;
using ukm::builders::UserActivityId; using ukm::builders::UserActivityId;
class UserActivityLoggerDelegateUkmTest : public testing::Test { class UserActivityUkmLoggerTest : public testing::Test {
public: public:
UserActivityLoggerDelegateUkmTest() { UserActivityUkmLoggerTest() {
// These values are arbitrary but must correspond with the values // These values are arbitrary but must correspond with the values
// in CheckUserActivityValues. // in CheckUserActivityValues.
UserActivityEvent::Event* event = user_activity_event_.mutable_event(); UserActivityEvent::Event* event = user_activity_event_.mutable_event();
...@@ -107,35 +107,35 @@ class UserActivityLoggerDelegateUkmTest : public testing::Test { ...@@ -107,35 +107,35 @@ class UserActivityLoggerDelegateUkmTest : public testing::Test {
ukm::TestUkmRecorder recorder_; ukm::TestUkmRecorder recorder_;
private: private:
UserActivityLoggerDelegateUkm user_activity_logger_delegate_ukm_; UserActivityUkmLoggerImpl user_activity_logger_delegate_ukm_;
DISALLOW_COPY_AND_ASSIGN(UserActivityLoggerDelegateUkmTest); DISALLOW_COPY_AND_ASSIGN(UserActivityUkmLoggerTest);
}; };
TEST_F(UserActivityLoggerDelegateUkmTest, BucketEveryFivePercents) { TEST_F(UserActivityUkmLoggerTest, BucketEveryFivePercents) {
const std::vector<int> original_values = {0, 14, 15, 100}; const std::vector<int> original_values = {0, 14, 15, 100};
const std::vector<int> results = {0, 10, 15, 100}; const std::vector<int> results = {0, 10, 15, 100};
constexpr UserActivityLoggerDelegateUkm::Bucket buckets[] = {{100, 5}}; constexpr UserActivityUkmLoggerImpl::Bucket buckets[] = {{100, 5}};
for (size_t i = 0; i < original_values.size(); ++i) { for (size_t i = 0; i < original_values.size(); ++i) {
EXPECT_EQ(results[i], UserActivityLoggerDelegateUkm::Bucketize( EXPECT_EQ(results[i], UserActivityUkmLoggerImpl::Bucketize(
original_values[i], buckets, arraysize(buckets))); original_values[i], buckets, arraysize(buckets)));
} }
} }
TEST_F(UserActivityLoggerDelegateUkmTest, Bucketize) { TEST_F(UserActivityUkmLoggerTest, Bucketize) {
const std::vector<int> original_values = {0, 18, 59, 60, 62, 69, 72, const std::vector<int> original_values = {0, 18, 59, 60, 62, 69, 72,
299, 300, 306, 316, 599, 600, 602}; 299, 300, 306, 316, 599, 600, 602};
constexpr UserActivityLoggerDelegateUkm::Bucket buckets[] = { constexpr UserActivityUkmLoggerImpl::Bucket buckets[] = {
{60, 1}, {300, 10}, {600, 20}}; {60, 1}, {300, 10}, {600, 20}};
const std::vector<int> results = {0, 18, 59, 60, 60, 60, 70, const std::vector<int> results = {0, 18, 59, 60, 60, 60, 70,
290, 300, 300, 300, 580, 600, 600}; 290, 300, 300, 300, 580, 600, 600};
for (size_t i = 0; i < original_values.size(); ++i) { for (size_t i = 0; i < original_values.size(); ++i) {
EXPECT_EQ(results[i], UserActivityLoggerDelegateUkm::Bucketize( EXPECT_EQ(results[i], UserActivityUkmLoggerImpl::Bucketize(
original_values[i], buckets, arraysize(buckets))); original_values[i], buckets, arraysize(buckets)));
} }
} }
TEST_F(UserActivityLoggerDelegateUkmTest, BasicLogging) { TEST_F(UserActivityUkmLoggerTest, BasicLogging) {
TabProperty properties[2]; TabProperty properties[2];
properties[0].is_active = true; properties[0].is_active = true;
...@@ -202,7 +202,7 @@ TEST_F(UserActivityLoggerDelegateUkmTest, BasicLogging) { ...@@ -202,7 +202,7 @@ TEST_F(UserActivityLoggerDelegateUkmTest, BasicLogging) {
} }
// Tests what would be logged in Incognito: when source IDs are not provided. // Tests what would be logged in Incognito: when source IDs are not provided.
TEST_F(UserActivityLoggerDelegateUkmTest, EmptySources) { TEST_F(UserActivityUkmLoggerTest, EmptySources) {
std::map<ukm::SourceId, TabProperty> empty_source_properties; std::map<ukm::SourceId, TabProperty> empty_source_properties;
LogActivity(user_activity_event_, empty_source_properties); LogActivity(user_activity_event_, empty_source_properties);
...@@ -216,7 +216,7 @@ TEST_F(UserActivityLoggerDelegateUkmTest, EmptySources) { ...@@ -216,7 +216,7 @@ TEST_F(UserActivityLoggerDelegateUkmTest, EmptySources) {
EXPECT_EQ(0u, recorder_.GetEntriesByName(UserActivityId::kEntryName).size()); EXPECT_EQ(0u, recorder_.GetEntriesByName(UserActivityId::kEntryName).size());
} }
TEST_F(UserActivityLoggerDelegateUkmTest, TwoUserActivityEvents) { TEST_F(UserActivityUkmLoggerTest, TwoUserActivityEvents) {
// A second event will be logged. Values correspond with the checks below. // A second event will be logged. Values correspond with the checks below.
UserActivityEvent user_activity_event2; UserActivityEvent user_activity_event2;
UserActivityEvent::Event* event = user_activity_event2.mutable_event(); UserActivityEvent::Event* event = user_activity_event2.mutable_event();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment