Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions app/code/Magento/PageBuilder/Test/Mftf/Data/VideoData.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,13 @@
<data key="value">http://www.youtube.com/watch?v=slOtnjsbff0</data>
<data key="renderedValue">https://www.youtube.com/embed/slOtnjsbff0</data>
</entity>
<entity name="PageBuilderVideoUrl_YouTube_Nocookie" type="pagebuilder_video_url_property">
<data key="name">Video URL</data>
<data key="section">general</data>
<data key="fieldName">video_source</data>
<data key="value">https://www.youtube-nocookie.com/embed/slOtnjsbff0</data>
<data key="renderedValue">https://www.youtube-nocookie.com/embed/slOtnjsbff0</data>
</entity>
<entity name="PageBuilderVideoUrl_Vimeo_Embedded" type="pagebuilder_video_url_property">
<data key="name">Video URL</data>
<data key="section">general</data>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,18 @@
<argument name="page" value="VideoOnStage"/>
<argument name="url" value="PageBuilderVideoUrl_YouTube_Insecure"/>
</actionGroup>
<!-- Update to YouTube Nocookie -->
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStageYouTubeNocookie">
<argument name="contentType" value="PageBuilderVideoContentType"/>
</actionGroup>
<actionGroup ref="fillSlideOutPanelFieldGeneral" stepKey="enterVideoUrlYouTubeNocookie">
<argument name="property" value="PageBuilderVideoUrl_YouTube_Nocookie"/>
</actionGroup>
<actionGroup ref="saveEditPanelSettings" stepKey="saveEditPanelSettingsNocookie"/>
<actionGroup ref="validateVideoWithOnlyVideoUrl" stepKey="validateYouTubeNocookieStage">
<argument name="page" value="VideoOnStage"/>
<argument name="url" value="PageBuilderVideoUrl_YouTube_Nocookie"/>
</actionGroup>
<!-- Update to Vimeo Embedded-->
<actionGroup ref="openPageBuilderEditPanel" stepKey="openEditMenuOnStageVimeoEmbedded">
<argument name="contentType" value="PageBuilderVideoContentType"/>
Expand Down
1 change: 1 addition & 0 deletions app/code/Magento/PageBuilder/etc/di.xml
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,7 @@
<arguments>
<argument name="allowedHosts" xsi:type="array">
<item name="youtube" xsi:type="string">youtube.com</item>
<item name="youtube-nocookie" xsi:type="string">youtube-nocookie.com</item>
<item name="vimeo" xsi:type="string">vimeo.com</item>
</argument>
</arguments>
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,8 @@ define([

href = (href || '').replace(/^\s+/, '').replace(/\s+$/, '');

return validateIsUrl(href) && (href.match(/youtube\.com|youtu\.be/) || href.match(/vimeo\.com/));
return validateIsUrl(href)
&& (href.match(/youtube\.com|youtu\.be|youtube-nocookie\.com/) || href.match(/vimeo\.com/));
},
$.mage.__('Please enter a valid video URL.')
);
Expand All @@ -208,7 +209,7 @@ define([
href = (href || '').replace(/^\s+/, '').replace(/\s+$/, '');

return validateIsUrl(href) && (
href.match(/youtube\.com|youtu\.be/) ||
href.match(/youtube\.com|youtu\.be|youtube-nocookie\.com/) ||
href.match(/vimeo\.com/) ||
href.match(/\.(mp4|ogv|webm)(?!\w)/)
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,16 @@ export default class Src implements ConverterInterface {

const youtubeRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
"(?:youtu\\.be\/|youtube\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
const youtubeNoCookieRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
"(?:youtube-nocookie\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
const vimeoRegExp = new RegExp("https?:\/\/(?:www\\.|player\\.)?vimeo.com\/(?:channels\/" +
"(?:\\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\\d+)\/video\/|video\/|)(\\d+)(?:$|\/|\\?)");
const fileRegExp = new RegExp("^(?:https:|http:)?\\/\\/.*[\\\\\\/].+\\.(webm|mp4|ogv)(?!\w)");

if (youtubeRegExp.test(value)) {
return "https://www.youtube.com/embed/" + youtubeRegExp.exec(value)[1];
} else if (youtubeNoCookieRegExp.test(value)) {
return "https://www.youtube-nocookie.com/embed/" + youtubeNoCookieRegExp.exec(value)[1];
} else if (vimeoRegExp.test(value)) {
return "https://player.vimeo.com/video/" + vimeoRegExp.exec(value)[3] + "?title=0&byline=0&portrait=0";
} else if (fileRegExp.test(value)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,17 @@ export default class VideoSrc implements ConverterInterface {

const youtubeRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
"(?:youtu\\.be\/|youtube\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
const youtubeNoCookieRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
"(?:youtube-nocookie\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
const vimeoRegExp = new RegExp("https?:\/\/(?:www\\.|player\\.)?vimeo.com\/(?:channels\/" +
"(?:\\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\\d+)\/video\/|video\/|)(\\d+)(?:$|\/|\\?)");

if (youtubeRegExp.test(value)) {
return "https://www.youtube.com/embed/" + youtubeRegExp.exec(value)[1] +
VideoSrc.parseYoutubeGetParams(value, data);
} else if (youtubeNoCookieRegExp.test(value)) {
return "https://www.youtube-nocookie.com/embed/" + youtubeNoCookieRegExp.exec(value)[1] +
VideoSrc.parseYoutubeGetParams(value, data);
} else if (vimeoRegExp.test(value)) {
return "https://player.vimeo.com/video/" + vimeoRegExp.exec(value)[3] +
"?title=0&byline=0&portrait=0" + (data.autoplay === "true" ? "&autoplay=1&autopause=0&muted=1" : "");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ export default class Master extends BaseMaster {

public isHosted(src: string): boolean {
const youtubeRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
"(?:youtu\\.be\/|youtube\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
"(?:youtu\\.be\/|(?:youtube\\.com\/|youtube-nocookie\\.com\/)(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))" +
"([\\w-]{11})(?![\\w-])");
const vimeoRegExp = new RegExp("https?:\/\/(?:www\\.|player\\.)?vimeo.com\/(?:channels\/" +
"(?:\\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\\d+)\/video\/|video\/|)(\\d+)(?:$|\/|\\?)");
return (vimeoRegExp.test(src) || youtubeRegExp.test(src));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ export default class Preview extends BasePreview {

public isHosted(src: string): boolean {
const youtubeRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
"(?:youtu\\.be\/|youtube\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
"(?:youtu\\.be\/|(?:youtube\\.com\/|youtube-nocookie\\.com\/)(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))" +
"([\\w-]{11})(?![\\w-])");
const vimeoRegExp = new RegExp("https?:\/\/(?:www\\.|player\\.)?vimeo.com\/(?:channels\/" +
"(?:\\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\\d+)\/video\/|video\/|)(\\d+)(?:$|\/|\\?)");
return (vimeoRegExp.test(src) || youtubeRegExp.test(src));
Expand Down