mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
Administration: Remove deprecated unload event handlers and use pagehide (and pageshow) when appropriate.
Use `pagehide` event instead of `unload` in the following cases: * For classic editor to release the post lock. * In Text widget to rebuild editor after dragging widget to new location in classic widgets interface. * To clear out the `window.name` when navigating away from a post preview. * To suspend heartbeat, while also using `pageshow` event to resume as if it had been a focused tab in case page restored from bfcache. Also: * Remove obsolete mobile cleanup code in `js/_enqueues/lib/gallery.js` (introduced in [9894]). Do same for `src/js/_enqueues/wp/media/models.js` (introduced in [22872]). See #22552. * Remove obsolete Firefox-specific workaround in `js/_enqueues/wp/mce-view.js` from [39282]. See #38511. Fixes #55491. Props spenserhale, westonruter, adamsilverstein, azaozz, shawfactor, peterwilsoncc, swissspidy. git-svn-id: https://develop.svn.wordpress.org/trunk@56809 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
9ec564607c
commit
fbe3732917
@ -511,7 +511,7 @@ jQuery( function($) {
|
||||
// See https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event.
|
||||
return __( 'The changes you made will be lost if you navigate away from this page.' );
|
||||
}
|
||||
}).on( 'unload.edit-post', function( event ) {
|
||||
}).on( 'pagehide.edit-post', function( event ) {
|
||||
if ( ! releaseLock ) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -88,8 +88,6 @@ jQuery( function($) {
|
||||
}
|
||||
});
|
||||
|
||||
jQuery(window).on( 'unload', function () { window.tinymce = window.tinyMCE = window.wpgallery = null; } ); // Cleanup.
|
||||
|
||||
/* gallery settings */
|
||||
window.tinymce = null;
|
||||
|
||||
|
||||
@ -223,9 +223,9 @@
|
||||
settings.checkFocusTimer = window.setInterval( checkFocus, 10000 );
|
||||
}
|
||||
|
||||
$(window).on( 'unload.wp-heartbeat', function() {
|
||||
$(window).on( 'pagehide.wp-heartbeat', function() {
|
||||
// Don't connect anymore.
|
||||
settings.suspend = true;
|
||||
suspend();
|
||||
|
||||
// Abort the last request if not completed.
|
||||
if ( settings.xhr && settings.xhr.readyState !== 4 ) {
|
||||
@ -233,6 +233,25 @@
|
||||
}
|
||||
});
|
||||
|
||||
$(window).on(
|
||||
'pageshow.wp-heartbeat',
|
||||
/**
|
||||
* Handles pageshow event, specifically when page navigation is restored from back/forward cache.
|
||||
*
|
||||
* @param {jQuery.Event} event
|
||||
* @param {PageTransitionEvent} event.originalEvent
|
||||
*/
|
||||
function ( event ) {
|
||||
if ( event.originalEvent.persisted ) {
|
||||
/*
|
||||
* When page navigation is stored via bfcache (Back/Forward Cache), consider this the same as
|
||||
* if the user had just switched to the tab since the behavior is similar.
|
||||
*/
|
||||
focused();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// Check for user activity every 30 seconds.
|
||||
window.setInterval( checkUserActivity, 30000 );
|
||||
|
||||
@ -541,7 +560,7 @@
|
||||
settings.userActivity = time();
|
||||
|
||||
// Resume if suspended.
|
||||
settings.suspend = false;
|
||||
resume();
|
||||
|
||||
if ( ! settings.hasFocus ) {
|
||||
settings.hasFocus = true;
|
||||
@ -549,6 +568,20 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Suspends connecting.
|
||||
*/
|
||||
function suspend() {
|
||||
settings.suspend = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resumes connecting.
|
||||
*/
|
||||
function resume() {
|
||||
settings.suspend = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs when the user becomes active after a period of inactivity.
|
||||
*
|
||||
@ -593,7 +626,7 @@
|
||||
// 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;
|
||||
suspend();
|
||||
}
|
||||
|
||||
if ( ! settings.userActivityEvents ) {
|
||||
|
||||
@ -643,16 +643,6 @@
|
||||
}, 3000 );
|
||||
}
|
||||
|
||||
function reload() {
|
||||
if ( ! editor.isHidden() ) {
|
||||
$( node ).data( 'rendered', null );
|
||||
|
||||
setTimeout( function() {
|
||||
wp.mce.views.render();
|
||||
} );
|
||||
}
|
||||
}
|
||||
|
||||
function addObserver() {
|
||||
observer = new MutationObserver( _.debounce( resize, 100 ) );
|
||||
|
||||
@ -663,7 +653,7 @@
|
||||
} );
|
||||
}
|
||||
|
||||
$( iframeWin ).on( 'load', resize ).on( 'unload', reload );
|
||||
$( iframeWin ).on( 'load', resize );
|
||||
|
||||
MutationObserver = iframeWin.MutationObserver || iframeWin.WebKitMutationObserver || iframeWin.MozMutationObserver;
|
||||
|
||||
|
||||
@ -2,8 +2,7 @@
|
||||
* @output wp-includes/js/media-models.js
|
||||
*/
|
||||
|
||||
var $ = jQuery,
|
||||
Attachment, Attachments, l10n, media;
|
||||
var Attachment, Attachments, l10n, media;
|
||||
|
||||
/** @namespace wp */
|
||||
window.wp = window.wp || {};
|
||||
@ -237,8 +236,3 @@ media.query = function( props ) {
|
||||
props: _.extend( _.defaults( props || {}, { orderby: 'date' } ), { query: true } )
|
||||
});
|
||||
};
|
||||
|
||||
// Clean up. Prevents mobile browsers caching.
|
||||
$(window).on('unload', function(){
|
||||
window.wp = null;
|
||||
});
|
||||
|
||||
@ -291,7 +291,7 @@ wp.textWidgets = ( function( $ ) {
|
||||
onInit = function() {
|
||||
|
||||
// When a widget is moved in the DOM the dynamically-created TinyMCE iframe will be destroyed and has to be re-built.
|
||||
$( editor.getWin() ).on( 'unload', function() {
|
||||
$( editor.getWin() ).on( 'pagehide', function() {
|
||||
_.defer( buildEditor );
|
||||
});
|
||||
|
||||
|
||||
@ -7585,7 +7585,7 @@ function wp_delete_file_from_directory( $file, $directory ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a small JS snippet on preview tabs/windows to remove `window.name` on unload.
|
||||
* Outputs a small JS snippet on preview tabs/windows to remove `window.name` when a user is navigating to another page.
|
||||
*
|
||||
* This prevents reusing the same tab for a preview when the user has navigated away.
|
||||
*
|
||||
@ -7614,7 +7614,7 @@ function wp_post_preview_js() {
|
||||
}
|
||||
|
||||
if ( window.addEventListener ) {
|
||||
window.addEventListener( 'unload', function() { window.name = ''; }, false );
|
||||
window.addEventListener( 'pagehide', function() { window.name = ''; } );
|
||||
}
|
||||
}());
|
||||
</script>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user