WordPress.org

Make WordPress Core

Ticket #37240: 37240.2.diff

File 37240.2.diff, 5.0 KB (added by peterwilsoncc, 4 years ago)
  • src/wp-includes/general-template.php

    diff --git src/wp-includes/general-template.php src/wp-includes/general-template.php
    index 4f2be9f..cef554c 100644
    function wp_resource_hints() { 
    28152815                 * @param string $relation_type The relation type the URLs are printed for, e.g. 'preconnect' or 'prerender'.
    28162816                 */
    28172817                $urls = apply_filters( 'wp_resource_hints', $urls, $relation_type );
    2818                 $urls = array_unique( $urls );
    28192818
    2820                 foreach ( $urls as $url ) {
     2819                foreach ( $urls as $key => $url ) {
    28212820                        $url = esc_url( $url, array( 'http', 'https' ) );
    28222821
    28232822                        if ( in_array( $relation_type, array( 'preconnect', 'dns-prefetch' ) ) ) {
    function wp_resource_hints() { 
    28262825                                        continue;
    28272826                                }
    28282827
    2829                                 if ( ! empty( $parsed['scheme'] ) ) {
     2828                                if ( 'dns-prefetch' === $relation_type ) {
     2829                                        $url = '//' . $parsed['host'];
     2830                                } else if ( ! empty( $parsed['scheme'] ) ) {
    28302831                                        $url = $parsed['scheme'] . '://' . $parsed['host'];
    28312832                                } else {
    28322833                                        $url = $parsed['host'];
    28332834                                }
    28342835                        }
    28352836
    2836                         printf( "<link rel='%s' href='%s'>\r\n", $relation_type, $url );
     2837                        $urls[ $key ] = $url;
     2838                }
     2839
     2840                $urls = array_unique( $urls );
     2841
     2842                foreach ( $urls as $url ) {
     2843                        printf( "<link rel='%s' href='%s'>\n", $relation_type, $url );
    28372844                }
    28382845        }
    28392846}
  • tests/phpunit/tests/general/resourceHints.php

    diff --git tests/phpunit/tests/general/resourceHints.php tests/phpunit/tests/general/resourceHints.php
    index 351e6df..f75e199 100644
    class Tests_WP_Resource_Hints extends WP_UnitTestCase { 
    3131        }
    3232
    3333        function test_should_have_defaults_on_frontend() {
    34                 $expected = "<link rel='preconnect' href='http://s.w.org'>\r\n";
     34                $expected = "<link rel='preconnect' href='http://s.w.org'>\n";
    3535
    3636                $this->expectOutputString( $expected );
    3737
    class Tests_WP_Resource_Hints extends WP_UnitTestCase { 
    3939        }
    4040
    4141        function test_dns_prefetching() {
    42                 $expected = "<link rel='dns-prefetch' href='http://wordpress.org'>\r\n" .
    43                                         "<link rel='dns-prefetch' href='https://google.com'>\r\n" .
    44                                         "<link rel='dns-prefetch' href='make.wordpress.org'>\r\n" .
    45                                         "<link rel='preconnect' href='http://s.w.org'>\r\n";
     42                $expected = "<link rel='dns-prefetch' href='//wordpress.org'>\n" .
     43                                        "<link rel='dns-prefetch' href='//google.com'>\n" .
     44                                        "<link rel='dns-prefetch' href='//make.wordpress.org'>\n" .
     45                                        "<link rel='preconnect' href='http://s.w.org'>\n";
    4646
    4747                add_filter( 'wp_resource_hints', array( $this, '_add_dns_prefetch_domains' ), 10, 2 );
    4848
    class Tests_WP_Resource_Hints extends WP_UnitTestCase { 
    5656        function _add_dns_prefetch_domains( $hints, $method ) {
    5757                if ( 'dns-prefetch' === $method ) {
    5858                        $hints[] = 'http://wordpress.org';
     59                        $hints[] = 'https://wordpress.org';
    5960                        $hints[] = 'https://google.com';
    6061                        $hints[] = '//make.wordpress.org';
     62                        $hints[] = 'https://wordpress.org/plugins/';
    6163                }
    6264
    6365                return $hints;
    6466        }
    6567
    6668        function test_prerender() {
    67                 $expected = "<link rel='preconnect' href='http://s.w.org'>\r\n" .
    68                                         "<link rel='prerender' href='https://make.wordpress.org/great-again'>\r\n" .
    69                                         "<link rel='prerender' href='http://jobs.wordpress.net'>\r\n" .
    70                                         "<link rel='prerender' href='//core.trac.wordpress.org'>\r\n";
     69                $expected = "<link rel='preconnect' href='http://s.w.org'>\n" .
     70                                        "<link rel='prerender' href='https://make.wordpress.org/great-again'>\n" .
     71                                        "<link rel='prerender' href='http://jobs.wordpress.net'>\n" .
     72                                        "<link rel='prerender' href='//core.trac.wordpress.org'>\n";
    7173
    7274                add_filter( 'wp_resource_hints', array( $this, '_add_prerender_urls' ), 10, 2 );
    7375
    class Tests_WP_Resource_Hints extends WP_UnitTestCase { 
    8991        }
    9092
    9193        function test_parse_url_dns_prefetch() {
    92                 $expected = "<link rel='dns-prefetch' href='http://make.wordpress.org'>\r\n" .
    93                                         "<link rel='preconnect' href='http://s.w.org'>\r\n";
     94                $expected = "<link rel='dns-prefetch' href='//make.wordpress.org'>\n" .
     95                                        "<link rel='preconnect' href='http://s.w.org'>\n";
    9496
    9597                add_filter( 'wp_resource_hints', array( $this, '_add_dns_prefetch_long_urls' ), 10, 2 );
    9698
    class Tests_WP_Resource_Hints extends WP_UnitTestCase { 
    110112        }
    111113
    112114        function test_dns_prefetch_styles() {
    113                 $expected = "<link rel='dns-prefetch' href='http://fonts.googleapis.com'>\r\n" .
    114                                         "<link rel='preconnect' href='http://s.w.org'>\r\n";
     115                $expected = "<link rel='dns-prefetch' href='//fonts.googleapis.com'>\n" .
     116                                        "<link rel='preconnect' href='http://s.w.org'>\n";
    115117
    116118                $args = array(
    117119                        'family' => 'Open+Sans:400',
    class Tests_WP_Resource_Hints extends WP_UnitTestCase { 
    129131        }
    130132
    131133        function test_dns_prefetch_scripts() {
    132                 $expected = "<link rel='dns-prefetch' href='http://fonts.googleapis.com'>\r\n" .
    133                                         "<link rel='preconnect' href='http://s.w.org'>\r\n";
     134                $expected = "<link rel='dns-prefetch' href='//fonts.googleapis.com'>\n" .
     135                                        "<link rel='preconnect' href='http://s.w.org'>\n";
    134136
    135137                $args = array(
    136138                        'family' => 'Open+Sans:400',