WordPress.org

Make WordPress Core

Ticket #44364: 44364.diff

File 44364.diff, 3.8 KB (added by pskli, 3 years ago)
  • src/js/_enqueues/lib/auth-check.js

     
    33(function($){
    44        var wrap, next;
    55
     6        /**
     7         * Shows the authentification form popup.
     8         *
     9         * @since 3.6
     10         */
    611        function show() {
    712                var parent = $('#wp-auth-check'),
    813                        form = $('#wp-auth-check-form'),
     
    1015                        frame, loaded = false;
    1116
    1217                if ( form.length ) {
    13                         // Add unload confirmation to counter (frame-busting) JS redirects
     18                        // Add unload confirmation to counter (frame-busting) JS redirects.
    1419                        $(window).on( 'beforeunload.wp-auth-check', function(e) {
    1520                                e.originalEvent.returnValue = window.authcheckL10n.beforeunload;
    1621                        });
     
    4045                                        else
    4146                                                parent.css( 'max-height', height + 40 + 'px' );
    4247                                } else if ( ! body || ! body.length ) {
    43                                         // Catch "silent" iframe origin exceptions in WebKit after another page is loaded in the iframe
     48                                        // Catch "silent" iframe origin exceptions in WebKit after another page is
     49                                        // loaded in the iframe.
    4450                                        wrap.addClass('fallback');
    4551                                        parent.css( 'max-height', '' );
    4652                                        form.remove();
     
    5662
    5763                if ( frame ) {
    5864                        frame.focus();
    59                         // WebKit doesn't throw an error if the iframe fails to load because of "X-Frame-Options: DENY" header.
     65                        // WebKit doesn't throw an error if the iframe fails to load because of
     66                        // "X-Frame-Options: DENY" header.
    6067                        // Wait for 10 sec. and switch to the fallback text.
    6168                        setTimeout( function() {
    6269                                if ( ! loaded ) {
     
    7077                }
    7178        }
    7279
     80        /**
     81         * Hides the authentification form popup.
     82         *
     83         * @since 3.6
     84         */
    7385        function hide() {
    7486                $(window).off( 'beforeunload.wp-auth-check' );
    7587
    76                 // When on the Edit Post screen, speed up heartbeat after the user logs in to quickly refresh nonces
     88                // When on the Edit Post screen, speed up heartbeat after the user logs in to
     89                // quickly refresh nonces.
    7790                if ( typeof adminpage !== 'undefined' && ( adminpage === 'post-php' || adminpage === 'post-new-php' ) &&
    7891                        typeof wp !== 'undefined' && wp.heartbeat ) {
    7992
     
    88101                });
    89102        }
    90103
     104        /**
     105         * Schedules the next time authentification check will be done.
     106         *
     107         * @since 3.6
     108         */
    91109        function schedule() {
    92                 var interval = parseInt( window.authcheckL10n.interval, 10 ) || 180; // in seconds, default 3 min.
     110                // In seconds, default 3 min.
     111                var interval = parseInt( window.authcheckL10n.interval, 10 ) || 180;
    93112                next = ( new Date() ).getTime() + ( interval * 1000 );
    94113        }
    95114
     115        /**
     116         * Binds to the Heartbeat Tick event.
     117         * Shows the authentification form popup if user is not logged in.
     118         * Hides the authentification form popup if it is already visible and user
     119         * is logged in.
     120         *
     121         * @since 3.6
     122         *
     123         * @param {object} e The heartbeat-tick event that has been triggered.
     124         * @param {object} data Response data.
     125         */
    96126        $( document ).on( 'heartbeat-tick.wp-auth-check', function( e, data ) {
    97127                if ( 'wp-auth-check' in data ) {
    98128                        schedule();
     
    102132                                hide();
    103133                        }
    104134                }
     135
     136        /**
     137         * Binds to the Heartbeat Send event.
     138         *
     139         * @since 3.6
     140         *
     141         * @param {object} e The heartbeat-send event that has been triggered.
     142         * @param {object} data Response data.
     143         */
    105144        }).on( 'heartbeat-send.wp-auth-check', function( e, data ) {
    106145                if ( ( new Date() ).getTime() > next ) {
    107146                        data['wp-auth-check'] = true;
    108147                }
     148       
     149        /**
     150         * Binds to the document ready event.
     151         *
     152         * @since 3.6
     153         */
    109154        }).ready( function() {
    110155                schedule();
     156
     157                /**
     158                 * Hides the authentification form popup when the close icon is clicked.
     159                 *
     160                 * @since 3.6
     161                 *
     162                 * @listens .wp-auth-check-close:click
     163                 */
    111164                wrap = $('#wp-auth-check-wrap');
    112165                wrap.find('.wp-auth-check-close').on( 'click', function() {
    113166                        hide();