type cros_p2p_server, domain, chromeos_domain;
type cros_p2p_http_server, domain, chromeos_domain;

permissive cros_p2p_server;
permissive cros_p2p_http_server;

from_minijail_preload(cros_p2p_server, cros_p2p_server_exec);
domain_auto_trans(cros_p2p_server, cros_p2p_http_server_exec, cros_p2p_http_server);
