fix(app): adjust CSP settings for skin manager to work (#3895)

* fix(app): adjust CSP settings for skin manager to work

* tweak: allow current Tauri scheme in CSP

* tweak: remove references to invalid `sunny.png` texture in skin models

These were causing load errors in production app builds.

* tweak: use proper URL imports for skin models

This fixes importing these models in production builds of the app.

* chore(app-frontend): use more proper import style for glTF assets

* tweak: use proper URL imports for skin models in more places
This commit is contained in:
Alejandro González authored and GitHub committed 2025-07-03 23:22:00 +00:00
1 parent 512d456c66
commit 30035a9a1c
7 files changed
+29 -16

No files matched your search

@@ -1 +1 @@
{"asset":{"generator":"FBX2glTF v0.13.1","version":"2.0"},"scene":0,"buffers":[{"byteLength":71248,"uri":"data:application/octet-stream;base64,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 truncated
{"asset":{"generator":"FBX2glTF v0.13.1","version":"2.0"},"scene":0,"buffers":[{"byteLength":71248,"uri":"data:application/octet-stream;base64,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 truncated
@@ -1 +1 @@
{"asset":{"generator":"FBX2glTF v0.13.1","version":"2.0"},"scene":0,"buffers":[{"byteLength":71248,"uri":"data:application/octet-stream;base64,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 truncated
{"asset":{"generator":"FBX2glTF v0.13.1","version":"2.0"},"scene":0,"buffers":[{"byteLength":71248,"uri":"data:application/octet-stream;base64,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 truncated
@@ -1,3 +1,8 @@
<script lang="ts">
import capeModelUrl from '@/assets/models/cape.gltf?url'
import wideModelUrl from '@/assets/models/classic_player.gltf?url'
import slimModelUrl from '@/assets/models/slim_player.gltf?url'
</script>
<template>
<UploadSkinModal ref="uploadModal" />
<ModalWrapper ref="modal" @on-hide="resetState">
@@ -11,9 +16,9 @@
<div class="max-h-[25rem] w-[16rem] min-w-[16rem] overflow-hidden relative">
<div class="absolute top-[-4rem] left-0 h-[32rem] w-[16rem] flex-shrink-0">
<SkinPreviewRenderer
slim-model-src="/src/assets/models/slim_player.gltf"
wide-model-src="/src/assets/models/classic_player.gltf"
cape-model-src="/src/assets/models/cape.gltf"
:slim-model-src="slimModelUrl"
:wide-model-src="wideModelUrl"
:cape-model-src="capeModelUrl"
:variant="variant"
:texture-src="previewSkin || ''"
:cape-src="selectedCapeTexture"
@@ -10,6 +10,9 @@ import {
} from '@modrinth/ui'
import { CheckIcon, XIcon } from '@modrinth/assets'
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
import capeModelUrl from '@/assets/models/cape.gltf?url'
import wideModelUrl from '@/assets/models/classic_player.gltf?url'
import slimModelUrl from '@/assets/models/slim_player.gltf?url'
const modal = useTemplateRef('modal')
@@ -85,9 +88,9 @@ defineExpose({
<div class="absolute top-[-4rem] left-0 h-[32rem] w-[16rem] flex-shrink-0">
<SkinPreviewRenderer
v-if="currentSkinTexture"
slim-model-src="/src/assets/models/slim_player.gltf"
wide-model-src="/src/assets/models/classic_player.gltf"
cape-model-src="/src/assets/models/cape.gltf"
:slim-model-src="slimModelUrl"
:wide-model-src="wideModelUrl"
:cape-model-src="capeModelUrl"
:cape-src="currentCapeTexture"
:texture-src="currentSkinTexture"
:variant="currentSkinVariant"
@@ -4,6 +4,9 @@ import { get_normalized_skin_texture, determineModelType } from '../skins'
import { reactive } from 'vue'
import { setupSkinModel, disposeCaches } from '@modrinth/utils'
import { skinPreviewStorage } from '../storage/skin-preview-storage'
import capeModelUrl from '@/assets/models/cape.gltf?url'
import wideModelUrl from '@/assets/models/classic_player.gltf?url'
import slimModelUrl from '@/assets/models/slim_player.gltf?url'
export interface RenderResult {
forwards: string
@@ -124,11 +127,11 @@ class BatchSkinRenderer {
function getModelUrlForVariant(variant: string): string {
switch (variant) {
case 'SLIM':
return '/src/assets/models/slim_player.gltf'
return slimModelUrl
case 'CLASSIC':
case 'UNKNOWN':
default:
return '/src/assets/models/classic_player.gltf'
return wideModelUrl
}
}
@@ -292,7 +295,6 @@ export async function getPlayerHeadUrl(skin: Skin): Promise<string> {
export async function generateSkinPreviews(skins: Skin[], capes: Cape[]): Promise<void> {
const renderer = new BatchSkinRenderer()
const capeModelUrl = '/src/assets/models/cape.gltf'
try {
for (const skin of skins) {
+6 -3
View File
@@ -43,6 +43,9 @@ import { handleSevereError } from '@/store/error'
import { trackEvent } from '@/helpers/analytics'
import type AccountsCard from '@/components/ui/AccountsCard.vue'
import { arrayBufferToBase64 } from '@modrinth/utils'
import capeModelUrl from '@/assets/models/cape.gltf?url'
import wideModelUrl from '@/assets/models/classic_player.gltf?url'
import slimModelUrl from '@/assets/models/slim_player.gltf?url'
const editSkinModal = useTemplateRef('editSkinModal')
const selectCapeModal = useTemplateRef('selectCapeModal')
@@ -317,9 +320,9 @@ await Promise.all([loadCapes(), loadSkins(), loadCurrentUser()])
</h1>
<div class="preview-container">
<SkinPreviewRenderer
wide-model-src="/src/assets/models/classic_player.gltf"
slim-model-src="/src/assets/models/slim_player.gltf"
cape-model-src="/src/assets/models/cape.gltf"
:wide-model-src="wideModelUrl"
:slim-model-src="slimModelUrl"
:cape-model-src="capeModelUrl"
:cape-src="capeTexture"
:texture-src="skinTexture || ''"
:variant="skinVariant"
+2 -2
View File
@@ -86,9 +86,9 @@
"capabilities": ["ads", "core", "plugins"],
"csp": {
"default-src": "'self' customprotocol: asset:",
"connect-src": "ipc: http://ipc.localhost https://modrinth.com https://*.modrinth.com https://*.posthog.com https://*.sentry.io https://api.mclo.gs",
"connect-src": "ipc: http://ipc.localhost https://modrinth.com https://*.modrinth.com https://*.posthog.com https://*.sentry.io https://api.mclo.gs 'self' data: blob:",
"font-src": ["https://cdn-raw.modrinth.com/fonts/"],
"img-src": "https: 'unsafe-inline' 'self' asset: http://asset.localhost blob: data:",
"img-src": "https: 'unsafe-inline' 'self' asset: http://asset.localhost http://textures.minecraft.net blob: data:",
"style-src": "'unsafe-inline' 'self'",
"script-src": "https://*.posthog.com 'self'",
"frame-src": "https://www.youtube.com https://www.youtube-nocookie.com https://discord.com 'self'",