blob: b2be60adab6deb973810bc1da484a2dd57c1aba8 [file] [log] [blame]
// 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.
#ifndef CHROME_BROWSER_MEMORY_TAB_STATS_H_
#define CHROME_BROWSER_MEMORY_TAB_STATS_H_
#include <stdint.h>
#include <vector>
#include "base/process/process.h"
#include "base/strings/string16.h"
#include "base/time/time.h"
#include "build/build_config.h"
namespace content {
class RenderProcessHost;
} // namespace content
namespace memory {
struct TabStats {
TabStats();
TabStats(const TabStats& other);
~TabStats();
bool is_app; // Browser window is an app.
bool is_internal_page; // Internal page, such as NTP or Settings.
bool is_media; // Playing audio, acessing cam/mic or mirroring display.
bool is_pinned;
bool is_selected; // Selected in the currently active browser window.
bool is_discarded;
bool has_form_entry; // User has entered text in a form.
int discard_count;
base::TimeTicks last_active;
base::TimeTicks last_hidden;
content::RenderProcessHost* render_process_host;
base::ProcessHandle renderer_handle;
int child_process_host_id;
base::string16 title;
#if defined(OS_CHROMEOS)
int oom_score;
#endif
int64_t tab_contents_id; // Unique ID per WebContents.
bool is_auto_discardable;
};
typedef std::vector<TabStats> TabStatsList;
} // namespace memory
#endif // CHROME_BROWSER_MEMORY_TAB_STATS_H_