[Metrics] Make MetricsStateManager take a callback param to check if UMA is enabled.
[chromium-blink-merge.git] / chrome / browser / ui / views / auto_keep_alive.cc
blobca57e2c6dcf77b0a441cb1a78085d3a880c4f2b3
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/views/auto_keep_alive.h"
7 #include "chrome/browser/lifetime/application_lifetime.h"
8 #include "chrome/browser/ui/host_desktop.h"
9 #include "ui/aura/window.h"
10 #include "ui/views/view_constants_aura.h"
12 AutoKeepAlive::AutoKeepAlive(gfx::NativeWindow window)
13 : keep_alive_available_(false) {
14 // In case of aura we want default to be keep alive not available for ash
15 // because ash has keep alive set and we don't want additional keep alive
16 // count. If there is a |window|, use its root window's kDesktopRootWindow
17 // to test whether we are on desktop. Otherwise, use GetActiveDesktop().
18 if (window) {
19 gfx::NativeWindow native_window = window->GetRootWindow();
20 if (native_window->GetProperty(views::kDesktopRootWindow))
21 keep_alive_available_ = true;
22 } else if (chrome::GetActiveDesktop() != chrome::HOST_DESKTOP_TYPE_ASH) {
23 keep_alive_available_ = true;
26 if (keep_alive_available_)
27 chrome::IncrementKeepAliveCount();
30 AutoKeepAlive::~AutoKeepAlive() {
31 if (keep_alive_available_)
32 chrome::DecrementKeepAliveCount();