| Index: chromecast/crash/app_state_tracker.cc
|
| diff --git a/chromecast/crash/app_state_tracker.cc b/chromecast/crash/app_state_tracker.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b563ece66cdb1c5993fe6ca720881ab07d98eda9
|
| --- /dev/null
|
| +++ b/chromecast/crash/app_state_tracker.cc
|
| @@ -0,0 +1,63 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chromecast/crash/app_state_tracker.h"
|
| +
|
| +#include "base/lazy_instance.h"
|
| +#include "chromecast/crash/cast_crash_keys.h"
|
| +
|
| +namespace {
|
| +
|
| +struct CurrentAppState {
|
| + std::string previous_app;
|
| + std::string current_app;
|
| + std::string last_launched_app;
|
| +};
|
| +
|
| +base::LazyInstance<CurrentAppState> g_app_state = LAZY_INSTANCE_INITIALIZER;
|
| +
|
| +CurrentAppState* GetAppState() {
|
| + return g_app_state.Pointer();
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +namespace chromecast {
|
| +
|
| +// static
|
| +std::string AppStateTracker::GetLastLaunchedApp() {
|
| + return GetAppState()->last_launched_app;
|
| +}
|
| +
|
| +// static
|
| +std::string AppStateTracker::GetCurrentApp() {
|
| + return GetAppState()->current_app;
|
| +}
|
| +
|
| +// static
|
| +std::string AppStateTracker::GetPreviousApp() {
|
| + return GetAppState()->previous_app;
|
| +}
|
| +
|
| +// static
|
| +void AppStateTracker::SetLastLaunchedApp(const std::string& app_id) {
|
| + GetAppState()->last_launched_app = app_id;
|
| +
|
| + // TODO(slan): Currently SetCrashKeyValue is a no-op on chromecast until
|
| + // we add call to InitCrashKeys
|
| + base::debug::SetCrashKeyValue(crash_keys::kLastApp, app_id);
|
| +}
|
| +
|
| +// static
|
| +void AppStateTracker::SetCurrentApp(const std::string& app_id) {
|
| + CurrentAppState* app_state = GetAppState();
|
| + app_state->previous_app = app_state->current_app;
|
| + app_state->current_app = app_id;
|
| +
|
| + base::debug::SetCrashKeyValue(crash_keys::kCurrentApp, app_id);
|
| + base::debug::SetCrashKeyValue(crash_keys::kPreviousApp,
|
| + app_state->previous_app);
|
| +}
|
| +
|
| +} // namespace chromecast
|
|
|