Commit 7e7a654e15 for wordpress.org

commit 7e7a654e156949e0f89fa37ea417ca8166165c4d
Author: joedolson <joedolson@git.wordpress.org>
Date:   Tue Sep 8 21:09:50 2026 +0000

    Administration: Prevent errors in wp-tooltip.js on browsers without popover support.

    Add a feature gate so that the tooltip JS hides popover panels on browsers without popover support, and doesn't execute calls that can trigger errors.

    There are no browsers within the WordPress support matrix without popover support, but gating this feature gives users of older browsers a better experience with minimal change.

    Props wolf45, wildworks, adamsilverstein, joedolson.
    Fixes #65943.
    Built from https://develop.svn.wordpress.org/trunk@63543


    git-svn-id: http://core.svn.wordpress.org/trunk@62719 1a063a9b-81f0-0310-95a4-ce76da25c4cd

diff --git a/wp-includes/js/wp-tooltip.js b/wp-includes/js/wp-tooltip.js
index 70fe2bfe7c..87e4401e37 100644
--- a/wp-includes/js/wp-tooltip.js
+++ b/wp-includes/js/wp-tooltip.js
@@ -8,6 +8,12 @@
  */
 (() => {

+	const supportsPopover = /** @type {boolean} */ ( Object.prototype.hasOwnProperty.call( HTMLElement.prototype, 'popover' ) );
+	let hidePopover = false;
+	if ( ! supportsPopover ) {
+		hidePopover = true;
+	}
+
 	const popovers = /** @type {NodeListOf<HTMLSpanElement>} */ ( document.querySelectorAll( '.wp-is-tooltip' ) );

 	/** @type {ReturnType<typeof setTimeout>} */
@@ -16,7 +22,11 @@
 	popovers.forEach( function( popover ) {
 		const trigger = /** @type {HTMLButtonElement|HTMLAnchorElement|null} */ ( popover.querySelector( '.wp-tooltip__toggle' ) );
 		const panel   = /** @type {HTMLSpanElement|null} */ ( popover.querySelector( 'span.wp-tooltip__bubble' ) );
+		if ( hidePopover && panel ) {
+			panel.classList.add( 'hidden' );

+			return;
+		}
 		if ( ! trigger || ! panel ) {
 			return;
 		}
diff --git a/wp-includes/js/wp-tooltip.min.js b/wp-includes/js/wp-tooltip.min.js
index 78c590e806..433d844815 100644
--- a/wp-includes/js/wp-tooltip.min.js
+++ b/wp-includes/js/wp-tooltip.min.js
@@ -1,2 +1,2 @@
 /*! This file is auto-generated */
-(()=>{var e=document.querySelectorAll(".wp-is-tooltip");let n;e.forEach(function(e){const o=e.querySelector(".wp-tooltip__toggle"),t=e.querySelector("span.wp-tooltip__bubble");var r;o&&t&&(e=()=>{clearTimeout(n),n=setTimeout(()=>{t.matches(":popover-open")||t.showPopover({source:o})},300)},r=()=>{clearTimeout(n),t.matches(":popover-open")&&t.hidePopover()},o.addEventListener("mouseenter",e),o.addEventListener("focus",e),o.addEventListener("mouseleave",r),o.addEventListener("blur",r))})})();
\ No newline at end of file
+(()=>{var e=Object.prototype.hasOwnProperty.call(HTMLElement.prototype,"popover");let p=!1;e||(p=!0);e=document.querySelectorAll(".wp-is-tooltip");let l;e.forEach(function(e){const o=e.querySelector(".wp-tooltip__toggle"),t=e.querySelector("span.wp-tooltip__bubble");var r;p&&t?t.classList.add("hidden"):o&&t&&(e=()=>{clearTimeout(l),l=setTimeout(()=>{t.matches(":popover-open")||t.showPopover({source:o})},300)},r=()=>{clearTimeout(l),t.matches(":popover-open")&&t.hidePopover()},o.addEventListener("mouseenter",e),o.addEventListener("focus",e),o.addEventListener("mouseleave",r),o.addEventListener("blur",r))})})();
\ No newline at end of file
diff --git a/wp-includes/version.php b/wp-includes/version.php
index 805a56824b..f7d50e0cc0 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
  *
  * @global string $wp_version
  */
-$wp_version = '7.2-alpha-63542';
+$wp_version = '7.2-alpha-63543';

 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.