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,151 @@
'use strict';
var ReflowHelper =
require('../../../../tests/jsmarionette/plugins/reflow_helper.js');
var assert = require('assert');
var SETTINGS_APP = 'app://settings.gaiamobile.org';
var CALENDAR_APP = 'app://calendar.gaiamobile.org';
marionette('Edges gesture >', function() {
var client = marionette.client({
profile: {
prefs: {
'browser.safebrowsing.enabled': false,
'browser.safebrowsing.malware.enabled': false,
'devtools.debugger.forbid-certified-apps': false,
'privacy.trackingprotection.enabled': false
},
settings: {
'devtools.overlay': true,
'hud.reflows': true
}
}
});
var sys, actions;
var settings, calendar;
var halfWidth, halfHeight;
setup(function() {
actions = client.loader.getActions();
sys = client.loader.getAppClass('system');
sys.waitForFullyLoaded();
settings = sys.waitForLaunch(SETTINGS_APP);
calendar = sys.waitForLaunch(CALENDAR_APP);
// Making sure the opening transition for the calendar app is over.
client.waitFor(function() {
return calendar.ariaDisplayed() && !settings.ariaDisplayed();
});
var width = client.executeScript(function() {
return window.innerWidth;
});
halfWidth = width / 2;
var height = client.executeScript(function() {
return window.innerHeight;
});
halfHeight = height / 2;
});
function edgeSwipeToApp(panel, x1, x2, from, to) {
actions.flick(panel, x1, halfHeight, x2, halfHeight, 100).perform();
if (!from || !to) {
return;
}
client.waitFor(function() {
return !from.ariaDisplayed() && to.ariaDisplayed();
});
}
test('Swiping between apps left to right, no reflow', function() {
var reflowHelper = new ReflowHelper(client);
// Since the clock will cause reflows we're disabling it
// Also disabling the developer hud because of
// https://bugzilla.mozilla.org/show_bug.cgi?id=971008
sys.stopDevtools();
sys.stopClock();
assert(calendar.ariaDisplayed(), 'calendar is visible');
assert(!settings.ariaDisplayed(), 'settings is invisible');
reflowHelper.startTracking(sys.URL);
edgeSwipeToApp(sys.leftPanel, 0, halfWidth, calendar, settings);
assert(true, 'swiped to settings');
// Overflow swipe
edgeSwipeToApp(sys.leftPanel, 0, halfWidth);
client.waitFor(function() {
return settings.ariaDisplayed();
});
assert(true, 'settings is still visible');
var count = reflowHelper.getCount();
assert.equal(count, 0, 'we got ' + count + ' reflows instead of 0');
reflowHelper.stopTracking();
assert(true, 'swiped to settings without any reflow');
});
test('Swiping between apps right to left', function() {
// Going to the beginning of the stack first
edgeSwipeToApp(sys.leftPanel, 0, halfWidth, calendar, settings);
assert(settings.ariaDisplayed(), 'settings is visible');
assert(!calendar.ariaDisplayed(), 'calendar is invisible');
edgeSwipeToApp(sys.rightPanel, 5, -1 * halfWidth, settings, calendar);
assert(true, 'swiped to calendar');
// Overflow swipe
edgeSwipeToApp(sys.rightPanel, 5, -1 * halfWidth);
client.waitFor(function() {
return calendar.ariaDisplayed() && !settings.ariaDisplayed();
});
assert(calendar.ariaDisplayed(), 'calendar is still visible');
});
test('Swiping vertically', function() {
// Going to the settings app first
edgeSwipeToApp(sys.leftPanel, 0, halfWidth, calendar, settings);
assert(settings.ariaDisplayed(), 'settings is visible');
// Mostly vertical swipe starting on the edge zone
actions.flick(sys.leftPanel, 5, halfHeight + 40, 45, 40, 50).perform();
assert(settings.ariaDisplayed(), 'settings is still visible');
// The actual amount scrolled depends on the scrolling physics,
// BrowserElementPanning or APZ... but we only care about the
// view actually scrolling.
var fuzz = 0.7;
// Checking that the settings app scrolled
client.apps.switchToApp(SETTINGS_APP);
client.waitFor(function() {
var scrollY = client.executeScript(function() {
return document.querySelector('#root > div').scrollTop;
});
return scrollY >= halfHeight * fuzz;
});
assert(true, 'the settings app scrolled');
});
test('Swiping below the threshold', function() {
assert(calendar.ariaDisplayed(), 'calendar is visible');
edgeSwipeToApp(sys.leftPanel, 0, 20);
// Waiting for iframes to settle down
client.waitFor(function() {
return !settings.ariaDisplayed() && calendar.ariaDisplayed();
});
assert(calendar.ariaDisplayed(), 'calendar is still visible');
});
});