auto_keep_alive.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
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.
4
5#include "chrome/browser/ui/views/auto_keep_alive.h"
6
7#include "chrome/browser/lifetime/application_lifetime.h"
8
9#if defined(USE_AURA)
10#include "ui/aura/window.h"
11#include "ui/views/view_constants_aura.h"
12#endif
13
14AutoKeepAlive::AutoKeepAlive(gfx::NativeWindow window)
15    : keep_alive_available_(true) {
16#if defined(USE_AURA)
17  // In case of aura we want default to be keep alive not available.
18  keep_alive_available_ = false;
19  if (window) {
20    gfx::NativeWindow native_window = window->GetRootWindow();
21    if (native_window->GetProperty(views::kDesktopRootWindow))
22      keep_alive_available_ = true;
23  }
24#endif
25  if (keep_alive_available_)
26    chrome::IncrementKeepAliveCount();
27}
28
29AutoKeepAlive::~AutoKeepAlive() {
30  if (keep_alive_available_)
31    chrome::DecrementKeepAliveCount();
32}
33