Make WordPress Core

Ticket #31687: 31687.4.diff

File 31687.4.diff, 2.1 KB (added by mattwiebe, 10 years ago)
  • wp-admin/js/customize-controls.js

     
    19291929
    19301930                        this.query = $.extend( params.query || {}, { customize_messenger_channel: this.channel() });
    19311931
    1932                         // This avoids SecurityErrors when setting a window object in x-origin iframe'd scenarios.
    1933                         this.targetWindow.set = function( to ) {
    1934                                 var from = this._value;
    1935 
    1936                                 to = this._setter.apply( this, arguments );
    1937                                 to = this.validate( to );
    1938 
    1939                                 if ( null === to || from === to ) {
    1940                                         return this;
    1941                                 }
    1942 
    1943                                 this._value = to;
    1944                                 this._dirty = true;
    1945 
    1946                                 this.callbacks.fireWith( this, [ to, from ] );
    1947 
    1948                                 return this;
    1949                         };
    1950 
    19511932                        this.run( deferred );
    19521933                },
    19531934
  • wp-includes/js/customize-base.js

     
    538538
    539539                        this.add( 'channel', params.channel );
    540540                        this.add( 'url', params.url || '' );
    541                         this.add( 'targetWindow', params.targetWindow || defaultTarget );
    542541                        this.add( 'origin', this.url() ).link( this.url ).setter( function( to ) {
    543542                                return to.replace( /([^:]+:\/\/[^\/]+).*/, '$1' );
    544543                        });
    545544
     545                        // first add with no value
     546                        this.add( 'targetWindow', null );
     547                        // This avoids SecurityErrors when setting a window object in x-origin iframe'd scenarios.
     548                        this.targetWindow.set = function( to ) {
     549                                var from = this._value;
     550
     551                                to = this._setter.apply( this, arguments );
     552                                to = this.validate( to );
     553
     554                                if ( null === to || from === to ) {
     555                                        return this;
     556                                }
     557
     558                                this._value = to;
     559                                this._dirty = true;
     560
     561                                this.callbacks.fireWith( this, [ to, from ] );
     562
     563                                return this;
     564                        };
     565                        // now set it
     566                        this.targetWindow( params.targetWindow || defaultTarget );
     567
     568
    546569                        // Since we want jQuery to treat the receive function as unique
    547570                        // to this instance, we give the function a new guid.
    548571                        //