From 84ab41333988a4217fd496a3d3063db537483ada Mon Sep 17 00:00:00 2001 From: Sebastian Michaelsen <sebastian@michaelsen.io> Date: Mon, 8 Aug 2016 09:45:37 +0200 Subject: [PATCH] [BUGFIX] Provide full url as origin for embedded Youtube videos To use the javascript API for embedded Youtube videos the documentation recommends to provide the "full website url" as origin parameter Change-Id: I318083b4c67b48c7eb708e54b11cd8dd1c69d646 Resolves: #77409 Releases: master, 7.6 Reviewed-on: https://review.typo3.org/49416 Tested-by: Bamboo TYPO3com <info@typo3.com> Reviewed-by: Daniel Goerz <ervaude@gmail.com> Tested-by: Daniel Goerz <ervaude@gmail.com> Reviewed-by: Joerg Boesche <typo3@joergboesche.de> Tested-by: Joerg Boesche <typo3@joergboesche.de> Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by: Georg Ringer <georg.ringer@gmail.com> Tested-by: Georg Ringer <georg.ringer@gmail.com> --- .../Classes/Resource/Rendering/YouTubeRenderer.php | 2 +- .../Unit/Resource/Rendering/YouTubeRendererTest.php | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/typo3/sysext/core/Classes/Resource/Rendering/YouTubeRenderer.php b/typo3/sysext/core/Classes/Resource/Rendering/YouTubeRenderer.php index a4dfb1eb00bd..acdee82a9e35 100644 --- a/typo3/sysext/core/Classes/Resource/Rendering/YouTubeRenderer.php +++ b/typo3/sysext/core/Classes/Resource/Rendering/YouTubeRenderer.php @@ -108,7 +108,7 @@ class YouTubeRenderer implements FileRendererInterface $urlParams[] = 'loop=1'; } if (!isset($options['enablejsapi']) || !empty($options['enablejsapi'])) { - $urlParams[] = 'enablejsapi=1&origin=' . GeneralUtility::getIndpEnv('HTTP_HOST'); + $urlParams[] = 'enablejsapi=1&origin=' . GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'); } $urlParams[] = 'showinfo=' . (int)!empty($options['showinfo']); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php b/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php index 82060c76b4a4..477b6e9c9bc6 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php @@ -39,6 +39,7 @@ class YouTubeRendererTest extends UnitTestCase parent::setUp(); GeneralUtility::flushInternalRuntimeCaches(); $_SERVER['HTTP_HOST'] = 'test.server.org'; + $_SERVER['REQUEST_URI'] = '/test-page/'; /** @var YouTubeHelper|\PHPUnit_Framework_MockObject_MockObject $youTubeHelper */ $youTubeHelper = $this->getAccessibleMock(YouTubeHelper::class, array('getOnlineMediaId'), array('youtube')); @@ -94,7 +95,7 @@ class YouTubeRendererTest extends UnitTestCase $fileResourceMock = $this->createMock(File::class); $this->assertSame( - '<iframe src="//www.youtube.com/embed/7331?autohide=1&controls=2&enablejsapi=1&origin=test.server.org&showinfo=0" allowfullscreen width="300" height="200"></iframe>', + '<iframe src="//www.youtube.com/embed/7331?autohide=1&controls=2&enablejsapi=1&origin=http://test.server.org/test-page/&showinfo=0" allowfullscreen width="300" height="200"></iframe>', $this->subject->render($fileResourceMock, '300m', '200') ); } @@ -108,7 +109,7 @@ class YouTubeRendererTest extends UnitTestCase $fileResourceMock = $this->createMock(File::class); $this->assertSame( - '<iframe src="//www.youtube.com/embed/7331?autohide=1&controls=2&loop=1&enablejsapi=1&origin=test.server.org&showinfo=0" allowfullscreen width="300" height="200"></iframe>', + '<iframe src="//www.youtube.com/embed/7331?autohide=1&controls=2&loop=1&enablejsapi=1&origin=http://test.server.org/test-page/&showinfo=0" allowfullscreen width="300" height="200"></iframe>', $this->subject->render($fileResourceMock, '300m', '200', array('loop' => 1)) ); } @@ -122,7 +123,7 @@ class YouTubeRendererTest extends UnitTestCase $fileResourceMock = $this->createMock(File::class); $this->assertSame( - '<iframe src="//www.youtube.com/embed/7331?autohide=1&controls=2&autoplay=1&enablejsapi=1&origin=test.server.org&showinfo=0" allowfullscreen width="300" height="200"></iframe>', + '<iframe src="//www.youtube.com/embed/7331?autohide=1&controls=2&autoplay=1&enablejsapi=1&origin=http://test.server.org/test-page/&showinfo=0" allowfullscreen width="300" height="200"></iframe>', $this->subject->render($fileResourceMock, '300m', '200', array('autoplay' => 1)) ); } @@ -141,7 +142,7 @@ class YouTubeRendererTest extends UnitTestCase $fileReferenceMock->expects($this->any())->method('getOriginalFile')->willReturn($fileResourceMock); $this->assertSame( - '<iframe src="//www.youtube.com/embed/7331?autohide=1&controls=2&autoplay=1&enablejsapi=1&origin=test.server.org&showinfo=0" allowfullscreen width="300" height="200"></iframe>', + '<iframe src="//www.youtube.com/embed/7331?autohide=1&controls=2&autoplay=1&enablejsapi=1&origin=http://test.server.org/test-page/&showinfo=0" allowfullscreen width="300" height="200"></iframe>', $this->subject->render($fileReferenceMock, '300m', '200') ); } @@ -155,7 +156,7 @@ class YouTubeRendererTest extends UnitTestCase $fileResourceMock = $this->createMock(File::class); $this->assertSame( - '<iframe src="//www.youtube.com/embed/7331?autohide=1&autoplay=1&enablejsapi=1&origin=test.server.org&showinfo=0" allowfullscreen width="300" height="200"></iframe>', + '<iframe src="//www.youtube.com/embed/7331?autohide=1&autoplay=1&enablejsapi=1&origin=http://test.server.org/test-page/&showinfo=0" allowfullscreen width="300" height="200"></iframe>', $this->subject->render($fileResourceMock, '300m', '200', array('controls' => 0, 'autoplay' => 1)) ); } -- GitLab