Publish Vulpes Preview 15 sources for desktop, Android and Tundra

Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
OverSu 2026-09-30 23:13:03 +02:00
commit b38dea0597
25901 changed files with 9982925 additions and 369 deletions

View file

@ -0,0 +1,134 @@
"use strict";
//////////////////////////////////////////////////////////////////////////////
// This exist so I don't have to keep remembering how to do it...
//////////////////////////////////////////////////////////////////////////////
function addText(elem,text) {
elem.appendChild(document.createTextNode(text));
}
function createElementAt(mainBody,type,id,optionalText,before) {
var elem=document.createElement(type);
elem.setAttribute("id",id);
if (!before) {
mainBody.appendChild(elem);
} else {
mainBody.insertBefore(elem,before);
}
if (optionalText) {
addText(elem,optionalText);
}
return elem;
}
//////////////////////////////////////////////////////////////////////////////
// End of useful DOM manipulation...
//////////////////////////////////////////////////////////////////////////////
function testPermissions(outputElement) {
var _permissions = [
'power', 'sms', 'contacts', 'telephony', 'browser',
'mozApps', 'mobileconnection', 'mozFM', 'systemXHR', 'background',
'backgroundservice', 'settings', 'alarm', 'camera', 'fmradio', 'voicemail',
'wifi-manage', 'wifi', 'networkstats-manage', 'geolocation',
'webapps-manage', 'permissions', 'desktop-notification',
'device-storage:pictures', 'device-storage:music', 'device-storage:videos',
'device-storage:apps', 'alarms', 'attention', 'content-camera',
'tcp-socket', 'bluetooth', 'storage', 'time', 'networkstats-manager',
'idle', 'network-events', 'embed-apps'
];
var mozPerms = navigator.mozPermissionSettings;
if (!mozPerms) {
createElementAt(outputElement,"p","","I can't access mozPermissionSettings!");
return;
}
navigator.mozApps.mgmt.getAll().onsuccess = function mozAppGotAll(evt) {
var apps = evt.target.result;
apps.sort(function alphabeticalSort(app, otherApp) {
return app.manifest.name > otherApp.manifest.name;
});
// We display permissions declared in the manifest
// and any other granted permission. I should see how forEach works some time.
// Some OTHER time
createElementAt(outputElement,"p","",
"List of application permissions below. "+
"Click on any permission to toggle its value.");
createElementAt(outputElement,"p","",
"NOTE: Trying to toggle a implicit permission"+
" should not work!");
var ulApps=createElementAt(outputElement,"ul");
for (var i=0; i<apps.length; i++) {
var app=apps[i];
var liApp=createElementAt(ulApps,"li");
liApp.innerHTML="<b>"+app.manifest.name+"</b>";
var ulPerm=createElementAt(ulApps,"ul");
ulPerm.hidden=true;
liApp.onclick=function () {
arguments[0].hidden=!arguments[0].hidden;
}.bind(undefined,ulPerm);
for (var j=0; j<_permissions.length; j++) {
var perm=_permissions[j];
var value = mozPerms.get(perm, app.manifestURL, app.origin, false);
if (value !== "unknown") {
var explicit =
mozPerms.isExplicit(perm, app.manifestURL, app.origin, false) ?
"/explicit" :"/implicit";
var printValue = value + explicit;
var li=createElementAt(ulPerm,"li",app.manifest.name+":"+perm,
perm +": "+printValue);
li.onclick=function() {
togglePermission(arguments[0], arguments[1], arguments[2]);
}.bind(undefined, app, perm, li);
}
}
}
};
}
function togglePermission(app,perm,item) {
var mozPerms = navigator.mozPermissionSettings;
var value = mozPerms.get(perm, app.manifestURL, app.origin, false);
console.log("Trying to change permission for "+app.manifest.name+
" perm: "+perm+" Current Value: "+value);
var newPerm="deny";
switch ( value ) {
case "deny":
newPerm = "prompt";
break;
case "prompt":
newPerm = "allow";
break;
}
mozPerms.set(perm, newPerm, app.manifestURL, app.origin, false);
// Nasty nasty suspicion
setTimeout(function () {
var newValue = mozPerms.get(perm, app.manifestURL, app.origin, false);
var explicit =
mozPerms.isExplicit(perm, app.manifestURL, app.origin, false) ?
"/explicit" :"/implicit";
console.log("After changing permission for "+app.manifest.name+
" perm: "+perm+" New Value: "+newValue+explicit);
item.innerHTML=perm+": "+newValue+explicit;
},1000);
}
window.onload=function () {
var outputElement=document.getElementById("addContent");
testPermissions(outputElement);
}