WordPress.org

Make WordPress Core

Ticket #36638: 36638.5.patch

File 36638.5.patch, 4.5 KB (added by azaozz, 3 years ago)
  • src/wp-admin/includes/ajax-actions.php

     
    38753875                $href = get_bloginfo( 'url' ) . $href;
    38763876        }
    38773877
    3878         $response = wp_safe_remote_get( $href, array(
     3878        $response = wp_remote_get( $href, array(
    38793879                'timeout' => 15,
    38803880                // Use an explicit user-agent
    38813881                'user-agent' => 'WordPress URL Test',
    38823882        ) );
    38833883
    3884         $message = null;
     3884        $error = false;
    38853885
    38863886        if ( is_wp_error( $response ) ) {
    3887                 $error = $response->get_error_message();
    3888 
    3889                 if ( strpos( $message, 'resolve host' ) !== false ) {
    3890                         $message = array( 'error' => __( 'Invalid host name.' ) );
     3887                if ( strpos( $response->get_error_message(), 'resolve host' ) !== false ) {
     3888                        $error = true;
    38913889                }
    3892 
    3893                 wp_send_json_error( $message );
     3890        } elseif ( wp_remote_retrieve_response_code( $response ) === 404 ) {
     3891                $error = true;
    38943892        }
    38953893
    3896         if ( wp_remote_retrieve_response_code( $response ) === 404 ) {
    3897                 wp_send_json_error( array( 'error' => __( 'Not found, HTTP error 404.' ) ) );
     3894        if ( $error ) {
     3895                wp_send_json_error( array( 'httpError' => true ) );
    38983896        }
    38993897
    39003898        wp_send_json_success();
  • src/wp-includes/js/tinymce/plugins/wplink/plugin.js

     
    9494                var doingUndoRedoTimer;
    9595                var $ = window.jQuery;
    9696                var urlErrors = {};
     97                var emailRegex = /^(mailto:)?[a-z0-9._%+-]+@[a-z0-9][a-z0-9.-]*\.[a-z]{2,63}$/i;
    9798
    9899                function getSelectedLink() {
    99100                        var href, html,
     
    155156                                return;
    156157                        }
    157158
    158                         // Early check
    159                         if ( /^http/i.test( href ) && ! /\.[a-z]{2,63}(\/|$)/i.test( href ) ) {
    160                                 urlErrors[href] = tinymce.translate( 'Invalid host name.' );
     159                        if ( /^http/i.test( href ) && ! /^https?:\/\/[a-z0-9][a-z0-9.-]*\.[a-z]{2,63}(\/|$)/i.test( href ) ) {
     160                                urlErrors[href] = true;
    161161                        }
    162162
    163163                        if ( urlErrors.hasOwnProperty( href ) ) {
     
    179179                                        return;
    180180                                }
    181181
    182                                 if ( response.data && response.data.error ) {
    183                                         urlErrors[href] = response.data.error;
     182                                if ( response.data && response.data.httpError ) {
     183                                        urlErrors[href] = true;
    184184                                        $link.attr( 'data-wplink-url-error', 'true' );
    185185
    186186                                        if ( toolbar && toolbar.visible() ) {
    187                                                 toolbar.$el.find( '.wp-link-preview a' ).addClass( 'wplink-url-error' ).attr( 'title', editor.dom.encode( response.data.error ) );
     187                                                toolbar.$el.find( '.wp-link-preview a' ).addClass( 'wplink-url-error' );
    188188                                        }
    189189                                }
    190190                        });
     
    274274                                        return;
    275275                                }
    276276
    277                                 if ( ! /^(?:[a-z]+:|#|\?|\.|\/)/.test( href ) ) {
     277                                if ( ! /^(?:[a-z]+:|#|\?|\.|\/)/.test( href ) && ! emailRegex.test( href ) ) {
    278278                                        href = 'http://' + href;
    279279                                }
    280280
     
    536536
    537537                editor.on( 'wptoolbar', function( event ) {
    538538                        var linkNode = editor.dom.getParent( event.element, 'a' ),
    539                                 $linkNode, href, edit, title;
     539                                $linkNode, href, edit;
    540540
    541541                        if ( typeof window.wpLink !== 'undefined' && window.wpLink.modalOpen ) {
    542542                                editToolbar.tempHide = true;
     
    561561                                        previewInstance.setURL( href );
    562562                                        event.element = linkNode;
    563563                                        event.toolbar = toolbar;
    564                                         title = urlErrors.hasOwnProperty( href ) ? editor.dom.encode( urlErrors[ href ] ) : null;
    565564
    566565                                        if ( $linkNode.attr( 'data-wplink-url-error' ) === 'true' ) {
    567                                                 toolbar.$el.find( '.wp-link-preview a' ).addClass( 'wplink-url-error' ).attr( 'title', title );
     566                                                toolbar.$el.find( '.wp-link-preview a' ).addClass( 'wplink-url-error' );
    568567                                        } else {
    569                                                 toolbar.$el.find( '.wp-link-preview a' ).removeClass( 'wplink-url-error' ).attr( 'title', null );
     568                                                toolbar.$el.find( '.wp-link-preview a' ).removeClass( 'wplink-url-error' );
    570569                                        }
    571570                                }
    572571                        } else if ( editToolbar.visible() ) {
  • src/wp-includes/js/wplink.js

     
    22
    33( function( $, wpLinkL10n, wp ) {
    44        var editor, searchTimer, River, Query, correctedURL, linkNode,
    5                 emailRegexp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i,
    6                 urlRegexp = /^(https?|ftp):\/\/[A-Z0-9.-]+\.[A-Z]{2,4}[^ "]*$/i,
     5                emailRegexp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,63}$/i,
     6                urlRegexp = /^(https?|ftp):\/\/[A-Z0-9.-]+\.[A-Z]{2,63}[^ "]*$/i,
    77                inputs = {},
    88                rivers = {},
    99                isTouch = ( 'ontouchend' in document );