WordPress.org

Make WordPress Core

Ticket #20892: 20892.diff

File 20892.diff, 5.3 KB (added by koopersmith, 6 years ago)
  • wp-includes/js/customize-base.dev.js

     
    192192                },
    193193
    194194                setter: function( callback ) {
     195                        var from = this.get();
    195196                        this._setter = callback;
    196                         this.set( this.get() );
     197                        // Temporarily clear value so setter can decide if it's valid.
     198                        this._value = null;
     199                        this.set( from );
    197200                        return this;
    198201                },
    199202
  • wp-admin/js/customize-controls.dev.js

     
    301301
    302302                        api.Messenger.prototype.initialize.call( this, params, options );
    303303
     304                        this.add( 'previewUrl', params.previewUrl );
     305
    304306                        this.bind( 'ready', function() {
    305307                                ready = true;
    306308
     
    310312
    311313                        params.query = $.extend( params.query || {}, { customize_messenger_channel: this.channel() });
    312314
    313                         this.request = $.ajax( this.url(), {
     315                        this.request = $.ajax( this.previewUrl(), {
    314316                                type: 'POST',
    315317                                data: params.query,
    316318                                xhrFields: {
     
    329331
    330332                                // Check if the location response header differs from the current URL.
    331333                                // If so, the request was redirected; try loading the requested page.
    332                                 if ( location && location != self.url() ) {
     334                                if ( location && location != self.previewUrl() ) {
    333335                                        deferred.rejectWith( self, [ 'redirect', location ] );
    334336                                        return;
    335337                                }
     
    410412
    411413                /**
    412414                 * Requires params:
    413                  *  - container - a selector or jQuery element
    414                  *  - url      - the URL of preview frame
     415                 *  - container  - a selector or jQuery element
     416                 *  - previewUrl - the URL of preview frame
    415417                 */
    416418                initialize: function( params, options ) {
    417419                        var self = this,
     
    457459                        this.container   = api.ensure( params.container );
    458460                        this.allowedUrls = params.allowedUrls;
    459461
    460                         url = params.url;
    461                         delete params.url;
     462                        params.url = window.location.href;
    462463
    463464                        api.Messenger.prototype.initialize.call( this, params );
    464465
    465                         // We're dynamically generating the iframe, so the origin is set
    466                         // to the current window's location, not the url's.
    467                         this.origin.unlink( this.url ).set( window.location.href );
    468 
    469466                        this.add( 'scheme', this.origin() ).link( this.origin ).setter( function( to ) {
    470467                                var match = to.match( rscheme );
    471468                                return match ? match[0] : '';
     
    479476                        // are on different domains to avoid the case where the frontend doesn't have
    480477                        // ssl certs.
    481478
    482                         this.url.setter( function( to ) {
     479                        this.add( 'previewUrl', params.previewUrl ).setter( function( to ) {
    483480                                var result;
    484481
    485482                                // Check for URLs that include "/wp-admin/" or end in "/wp-admin".
     
    504501                                return result ? result : null;
    505502                        });
    506503
    507                         // Set the url.
    508                         this.url( url );
    509 
    510504                        // Refresh the preview when the URL is changed (but not yet).
    511                         this.url.bind( this.refresh );
     505                        this.previewUrl.bind( this.refresh );
    512506
    513507                        this.scroll = 0;
    514508                        this.bind( 'scroll', function( distance ) {
     
    516510                        });
    517511
    518512                        // Update the URL when the iframe sends a URL message.
    519                         this.bind( 'url', this.url );
     513                        this.bind( 'url', this.previewUrl );
    520514                },
    521515
    522516                query: function() {},
     
    534528                        this.abort();
    535529
    536530                        this.loading = new api.PreviewFrame({
    537                                 url:       this.url(),
    538                                 query:     this.query() || {},
    539                                 previewer: this
     531                                url:        this.url(),
     532                                previewUrl: this.previewUrl(),
     533                                query:      this.query() || {},
     534                                previewer:  this
    540535                        });
    541536
    542537                        this.loading.done( function() {
    543538                                // 'this' is the loading frame
    544539                                this.bind( 'synced', function() {
    545                                         if ( self.iframe )
    546                                                 self.iframe.destroy();
    547                                         self.iframe = this;
     540                                        if ( self.preview )
     541                                                self.preview.destroy();
     542                                        self.preview = this;
    548543                                        delete self.loading;
    549544
    550545                                        self.targetWindow( this.targetWindow() );
     
    559554
    560555                        this.loading.fail( function( reason, location ) {
    561556                                if ( 'redirect' === reason && location )
    562                                         self.url( location );
     557                                        self.previewUrl( location );
    563558
    564559                                if ( 'logged out' === reason ) {
    565                                         if ( self.iframe ) {
    566                                                 self.iframe.destroy();
    567                                                 delete self.iframe;
     560                                        if ( self.preview ) {
     561                                                self.preview.destroy();
     562                                                delete self.preview;
    568563                                        }
    569564
    570565                                        self.login().done( self.refresh );
     
    648643                previewer = new api.Previewer({
    649644                        container:   '#customize-preview',
    650645                        form:        '#customize-controls',
    651                         url:         api.settings.url.preview,
     646                        previewUrl:  api.settings.url.preview,
    652647                        allowedUrls: api.settings.url.allowed
    653648                }, {
    654649                        query: function() {
     
    680675                                request.done( function( response ) {
    681676                                        // Check if the user is logged out.
    682677                                        if ( '0' === response ) {
    683                                                 self.iframe.iframe.hide();
     678                                                self.preview.iframe.hide();
    684679                                                self.login().done( function() {
    685680                                                        self.save();
    686                                                         self.iframe.iframe.show();
     681                                                        self.preview.iframe.show();
    687682                                                });
    688683                                                return;
    689684                                        }
     
    717712                });
    718713
    719714                // Check if preview url is valid and load the preview frame.
    720                 if ( previewer.url() )
     715                if ( previewer.previewUrl() )
    721716                        previewer.refresh();
    722717                else
    723                         previewer.url( api.settings.url.home );
     718                        previewer.previewUrl( api.settings.url.home );
    724719
    725720                // Save and activated states
    726721                (function() {