Chromium plugins and other weird stuff

Index: refpolicy-2.20200410/policy/modules/apps/chromium.te
===================================================================
--- refpolicy-2.20200410.orig/policy/modules/apps/chromium.te
+++ refpolicy-2.20200410/policy/modules/apps/chromium.te
@@ -39,6 +39,13 @@ gen_tunable(chromium_bind_tcp_unreserved
 ## </desc>
 gen_tunable(chromium_rw_usb_dev, false)
 
+## <desc>
+## <p>
+## Allow chromium to execute it's config (for plugins like Flash)
+## </p>
+## </desc>
+gen_tunable(chromium_exec_plugins, false)
+
 type chromium_t;
 domain_dyntrans_type(chromium_t)
 
@@ -80,7 +87,9 @@ xdg_cache_content(chromium_xdg_cache_t)
 #
 
 # execmem for load in plugins
-allow chromium_t self:process { execmem getsched getcap setcap setrlimit setsched sigkill signal };
+allow chromium_t self:process { execmem getsched getcap setcap setrlimit setsched sigkill signal signull };
+allow chromium_t self:dir { write add_name };
+allow chromium_t self:file create;
 allow chromium_t self:fifo_file rw_fifo_file_perms;
 allow chromium_t self:sem create_sem_perms;
 allow chromium_t self:netlink_kobject_uevent_socket client_stream_socket_perms;
@@ -135,7 +144,12 @@ dyntrans_pattern(chromium_t, chromium_re
 domtrans_pattern(chromium_t, chromium_sandbox_exec_t, chromium_sandbox_t)
 domtrans_pattern(chromium_t, chromium_naclhelper_exec_t, chromium_naclhelper_t)
 
+# for self:file create
+kernel_associate_proc(chromium_t)
+
+kernel_get_sysvipc_info(chromium_t)
 kernel_list_proc(chromium_t)
+kernel_read_crypto_sysctls(chromium_t)
 kernel_read_fs_sysctls(chromium_t)
 kernel_read_kernel_sysctls(chromium_t)
 kernel_read_net_sysctls(chromium_t)
@@ -147,6 +161,7 @@ corecmd_exec_shell(chromium_t)
 corenet_tcp_connect_all_unreserved_ports(chromium_t)
 corenet_tcp_connect_ftp_port(chromium_t)
 corenet_tcp_connect_http_port(chromium_t)
+corenet_tcp_connect_ipp_port(chromium_t)
 corenet_udp_bind_generic_node(chromium_t)
 corenet_udp_bind_all_unreserved_ports(chromium_t)
 
@@ -214,6 +229,11 @@ tunable_policy(`chromium_rw_usb_dev',`
 	udev_read_db(chromium_t)
 ')
 
+tunable_policy(`chromium_exec_plugins',`
+	# sometimes .config/google-chrome/PepperFlash/32.0.0.142/libpepflashplayer.so gets chromium_tmp_t
+	can_exec(chromium_t, { chromium_xdg_config_t chromium_tmp_t })
+')
+
 tunable_policy(`chromium_read_system_info',`
 	kernel_read_kernel_sysctls(chromium_t)
 	# Memory optimizations & optimizations based on OS/version
@@ -283,7 +303,8 @@ optional_policy(`
 
 ifdef(`use_alsa',`
 	optional_policy(`
-		alsa_domain(chromium_t, chromium_tmpfs_t)
+		alsa_read_config(chromium_t)
+		alsa_read_home_files(chromium_t)
 	')
 
 	optional_policy(`
@@ -329,6 +350,9 @@ userdom_use_user_terminals(chromium_rend
 
 xdg_read_config_files(chromium_renderer_t)
 
+# should we have a tunable for this?
+xdg_read_pictures(chromium_t)
+
 xserver_user_x_domain_template(chromium_renderer, chromium_renderer_t, chromium_tmpfs_t)
 
 tunable_policy(`chromium_read_system_info',`
Index: refpolicy-2.20200410/policy/modules/kernel/kernel.if
===================================================================
--- refpolicy-2.20200410.orig/policy/modules/kernel/kernel.if
+++ refpolicy-2.20200410/policy/modules/kernel/kernel.if
@@ -2424,6 +2424,24 @@ interface(`kernel_rw_all_sysctls',`
 
 ########################################
 ## <summary>
+##	Associate a file to proc_t (/proc)
+## </summary>
+## <param name="domain">
+##	<summary>
+##	Domain allowed access.
+##	</summary>
+## </param>
+## <rolecap/>
+#
+interface(`kernel_associate_proc',`
+	gen_require(`
+		type proc_t;
+	')
+	allow $1 proc_t:filesystem associate;
+')
+
+########################################
+## <summary>
 ##	Send a kill signal to unlabeled processes.
 ## </summary>
 ## <param name="domain">
