wp/wp-includes/js/heartbeat.js
changeset 16 a86126ab1dd4
parent 9 177826044cd9
child 18 be944660c56a
--- a/wp/wp-includes/js/heartbeat.js	Tue Oct 22 16:11:46 2019 +0200
+++ b/wp/wp-includes/js/heartbeat.js	Tue Dec 15 13:49:49 2020 +0100
@@ -34,7 +34,7 @@
 	 *
 	 * @since 3.6.0
 	 *
-	 * @returns {Object} An instance of the Heartbeat class.
+	 * @return {Object} An instance of the Heartbeat class.
 	 * @constructor
 	 */
 	var Heartbeat = function() {
@@ -62,13 +62,13 @@
 				// Connect interval (in seconds).
 				mainInterval: 60,
 
-				// Used when the interval is set to 5 sec. temporarily.
+				// Used when the interval is set to 5 seconds temporarily.
 				tempInterval: 0,
 
 				// Used when the interval is reset.
 				originalInterval: 0,
 
-				// Used to limit the number of AJAX requests.
+				// Used to limit the number of Ajax requests.
 				minimalInterval: 0,
 
 				// Used together with tempInterval.
@@ -89,7 +89,7 @@
 				// Whether the current browser window is in focus and the user is active.
 				hasFocus: true,
 
-				// Timestamp, last time the user was active. Checked every 30 sec.
+				// Timestamp, last time the user was active. Checked every 30 seconds.
 				userActivity: 0,
 
 				// Flag whether events tracking user activity were set.
@@ -106,11 +106,10 @@
 		/**
 		 * Sets local variables and events, then starts the heartbeat.
 		 *
+		 * @since 3.8.0
 		 * @access private
 		 *
-		 * @since 3.8.0
-		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function initialize() {
 			var options, hidden, visibilityState, visibilitychange;
@@ -133,9 +132,8 @@
 				}
 
 				/*
-				 * The interval can be from 15 to 120 sec. and can be set temporarily to 5 sec.
-				 * It can be set in the initial options or changed later through JS and/or
-				 * through PHP.
+				 * The interval can be from 15 to 120 seconds and can be set temporarily to 5 seconds.
+				 * It can be set in the initial options or changed later through JS and/or through PHP.
 				 */
 				if ( options.interval ) {
 					settings.mainInterval = options.interval;
@@ -148,12 +146,12 @@
 				}
 
 				/*
-				 * Used to limit the number of AJAX requests. Overrides all other intervals if
-				 * they are shorter. Needed for some hosts that cannot handle frequent requests
-				 * and the user may exceed the allocated server CPU time, etc. The minimal
-				 * interval can be up to 600 sec. however setting it to longer than 120 sec.
-				 * will limit or disable some of the functionality (like post locks). Once set
-				 * at initialization, minimalInterval cannot be changed/overridden.
+				 * Used to limit the number of Ajax requests. Overrides all other intervals
+				 * if they are shorter. Needed for some hosts that cannot handle frequent requests
+				 * and the user may exceed the allocated server CPU time, etc. The minimal interval
+				 * can be up to 600 seconds, however setting it to longer than 120 seconds
+				 * will limit or disable some of the functionality (like post locks).
+				 * Once set at initialization, minimalInterval cannot be changed/overridden.
 				 */
 				if ( options.minimalInterval ) {
 					options.minimalInterval = parseInt( options.minimalInterval, 10 );
@@ -189,11 +187,11 @@
 				hidden = 'hidden';
 				visibilitychange = 'visibilitychange';
 				visibilityState = 'visibilityState';
-			} else if ( typeof document.msHidden !== 'undefined' ) { // IE10
+			} else if ( typeof document.msHidden !== 'undefined' ) { // IE10.
 				hidden = 'msHidden';
 				visibilitychange = 'msvisibilitychange';
 				visibilityState = 'msVisibilityState';
-			} else if ( typeof document.webkitHidden !== 'undefined' ) { // Android
+			} else if ( typeof document.webkitHidden !== 'undefined' ) { // Android.
 				hidden = 'webkitHidden';
 				visibilitychange = 'webkitvisibilitychange';
 				visibilityState = 'webkitVisibilityState';
@@ -245,11 +243,10 @@
 		/**
 		 * Returns the current time according to the browser.
 		 *
+		 * @since 3.6.0
 		 * @access private
 		 *
-		 * @since 3.6.0
-		 *
-		 * @returns {number} Returns the current time.
+		 * @return {number} Returns the current time.
 		 */
 		function time() {
 			return (new Date()).getTime();
@@ -258,11 +255,10 @@
 		/**
 		 * Checks if the iframe is from the same origin.
 		 *
+		 * @since 3.6.0
 		 * @access private
 		 *
-		 * @since 3.6.0
-		 *
-		 * @returns {boolean} Returns whether or not the iframe is from the same origin.
+		 * @return {boolean} Returns whether or not the iframe is from the same origin.
 		 */
 		function isLocalFrame( frame ) {
 			var origin, src = frame.src;
@@ -291,11 +287,10 @@
 		/**
 		 * Checks if the document's focus has changed.
 		 *
+		 * @since 4.1.0
 		 * @access private
 		 *
-		 * @since 4.1.0
-		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function checkFocus() {
 			if ( settings.hasFocus && ! document.hasFocus() ) {
@@ -308,15 +303,14 @@
 		/**
 		 * Sets error state and fires an event on XHR errors or timeout.
 		 *
+		 * @since 3.8.0
 		 * @access private
 		 *
-		 * @since 3.8.0
-		 *
 		 * @param {string} error  The error type passed from the XHR.
 		 * @param {number} status The HTTP status code passed from jqXHR
 		 *                        (200, 404, 500, etc.).
 		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function setErrorState( error, status ) {
 			var trigger;
@@ -327,7 +321,7 @@
 						// Do nothing.
 						break;
 					case 'timeout':
-						// No response for 30 sec.
+						// No response for 30 seconds.
 						trigger = true;
 						break;
 					case 'error':
@@ -359,11 +353,10 @@
 		/**
 		 * Clears the error state and fires an event if there is a connection error.
 		 *
+		 * @since 3.8.0
 		 * @access private
 		 *
-		 * @since 3.8.0
-		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function clearErrorState() {
 			// Has connected successfully.
@@ -380,11 +373,10 @@
 		/**
 		 * Gathers the data and connects to the server.
 		 *
+		 * @since 3.6.0
 		 * @access private
 		 *
-		 * @since 3.6.0
-		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function connect() {
 			var ajaxData, heartbeatData;
@@ -421,7 +413,7 @@
 			settings.xhr = $.ajax({
 				url: settings.url,
 				type: 'post',
-				timeout: 30000, // throw an error if not completed after 30 sec.
+				timeout: 30000, // Throw an error if not completed after 30 seconds.
 				data: ajaxData,
 				dataType: 'json'
 			}).always( function() {
@@ -442,7 +434,7 @@
 					wp.hooks.doAction( 'heartbeat.nonces-expired' );
 				}
 
-				// Change the interval from PHP
+				// Change the interval from PHP.
 				if ( response.heartbeat_interval ) {
 					newInterval = response.heartbeat_interval;
 					delete response.heartbeat_interval;
@@ -464,7 +456,7 @@
 				$document.trigger( 'heartbeat-tick', [response, textStatus, jqXHR] );
 				wp.hooks.doAction( 'heartbeat.tick', response, textStatus, jqXHR );
 
-				// Do this last. Can trigger the next XHR if connection time > 5 sec. and newInterval == 'fast'.
+				// Do this last. Can trigger the next XHR if connection time > 5 seconds and newInterval == 'fast'.
 				if ( newInterval ) {
 					interval( newInterval );
 				}
@@ -480,11 +472,10 @@
 		 *
 		 * Fires immediately if the connection time is longer than the interval.
 		 *
+		 * @since 3.8.0
 		 * @access private
 		 *
-		 * @since 3.8.0
-		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function scheduleNextTick() {
 			var delta = time() - settings.lastTick,
@@ -495,7 +486,7 @@
 			}
 
 			if ( ! settings.hasFocus ) {
-				interval = 120000; // 120 sec. Post locks expire after 150 sec.
+				interval = 120000; // 120 seconds. Post locks expire after 150 seconds.
 			} else if ( settings.countdown > 0 && settings.tempInterval ) {
 				interval = settings.tempInterval;
 				settings.countdown--;
@@ -526,11 +517,10 @@
 		/**
 		 * Sets the internal state when the browser window becomes hidden or loses focus.
 		 *
+		 * @since 3.6.0
 		 * @access private
 		 *
-		 * @since 3.6.0
-		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function blurred() {
 			settings.hasFocus = false;
@@ -539,16 +529,15 @@
 		/**
 		 * Sets the internal state when the browser window becomes visible or is in focus.
 		 *
+		 * @since 3.6.0
 		 * @access private
 		 *
-		 * @since 3.6.0
-		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function focused() {
 			settings.userActivity = time();
 
-			// Resume if suspended
+			// Resume if suspended.
 			settings.suspend = false;
 
 			if ( ! settings.hasFocus ) {
@@ -560,11 +549,10 @@
 		/**
 		 * Runs when the user becomes active after a period of inactivity.
 		 *
+		 * @since 3.6.0
 		 * @access private
 		 *
-		 * @since 3.6.0
-		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function userIsActive() {
 			settings.userActivityEvents = false;
@@ -582,26 +570,25 @@
 		/**
 		 * Checks for user activity.
 		 *
-		 * Runs every 30 sec. Sets 'hasFocus = true' if user is active and the window is
-		 * in the background. Sets 'hasFocus = false' if the user has been inactive
-		 * (no mouse or keyboard activity) for 5 min. even when the window has focus.
+		 * Runs every 30 seconds. Sets 'hasFocus = true' if user is active and the window
+		 * is in the background. Sets 'hasFocus = false' if the user has been inactive
+		 * (no mouse or keyboard activity) for 5 minutes even when the window has focus.
 		 *
+		 * @since 3.8.0
 		 * @access private
 		 *
-		 * @since 3.8.0
-		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function checkUserActivity() {
 			var lastActive = settings.userActivity ? time() - settings.userActivity : 0;
 
-			// Throttle down when no mouse or keyboard activity for 5 min.
+			// Throttle down when no mouse or keyboard activity for 5 minutes.
 			if ( lastActive > 300000 && settings.hasFocus ) {
 				blurred();
 			}
 
-			// Suspend after 10 min. of inactivity when suspending is enabled.
-			// Always suspend after 60 min. of inactivity. This will release the post lock, etc.
+			// Suspend after 10 minutes of inactivity when suspending is enabled.
+			// Always suspend after 60 minutes of inactivity. This will release the post lock, etc.
 			if ( ( settings.suspendEnabled && lastActive > 600000 ) || lastActive > 3600000 ) {
 				settings.suspend = true;
 			}
@@ -632,7 +619,7 @@
 		 * @since 3.6.0
 		 * @memberOf wp.heartbeat.prototype
 		 *
-		 * @returns {boolean} True if the window or the user is active.
+		 * @return {boolean} True if the window or the user is active.
 		 */
 		function hasFocus() {
 			return settings.hasFocus;
@@ -645,7 +632,7 @@
 		 *
 		 * @memberOf wp.heartbeat.prototype
 		 *
-		 * @returns {boolean} True if a connection error was found.
+		 * @return {boolean} True if a connection error was found.
 		 */
 		function hasConnectionError() {
 			return settings.connectionError;
@@ -661,7 +648,7 @@
 		 *
 		 * @memberOf wp.heartbeat.prototype
 		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function connectNow() {
 			settings.lastTick = 0;
@@ -672,15 +659,15 @@
 		 * Disables suspending.
 		 *
 		 * Should be used only when Heartbeat is performing critical tasks like
-		 * autosave, post-locking, etc. Using this on many screens may overload the
-		 * user's hosting account if several browser windows/tabs are left open for a
-		 * long time.
+		 * autosave, post-locking, etc. Using this on many screens may overload
+		 * the user's hosting account if several browser windows/tabs are left open
+		 * for a long time.
 		 *
 		 * @since 3.8.0
 		 *
 		 * @memberOf wp.heartbeat.prototype
 		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function disableSuspend() {
 			settings.suspendEnabled = false;
@@ -691,19 +678,19 @@
 		 *
 		 * When setting to 'fast' or 5, the interval is 5 seconds for the next 30 ticks
 		 * (for 2 minutes and 30 seconds) by default. In this case the number of 'ticks'
-		 * can be passed as second argument. If the window doesn't have focus, the
-		 * interval slows down to 2 min.
+		 * can be passed as second argument. If the window doesn't have focus,
+		 * the interval slows down to 2 minutes.
 		 *
 		 * @since 3.6.0
 		 *
 		 * @memberOf wp.heartbeat.prototype
 		 *
-		 * @param {string|number} speed Interval: 'fast' or 5, 15, 30, 60, 120. Fast
-		 *                              equals 5.
+		 * @param {string|number} speed Interval: 'fast' or 5, 15, 30, 60, 120.
+		 *                              Fast equals 5.
 		 * @param {string}        ticks Tells how many ticks before the interval reverts
 		 *                              back. Used with speed = 'fast' or 5.
 		 *
-		 * @returns {number} Current interval in seconds.
+		 * @return {number} Current interval in seconds.
 		 */
 		function interval( speed, ticks ) {
 			var newInterval,
@@ -728,7 +715,7 @@
 						newInterval = 120000;
 						break;
 					case 'long-polling':
-						// Allow long polling, (experimental)
+						// Allow long polling (experimental).
 						settings.mainInterval = 0;
 						return 0;
 					default:
@@ -751,9 +738,11 @@
 					settings.mainInterval = newInterval;
 				}
 
-				// Change the next connection time if new interval has been set.
-				// Will connect immediately if the time since the last connection
-				// is greater than the new interval.
+				/*
+				 * Change the next connection time if new interval has been set.
+				 * Will connect immediately if the time since the last connection
+				 * is greater than the new interval.
+				 */
 				if ( newInterval !== oldInterval ) {
 					scheduleNextTick();
 				}
@@ -784,7 +773,7 @@
 		 * @param {*}       data        The data to send.
 		 * @param {boolean} noOverwrite Whether to overwrite existing data in the queue.
 		 *
-		 * @returns {boolean} True if the data was queued.
+		 * @return {boolean} True if the data was queued.
 		 */
 		function enqueue( handle, data, noOverwrite ) {
 			if ( handle ) {
@@ -805,7 +794,7 @@
 		 *
 		 * @param {string} handle The handle for the data.
 		 *
-		 * @returns {boolean} True if the data is queued with this handle.
+		 * @return {boolean} True if the data is queued with this handle.
 		 */
 		function isQueued( handle ) {
 			if ( handle ) {
@@ -822,7 +811,7 @@
 		 *
 		 * @param {string} handle The handle for the data.
 		 *
-		 * @returns {void}
+		 * @return {void}
 		 */
 		function dequeue( handle ) {
 			if ( handle ) {
@@ -839,7 +828,7 @@
 		 *
 		 * @param {string} handle The handle for the data.
 		 *
-		 * @returns {*} The data or undefined.
+		 * @return {*} The data or undefined.
 		 */
 		function getQueuedItem( handle ) {
 			if ( handle ) {