Make WordPress Core

Changeset 40892 for trunk


Ignore:
Timestamp:
06/09/2017 07:28:12 PM (7 years ago)
Author:
westonruter
Message:

Media: Restrict appending loop parameter to Vimeo URLs specifically and not all external URLs in Video widget (via shortcode).

Fixes issue where Video widgets embedding external files fail to get recognized due to the presence of the loop param after the video filename, even though it has a recognized extension. Regardless, the loop param is only present to fix a Vimeo issue in ME.js 2.x.

Props timmydcrawford.
Amends [40640].
See #39686, #39994.
Fixes #40977.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/media.php

    r40847 r40892  
    25572557            // Remove all query arguments and force SSL - see #40866.
    25582558            $parsed_vimeo_url = wp_parse_url( $atts['src'] );
    2559             $atts['src'] = 'https://' . $parsed_vimeo_url['host'] . $parsed_vimeo_url['path'];
     2559            $vimeo_src = 'https://' . $parsed_vimeo_url['host'] . $parsed_vimeo_url['path'];
     2560
     2561            // Add loop param for mejs bug - see #40977, not needed after #39686.
     2562            $loop = $atts['loop'] ? '1' : '0';
     2563            $atts['src'] = add_query_arg( 'loop', $loop, $vimeo_src );
    25602564        }
    25612565    }
  • trunk/src/wp-includes/widgets/class-wp-widget-media-video.php

    r40835 r40892  
    116116        }
    117117
     118        $src = $instance['url'];
    118119        if ( $attachment ) {
    119120            $src = wp_get_attachment_url( $attachment->ID );
    120         } else {
    121 
    122             // Manually add the loop query argument.
    123             $loop = $instance['loop'] ? '1' : '0';
    124             $src = empty( $instance['url'] ) ? $instance['url'] : add_query_arg( 'loop', $loop, $instance['url'] );
    125121        }
    126122
  • trunk/tests/phpunit/tests/media.php

    r40847 r40892  
    762762
    763763    /**
     764     * @ticket 40977
     765     * @depends test_video_shortcode_body
     766     */
     767    function test_wp_video_shortcode_vimeo_adds_loop() {
     768        $actual = wp_video_shortcode( array(
     769            'src' => 'http://vimeo.com/190372437',
     770        ) );
     771
     772        $this->assertContains( 'src="https://vimeo.com/190372437?loop=0', $actual );
     773    }
     774
     775    /**
     776     * @ticket 40977
     777     * @depends test_video_shortcode_body
     778     */
     779    function test_wp_video_shortcode_vimeo_force_adds_loop_true() {
     780        $actual = wp_video_shortcode( array(
     781            'src' => 'http://vimeo.com/190372437',
     782            'loop' => true,
     783        ) );
     784
     785        $this->assertContains( 'src="https://vimeo.com/190372437?loop=1', $actual );
     786    }
     787
     788    /**
    764789     * Test [video] shortcode processing
    765790     *
Note: See TracChangeset for help on using the changeset viewer.