WordPress.org

Make WordPress Core

Changeset 41054


Ignore:
Timestamp:
07/14/17 17:33:44 (4 months 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.

Merges [40892] into the 4.8 branch.
Props timmydcrawford.
Amends [40640].
See #39686, #39994.
Fixes #40977 for 4.8.1.

Location:
branches/4.8
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/4.8

  • branches/4.8/src/wp-includes/media.php

    r40847 r41054  
    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    } 
  • branches/4.8/src/wp-includes/widgets/class-wp-widget-media-video.php

    r40835 r41054  
    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 
  • branches/4.8/tests/phpunit/tests/media.php

    r40847 r41054  
    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.