# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description   "Chrome OS user interface"
author        "chromium-os-dev@chromium.org"

# Note, the 'start on' line is modified by the chromeos-factoryinstall
# ebuild.  Please do not change it without also changing that
# reference.
#
# This job's post-stop script depends on cryptohomed being running;
# cryptohomed in turn depends on chapsd and dbus-daemon.  This job's
# stop condition uses a special stop job to keep those processes
# from terminating until after this job has cleaned up.  See the
# pre-shutdown job for more details.
# NB: Respawning is now handled by ui-respawn.conf, as the logic is
# more complex than upstart was designed to handle.
start on started boot-services
stop on starting pre-shutdown

# Enables chrome to renice UI critical threads (higher priority),
# background threads (lower priority), and to set the priority of
# realtime threads to real time. The limit will be applied to
# session_manager and all the spawned processes.
limit nice 40 40
limit rtprio 10 10

# Extend the grace period given to the session_manager before upstart decides
# it's gone unresponsive on job termination and must be killed. Chrome gets 12s
# (configured below) to shut down on devices with HDDs, so give a cushion.
kill timeout 20  # In seconds.

# Uncomment line below to output to VT02
#console output

# Directory where session manager logs are written and prefix of files there.
env UI_LOG_DIR=/var/log/ui
env UI_LOG_FILE=ui.LATEST

# Directory where session manager sets up container roots
env CONTAINER_ROOT_DIR=/run/containers

# Directory for renderer freezer.
env CHROME_FREEZER_CGROUP_DIR=/sys/fs/cgroup/freezer/chrome_renderers
env UI_CPU_CGROUP_DIR=/sys/fs/cgroup/cpu/ui

pre-start exec /usr/share/cros/init/ui-pre-start

# This may be used to wrap the Chrome executable within another command
# instead of calling it directly. The flag's value will be split on whitespace
# into an absolute path and arguments, after which session_manager will add
# Chrome's arguments. For example:
#
# env CHROME_COMMAND_FLAG="--chrome-command=/usr/local/bin/strace /opt/google/chrome/chrome"
env CHROME_COMMAND_FLAG

exec session_manager \
  "${CHROME_COMMAND_FLAG}" \
  >"${UI_LOG_DIR}/${UI_LOG_FILE}" 2>&1

# Assign session_manager and children(chrome) processes to the ui cgroup created
# above. Default cpu.shares is 1024. Android processes will be adjusted against
# 1024.
post-start script
  echo $(status | cut -f 4 -d ' ') > "${UI_CPU_CGROUP_DIR}/tasks"
end script

post-stop exec /usr/share/cros/init/ui-post-stop
