summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2024-02-08 13:16:22 +0900
committerGitHub <noreply@github.com>2024-02-08 13:16:22 +0900
commit82c34f7f45888d07f153c7ea0f313f0a231fc26c (patch)
tree1570cdb2290efd76be7d887bae4f0dc73e6397aa
parenttypo (diff)
downloadsharkey-82c34f7f45888d07f153c7ea0f313f0a231fc26c.tar.gz
sharkey-82c34f7f45888d07f153c7ea0f313f0a231fc26c.tar.bz2
sharkey-82c34f7f45888d07f153c7ea0f313f0a231fc26c.zip
Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 (#13196)
* Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 * CHANGELOG
-rw-r--r--CHANGELOG.md1
-rw-r--r--packages/frontend/src/components/MkUrlPreview.vue2
-rw-r--r--packages/frontend/test/url-preview.test.ts28
3 files changed, 30 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 652c7ea7c5..a32c557c94 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -74,6 +74,7 @@
- Fix: プロフィールを編集してもリロードするまで反映されない問題を修正
- Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正
- Fix: MkCodeEditorで行がずれていってしまう問題の修正
+- Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196
### Server
- Enhance: 連合先のレートリミットに引っかかった際にリトライするようになりました
diff --git a/packages/frontend/src/components/MkUrlPreview.vue b/packages/frontend/src/components/MkUrlPreview.vue
index 2dcb5f226d..eb5e90ea9d 100644
--- a/packages/frontend/src/components/MkUrlPreview.vue
+++ b/packages/frontend/src/components/MkUrlPreview.vue
@@ -13,7 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-only
v-if="player.url.startsWith('http://') || player.url.startsWith('https://')"
sandbox="allow-popups allow-scripts allow-storage-access-by-user-activation allow-same-origin"
scrolling="no"
- :allow="player.allow.join(';')"
+ :allow="player.allow == null ? 'autoplay;encrypted-media;fullscreen' : player.allow.filter(x => ['autoplay', 'clipboard-write', 'fullscreen', 'encrypted-media', 'picture-in-picture', 'web-share'].includes(x)).join(';')"
:class="$style.playerIframe"
:src="player.url + (player.url.match(/\?/) ? '&autoplay=1&auto_play=1' : '?autoplay=1&auto_play=1')"
:style="{ border: 0 }"
diff --git a/packages/frontend/test/url-preview.test.ts b/packages/frontend/test/url-preview.test.ts
index 6cf8317c07..b7587754c6 100644
--- a/packages/frontend/test/url-preview.test.ts
+++ b/packages/frontend/test/url-preview.test.ts
@@ -116,6 +116,34 @@ describe('MkUrlPreview', () => {
assert.strictEqual(iframe?.allow, 'fullscreen;web-share');
});
+ test('A Summaly proxy response without allow falls back to the default', async () => {
+ const iframe = await renderAndOpenPreview({
+ url: 'https://example.local',
+ player: {
+ url: 'https://example.local/player',
+ width: null,
+ height: null,
+ allow: undefined as any,
+ },
+ });
+ assert.exists(iframe, 'iframe should exist');
+ assert.strictEqual(iframe?.allow, 'autoplay;encrypted-media;fullscreen');
+ });
+
+ test('Filtering the allow list from the Summaly proxy', async () => {
+ const iframe = await renderAndOpenPreview({
+ url: 'https://example.local',
+ player: {
+ url: 'https://example.local/player',
+ width: null,
+ height: null,
+ allow: ['autoplay', 'camera', 'fullscreen'],
+ },
+ });
+ assert.exists(iframe, 'iframe should exist');
+ assert.strictEqual(iframe?.allow, 'autoplay;fullscreen');
+ });
+
test('Having a player width should keep the fixed aspect ratio', async () => {
const iframe = await renderAndOpenPreview({
url: 'https://example.local',