# Copyright 2016 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 "mount component updated flash if it exists"
author "chromium-os-dev@chromium.org"

# Note that "starting ui" blocks UI startup. This is intentional here since the
# flash player component must be available when the browser starts since the
# sandbox/zygote can currently only access flash binaries if they're available
# at startup.
start on starting ui
task

# Try to mount flash player if it exists.
# If it does not exist, that is OK: just let imageloader fail.
# To simplify things, we mount the flash image in a pre-determined location that
# Chrome knows about.
exec /usr/sbin/imageloader --init --mount \
  --mount_component=PepperFlashPlayer \
  --mount_point=/run/imageloader/PepperFlashPlayer
