Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(674)

Unified Diff: chrome/browser/chromeos/arc/arc_process.cc

Issue 2095413002: TabManagerDelegate: Better prioritize ARC processes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sync to ToT Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/arc/arc_process.h ('k') | chrome/browser/chromeos/arc/arc_process_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/arc/arc_process.cc
diff --git a/chrome/browser/chromeos/arc/arc_process.cc b/chrome/browser/chromeos/arc/arc_process.cc
index 53f127d10d29c9200f50a95e3123a4472ab1545b..02aaa022bc0a85c8e116c5c5fbf6bef7d9fc1469 100644
--- a/chrome/browser/chromeos/arc/arc_process.cc
+++ b/chrome/browser/chromeos/arc/arc_process.cc
@@ -4,19 +4,33 @@
#include "chrome/browser/chromeos/arc/arc_process.h"
+#include <utility>
+
namespace arc {
ArcProcess::ArcProcess(base::ProcessId nspid,
base::ProcessId pid,
const std::string& process_name,
- mojom::ProcessState process_state)
+ mojom::ProcessState process_state,
+ bool is_focused,
+ int64_t last_activity_time)
: nspid_(nspid),
pid_(pid),
process_name_(process_name),
- process_state_(process_state) {}
+ process_state_(process_state),
+ is_focused_(is_focused),
+ last_activity_time_(last_activity_time) {}
ArcProcess::~ArcProcess() = default;
+// Sort by (process_state, last_activity_time) pair.
+// Smaller process_state value means higher priority as defined in Android.
+// Larger last_activity_time means more recently used.
+bool ArcProcess::operator<(const ArcProcess& rhs) const {
+ return std::make_pair(process_state(), -last_activity_time()) <
+ std::make_pair(rhs.process_state(), -rhs.last_activity_time());
+}
+
ArcProcess::ArcProcess(ArcProcess&& other) = default;
ArcProcess& ArcProcess::operator=(ArcProcess&& other) = default;
« no previous file with comments | « chrome/browser/chromeos/arc/arc_process.h ('k') | chrome/browser/chromeos/arc/arc_process_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698