Index: wp-admin/admin-header.php
===================================================================
--- wp-admin/admin-header.php	(revision 46810)
+++ wp-admin/admin-header.php	(working copy)
@@ -221,6 +221,14 @@
 $admin_body_classes = ltrim( $admin_body_classes . ' ' . $admin_body_class );
 ?>
 <body class="wp-admin wp-core-ui no-js <?php echo $admin_body_classes; ?>">
+<?php
+/**
+ * Fire the admin_body_open action in all admin pages.
+ *
+ * @since 5.4.0
+ */
+do_action( 'admin_body_open' );
+?>
 <script type="text/javascript">
 	document.body.className = document.body.className.replace('no-js','js');
 </script>
Index: wp-includes/theme-compat/header-embed.php
===================================================================
--- wp-includes/theme-compat/header-embed.php	(revision 46813)
+++ wp-includes/theme-compat/header-embed.php	(working copy)
@@ -30,3 +30,11 @@
 	?>
 </head>
 <body <?php body_class(); ?>>
+<?php
+/**
+ * Fire the embed_body_open action in the embed template.
+ *
+ * @since 5.4.0
+ */
+do_action( 'embed_body_open' );
+?>
\ No newline at end of file
Index: wp-includes/theme-compat/header.php
===================================================================
--- wp-includes/theme-compat/header.php	(revision 46813)
+++ wp-includes/theme-compat/header.php	(working copy)
@@ -49,6 +49,8 @@
 <?php wp_head(); ?>
 </head>
 <body <?php body_class(); ?>>
+<?php wp_body_open(); ?>
+
 <div id="page">
 
 <div id="header" role="banner">
Index: wp-login.php
===================================================================
--- wp-login.php	(revision 46810)
+++ wp-login.php	(working copy)
@@ -197,6 +197,14 @@
 	?>
 	</head>
 	<body class="login no-js <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
+	<?php
+	/**
+	 * Fire the login_body_open action in the login page.
+	 *
+	 * @since 5.4.0
+	 */
+	do_action( 'login_body_open' );
+	?>
 	<script type="text/javascript">
 		document.body.className = document.body.className.replace('no-js','js');
 	</script>
