| Index: remoting/client/client_telemetry_logger.h
|
| diff --git a/remoting/client/client_telemetry_logger.h b/remoting/client/client_telemetry_logger.h
|
| index 9cfbb093116590666a336bf6aa32bede793c028a..fdbe211c0f78823676939e39ca61cfd547833eb2 100644
|
| --- a/remoting/client/client_telemetry_logger.h
|
| +++ b/remoting/client/client_telemetry_logger.h
|
| @@ -22,10 +22,11 @@ namespace remoting {
|
| // ClientTelemetryLogger sends client log entries to the telemetry server.
|
| // The logger should be run entirely on one single thread.
|
| // TODO(yuweih): Implement new features that session_logger.js provides.
|
| -// TODO(BUG 680752): Refactor this so that it's bound to only one session.
|
| class ClientTelemetryLogger {
|
| public:
|
| - explicit ClientTelemetryLogger(ChromotingEvent::Mode mode);
|
| + // |log_writer| must outlive ClientTelemetryLogger.
|
| + ClientTelemetryLogger(ChromotingEventLogWriter* log_writer,
|
| + ChromotingEvent::Mode mode);
|
| ~ClientTelemetryLogger();
|
|
|
| // Sets the host info to be posted along with other log data. By default
|
| @@ -34,36 +35,15 @@ class ClientTelemetryLogger {
|
| ChromotingEvent::Os host_os,
|
| const std::string& host_os_version);
|
|
|
| - // Start must be called before posting logs or setting auth token or closure.
|
| - void Start(std::unique_ptr<UrlRequestFactory> request_factory,
|
| - const std::string& telemetry_base_url);
|
| -
|
| void LogSessionStateChange(ChromotingEvent::SessionState state,
|
| ChromotingEvent::ConnectionError error);
|
|
|
| // TODO(yuweih): Investigate possibility of making PerformanceTracker const.
|
| void LogStatistics(protocol::PerformanceTracker* perf_tracker);
|
|
|
| - // Authorization: The caller can either
|
| - // 1. have its own fetching schedule and manually call |SetAuthToken| when the
|
| - // token is fetched or renewed
|
| - // 2. or call |SetAuthClosure| and expect the logger to run the closure when
|
| - // it needs new token. See comments below.
|
| -
|
| - // Sets the auth token immediately.
|
| - void SetAuthToken(const std::string& token);
|
| -
|
| - // Sets the authorization closure. The closure should call |SetAuthToken| to
|
| - // set the token. The closure will be run when the logger needs authorization
|
| - // to send out the logs.
|
| - void SetAuthClosure(const base::Closure& closure);
|
| -
|
| const std::string& session_id() const { return session_id_; }
|
|
|
| void SetSessionIdGenerationTimeForTest(base::TimeTicks gen_time);
|
| - // Start the logger with a given log writer. Do not call Start before or
|
| - // after calling this function.
|
| - void StartForTest(std::unique_ptr<ChromotingEventLogWriter> writer);
|
|
|
| static ChromotingEvent::SessionState TranslateState(
|
| protocol::ConnectionToHost::State state);
|
| @@ -79,9 +59,11 @@ class ClientTelemetryLogger {
|
| // Generates a new random session ID.
|
| void GenerateSessionId();
|
|
|
| - // Expire the session ID if the maximum duration has been exceeded.
|
| - // Sends SessionIdOld and SessionIdNew events describing the change of id.
|
| - void ExpireSessionIdIfOutdated();
|
| + // If not session ID has been set, simply generates a new one without sending
|
| + // any logs, otherwise expire the session ID if the maximum duration has been
|
| + // exceeded, and sends SessionIdOld and SessionIdNew events describing the
|
| + // change of id.
|
| + void RefreshSessionIdIfOutdated();
|
|
|
| ChromotingEvent MakeStatsEvent(protocol::PerformanceTracker* perf_tracker);
|
| ChromotingEvent MakeSessionStateChangeEvent(
|
| @@ -103,7 +85,7 @@ class ClientTelemetryLogger {
|
| std::unique_ptr<HostInfo> host_info_;
|
|
|
| // The log writer that actually sends log to the server.
|
| - std::unique_ptr<ChromotingEventLogWriter> log_writer_;
|
| + ChromotingEventLogWriter* log_writer_;
|
|
|
| base::ThreadChecker thread_checker_;
|
|
|
|
|