Release Vulpes OS 2.7-preview.24

This commit is contained in:
OverSu 2026-11-04 12:52:20 +01:00
commit 97ef99f827
135 changed files with 7717 additions and 2524 deletions

View file

@ -1,6 +1,7 @@
export function isGaiaActivity(source) {
return source?.name === 'pick' || source?.name === 'share' ||
(source?.name === 'moz_configure_window' && source.data?.target === 'device') ||
(source?.name === 'configure' && source.data?.target === 'device') ||
(source?.name === 'configure' && source.data?.target === 'ringtone') ||
(source?.name === 'dial' && source.data?.type === 'webtelephony/number') ||
(source?.name === 'new' && source.data?.type === 'websms/sms') ||
@ -33,6 +34,7 @@ export class Activities {
else if (types.some(t=>typeof t==='string' && t.startsWith('audio/'))) id='music';
else if (types.some(t=>typeof t==='string' && t.startsWith('video/'))) id='video';
} else if (name === 'configure' && source.data?.target === 'ringtone') id='ringtones';
else if (name === 'configure' && source.data?.target === 'device') id='settings';
else if (name === 'dial' && types.includes('webtelephony/number')) id='communications';
else if (name === 'new' && types.includes('websms/sms')) id='sms';
else if (['new','update','open'].includes(name) && types.includes('webcontacts/contact')) id='communications';

View file

@ -51,6 +51,8 @@ export async function unpackPackage(bytes, source) {
if(cursor!==end || !files['manifest.webapp'])throw Error('MISSING_MANIFEST');
const original=JSON.parse(decoder.decode(Uint8Array.from(atob(files['manifest.webapp']),c=>c.charCodeAt(0))));
if(typeof original.name!=='string' || !original.name.trim() || original.name.length>120)throw Error('INVALID_MANIFEST');
if (original.type === 'privileged' || original.type === 'certified')
throw Error('PRIVILEGED_APP_UNSUPPORTED');
function path(value) {if(typeof value!=='string')throw Error('INVALID_MANIFEST');const u=new URL(value,'https://app.invalid/');
if(u.origin!=='https://app.invalid' || !Object.hasOwn(files,decodeURIComponent(u.pathname.slice(1))))throw Error('MISSING_APP_FILE');return u.pathname+u.search+u.hash;}
const launch=path(original.launch_path || '/index.html'),icons={};