Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
bdd2a1e
Migrate from Appveyor to GitHub Actions Windows runners
canova Nov 6, 2025
381b3e2
Run other CI jobs in Windows as well
canova Nov 6, 2025
1cab99e
🔃 Daily sync: main -> l10n (November 13, 2025)
Nov 13, 2025
1dffee0
Pontoon/Firefox Profiler: Update Spanish (Chile) (es-CL)
mozilla-pontoon Nov 15, 2025
57979d3
Use Uint8Array instead of ArrayBuffer when parsing binary formats.
mstange Oct 31, 2025
29e4486
Accept Uint8Array in profile parsing in addition to ArrayBuffer.
mstange Oct 31, 2025
548d48e
Move Jest config from package.json to jest.config.js.
mstange Nov 3, 2025
0f30a98
Use workbox-cli to generate the service worker.
mstange Sep 3, 2025
9e5336b
Use a longer test timeout when debugging with VS code. (#5679)
mstange Nov 17, 2025
5b5dbc8
⬆️ Update jest-extended to version 7.0.0 (#5677)
depfu[bot] Nov 17, 2025
9f8ebeb
⬆️ Update espree to version 11.0.0
depfu[bot] Nov 17, 2025
bdbdd20
Merge branch 'main' into u8array
mstange Nov 17, 2025
d871bb8
Merge branch 'main' into external-jest-config
mstange Nov 17, 2025
611c19f
Move Jest config from package.json to jest.config.js (#5680)
mstange Nov 17, 2025
2ae37e2
🔃 Daily sync: main -> l10n (November 18, 2025)
Nov 18, 2025
722c3f3
Merge branch 'main' into u8array
mstange Nov 18, 2025
723ef00
Make binary profile format parsing use Uint8Array instead of ArrayBuf…
mstange Nov 18, 2025
3fa962c
Merge branch 'main' into workbox-cli
mstange Nov 18, 2025
c07faaf
Use workbox-cli to generate the service worker (#5681)
mstange Nov 18, 2025
1342c91
Merge branch 'main' into remove-appveyor
canova Nov 18, 2025
f380689
Migrate from Appveyor to GitHub Actions Windows runners (#5660)
canova Nov 18, 2025
275dec7
Pontoon/Firefox Profiler: Update Chinese (China) (zh-CN)
mozilla-pontoon Nov 19, 2025
646869a
🔃 Daily sync: main -> l10n (November 19, 2025)
Nov 19, 2025
a1a331b
⬆️ Update open to version 11.0.0
depfu[bot] Nov 22, 2025
33b913c
⬆️ Update glob to version 12.0.0
depfu[bot] Nov 24, 2025
ffc9f82
🚨 [security] Update glob 11.0.3 → 12.0.0 (major) (#5693)
canova Nov 25, 2025
96e4c5d
Merge branch 'main' into depfu/update/yarn/espree-11.0.0
canova Nov 25, 2025
1b02903
Update espree 10.4.0 → 11.0.0 (major) (#5683)
canova Nov 25, 2025
fd49908
Update all Yarn dependencies (2025-11-25)
depfu[bot] Nov 25, 2025
39f0573
Merge branch 'main' into depfu/update/yarn/open-11.0.0
canova Nov 25, 2025
a341b03
Update open 10.2.0 → 11.0.0 (major) (#5692)
canova Nov 25, 2025
f54eb48
Merge branch 'main' into depfu/batch_all/yarn/2025-11-19
canova Nov 25, 2025
c2da704
Update all Yarn dependencies (2025-11-25) (#5688)
canova Nov 25, 2025
c28fdfd
Convert Flow types in the bin/pre-install.js script to JSDoc
canova Nov 25, 2025
4673b0c
Fix a typo in bin/l10n-sync.js JSDocs
canova Nov 25, 2025
19ef29b
Remove the ,prettierrc.js overrides
canova Nov 25, 2025
ce21629
Remove the espree dependency
canova Nov 25, 2025
278597e
Remove the unused glob dependency
canova Nov 25, 2025
28bbe33
Remove the unused raw-loader dependency
canova Nov 25, 2025
24a5fe3
Remove some unused dependencies (#5696)
canova Nov 25, 2025
97316ad
Update all Yarn dependencies (2025-11-26)
depfu[bot] Nov 26, 2025
e8ff7ef
🔃 Daily sync: main -> l10n (November 26, 2025)
Nov 26, 2025
763c980
Update all Yarn dependencies (2025-11-26) (#5697)
canova Nov 26, 2025
5cdd7e9
Pontoon/Firefox Profiler: Update French (fr)
mozilla-pontoon Nov 26, 2025
ca008e2
🔃 Daily sync: main -> l10n (November 27, 2025)
Nov 27, 2025
57cf79f
Bump valibot from 1.1.0 to 1.2.0 (#5698)
dependabot[bot] Nov 27, 2025
ed69889
Bump node-forge from 1.3.1 to 1.3.2 (#5700)
dependabot[bot] Nov 27, 2025
4059b23
Pontoon/Firefox Profiler: Update Chinese (China) (zh-CN)
mozilla-pontoon Nov 27, 2025
8c8b8e9
🔃 Daily sync: main -> l10n (November 28, 2025)
Nov 28, 2025
79af9ef
Pontoon/Firefox Profiler: Update English (Canada) (en-CA)
mozilla-pontoon Nov 28, 2025
100732e
Pontoon/Firefox Profiler: Update English (Canada) (en-CA)
mozilla-pontoon Nov 28, 2025
bd8dc5d
Pontoon/Firefox Profiler: Update English (Canada) (en-CA)
mozilla-pontoon Nov 28, 2025
aea0d80
Remove the timeline marker section from the data sources doc
canova Dec 2, 2025
75c2911
Update outdated dxr.mozilla.org links
canova Dec 2, 2025
6cf49b7
Update the gecko profile data format doc link
canova Dec 2, 2025
48a9e86
Remove the TraceLogger section from data-sources.md
canova Dec 2, 2025
af28bc2
Update the document links and sections (#5705)
canova Dec 2, 2025
1efa24b
Clear selected and expanded call node paths on browser back button if…
canova Nov 27, 2025
27f4f53
Add a test for the navigation back behavior when the transforms are r…
canova Nov 27, 2025
c50a1e1
🔃 Daily sync: main -> l10n (December 3, 2025)
Dec 3, 2025
90fe67e
Clear selected and expanded call node paths on browser back button if…
canova Dec 3, 2025
6d408bd
Update all Yarn dependencies (2025-12-03) (#5706)
depfu[bot] Dec 3, 2025
2ff1b40
Properly type the Map and Set objects
canova Sep 28, 2025
698b341
Properly type the Map and Set objects (#5623)
mstange Dec 3, 2025
7fedf8e
🔃 Daily sync: main -> l10n (December 4, 2025)
Dec 4, 2025
a44dbf4
Add an importer for the text format taken as input by flamegraph.pl.
fqueze Feb 7, 2025
f48e0e0
Add some tests for the flamegraph.pl importer
canova Dec 2, 2025
568cd47
Pontoon/Firefox Profiler: Update Russian (ru)
mozilla-pontoon Dec 5, 2025
35cb9dc
Add priorityHeader field to network requests (#5707)
valenting Dec 8, 2025
9743a06
🔃 Daily sync: main -> l10n (December 9, 2025)
Dec 9, 2025
5dd4c64
⬆️ Update @tgwf/co2 to version 0.17.0 (#5708)
depfu[bot] Dec 9, 2025
899966e
Update all Yarn dependencies (2025-12-10)
depfu[bot] Dec 10, 2025
afbe217
🔃 Daily sync: main -> l10n (December 10, 2025)
Dec 10, 2025
0433a0e
Improve the import of profiles generated from clang -ftime-trace=file…
fqueze Dec 11, 2025
22db2af
Redirect unpublished url loads to the homepage similar to from-file (…
canova Dec 11, 2025
3358235
Merge branch 'main' into import-flamegraph
canova Dec 11, 2025
2ce8ab6
Add an importer for the text format taken as input by flamegraph.pl. …
canova Dec 11, 2025
bc6b2d7
🔃 Daily sync: main -> l10n (December 12, 2025)
Dec 12, 2025
38eb6ad
Merge branch 'main' into import-clang-profiles
canova Dec 12, 2025
3dc6f2b
Improve the import of profiles generated from clang -ftime-trace=file…
canova Dec 12, 2025
e748c26
🔃 Daily sync: main -> l10n (December 13, 2025)
Dec 13, 2025
1a808fe
Move React stuff out of marker schema logic module.
mstange Dec 15, 2025
b0614b5
Move React stuff out of marker schema logic module. (#5720)
mstange Dec 16, 2025
d46ef55
Pontoon/Firefox Profiler: Update Friulian (fur)
mozilla-pontoon Dec 16, 2025
d04d46c
🔃 Daily sync: main -> l10n (December 17, 2025)
Dec 17, 2025
68ea42f
Pontoon/Firefox Profiler: Update Turkish (tr)
mozilla-pontoon Dec 17, 2025
50e6530
Fix prettier issues
canova Dec 18, 2025
fcee2c8
Merge branch 'main' into depfu/batch_all/yarn/2025-12-10
canova Dec 18, 2025
a3465a3
Update all Yarn dependencies (2025-12-10) (#5711)
canova Dec 18, 2025
21f55c3
Merge branch 'main' into l10n
canova Dec 18, 2025
eedf646
🔃 Sync: l10n -> main (Dec 18, 2025) (#5726)
canova Dec 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 29 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ on:

jobs:
lint:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v5
Expand All @@ -21,7 +24,10 @@ jobs:
run: yarn lint

tests:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v5
Expand All @@ -35,12 +41,16 @@ jobs:
run: yarn test --coverage --logHeapUsage -w=4 --workerIdleMemoryLimit=1.5G

- name: Upload coverage to Codecov
if: matrix.os == 'ubuntu-latest'
uses: codecov/codecov-action@v5
with:
fail_ci_if_error: false

build-prod:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v5
Expand All @@ -55,7 +65,10 @@ jobs:
run: yarn build-symbolicator-cli:quiet

licence-check:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v5
Expand All @@ -67,7 +80,10 @@ jobs:
run: yarn license-check

typecheck:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v5
Expand All @@ -79,7 +95,10 @@ jobs:
run: yarn ts

alex:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v5
Expand All @@ -91,7 +110,10 @@ jobs:
run: yarn test-alex

yarn-lock:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v5
Expand Down
23 changes: 0 additions & 23 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,4 @@
module.exports = {
singleQuote: true,
trailingComma: 'es5',
overrides: [
{
files: 'src/utils/path.js',
options: {
// New versions of Prettier rewrite Flow comments to non-comments, but
// this is a problem in this file because it contains a Flow comment
// that's not parsed properly by Babel.
// This file uses Flow in a way that's Typescript compatible, so we can
// use a typescript parser. This typescript parser doesn't rewrite
// comments, so it works in this case.
parser: 'babel-ts',
},
},
{
files: 'bin/*.js',
options: {
// Files in bin/ are javascript files that may use Flow comments. We
// don't want the content of these Flow comments to be output outside of
// comments so that the file can still be run directly with node.
parser: 'espree',
},
},
],
};
2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"runtimeExecutable": "yarn",
"runtimeArgs": ["test"],
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
"args": ["--runInBand", "${file}"],
"args": ["--runInBand", "--testTimeout=300000", "${file}"],
"cwd": "${workspaceFolder}",
"internalConsoleOptions": "openOnSessionStart",
"request": "launch",
Expand Down
37 changes: 0 additions & 37 deletions appveyor.yml

This file was deleted.

2 changes: 1 addition & 1 deletion bin/l10n-sync.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const readline = require('readline');
const { promisify } = require('util');

/**
* @typeef {Object} ExecFilePromiseResult
* @typedef {Object} ExecFilePromiseResult
* @property {string | Buffer} stdout
* @property {string | Buffer} stderr
*/
Expand Down
27 changes: 17 additions & 10 deletions bin/pre-install.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/*:: type AgentsVersion = { [agentName: string]: string }; */
/**
* @typedef {Object.<string, string>} AgentsVersion
*/

/*
* This file is run when a user runs `yarn install`, before doing anything else.
Expand All @@ -21,13 +23,12 @@ function checkVersions() {
return;
}

const agents /*: AgentsVersion */ = userAgent
.split(' ')
.reduce((agents, agent) => {
const [key, value] = agent.split('/');
agents[key] = value;
return agents;
}, {});
/** @type {AgentsVersion} */
const agents = userAgent.split(' ').reduce((agents, agent) => {
const [key, value] = agent.split('/');
agents[key] = value;
return agents;
}, {});

const checks = [checkNode(agents), checkYarn(agents)];

Expand All @@ -47,7 +48,10 @@ function versionCompare(a, b) {
return a.localeCompare(b, undefined, { numeric: true });
}

function checkNode(agents /*: AgentsVersion */) {
/**
* @param {AgentsVersion} agents
*/
function checkNode(agents) {
// Node versions usually have a starting `v`.
const nodeVersion = agents.node.replace(/^v/, '');
const expectedNodeVersion = parseExpectedNodeVersion();
Expand Down Expand Up @@ -75,7 +79,10 @@ function checkNode(agents /*: AgentsVersion */) {
return true;
}

function checkYarn(agents /*: AgentsVersion */) {
/**
* @param {AgentsVersion} agents
*/
function checkYarn(agents) {
if (!('yarn' in agents)) {
console.error(
'This project uses Yarn instead of npm, please run `yarn install` instead of `npm install`.\n'
Expand Down
10 changes: 5 additions & 5 deletions docs-developer/call-tree.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ One key point of the aggregation done in the call tree is that it's focused on w

Imagine this simplified example of 3 samples of mixed C++, JavaScript Code (js), and JIT optimized JavaScript (JIT). The functions are all labeled as to their implementation.

| Sample index | Sample's stack |
| ------------ | ---------------------------------------------------------------------------------------------- |
| 0 | `JS::RunScript [c++] ➡ onLoad [js] ➡ a [js] ➡ b [js]` |
| Sample index | Sample's stack |
| ------------ | ------------------------------------------------------------------------------------------ |
| 0 | `JS::RunScript [c++] ➡ onLoad [js] ➡ a [js] ➡ b [js]` |
| 1 | `JS::RunScript [c++] ➡ onLoad [js] ➡ js::jit::IonCannon [c++] ➡ a [JIT] ➡ b [JIT]` |
| 2 | `JS::RunScript [c++] ➡ onLoad [js] ➡ js::jit::IonCannon [c++] ➡ a [JIT] ➡ b [JIT]` |

Expand Down Expand Up @@ -113,8 +113,8 @@ Now, taking the stacks and building a call tree produces the following:

This is the correct tree of what you would want to see. But since we are mixing languages together into the same stack system, it might be nice to view only JS functions. In order to do that we hide any C++ stacks, and assign them to the nearest JS stack. Our tables would be updated to look like the following.

| Sample index | Sample's stack |
| ------------ | --------------------------------------- |
| Sample index | Sample's stack |
| ------------ | ------------------------------------- |
| 0 | `onLoad [js] ➡ a [js] ➡ b [js]` |
| 1 | `onLoad [js] ➡ a [JIT] ➡ b [JIT]` |
| 2 | `onLoad [js] ➡ a [JIT] ➡ b [JIT]` |
Expand Down
20 changes: 3 additions & 17 deletions docs-developer/data-sources.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,6 @@ Samples don't record every event that happens within the system, so some informa

### More Documentation on the Gecko Profiler:

- [nsIProfiler.idl](https://dxr.mozilla.org/mozilla-central/source/tools/profiler/gecko/nsIProfiler.idl)
- [ProfileEntry.h](https://dxr.mozilla.org/mozilla-central/rev/b043233ec04f06768d59dcdfb9e928142280f3cc/tools/profiler/core/ProfileBufferEntry.h#322-411)

- [Profile Data Format](./profile-data)

## Timeline - DocShell Markers (unused in the Firefox Profiler)

The Gecko Profiler records marker data, but it doesn't include all of the markers available in the system. There is a competing implementation of markers used exclusively by the Firefox Devtools that are recorded per DocShell. These are not currently integrated into the Firefox Profiler.

- [Timeline C++ Implementation](https://dxr.mozilla.org/mozilla-central/source/docshell/base/timeline)
- [Timeline Devtools JS Server](https://dxr.mozilla.org/mozilla-central/source/devtools/server/performance/timeline.ts)

## Tracelogger (unused in the Firefox Profiler)

While the previous performance tools collect information about how Gecko runs as a whole, Tracelogger is specific to the SpiderMonkey engine. Tracelogger is not sample based, therefore it records every step that the SpiderMonkey engine performs to run a given chunk of JavaScript code. It's primarily used by JavaScript engineers, and includes a firehose of information often reaching into the several gigs of information. There is no current integration of this information with the Firefox Profiler.

- [Tracelogger on GitHub](https://github.com/h4writer/tracelogger)
- [nsIProfiler.idl](https://searchfox.org/firefox-main/source/tools/profiler/gecko/nsIProfiler.idl)
- [ProfileBufferEntry.h](https://searchfox.org/firefox-main/rev/5ccf4a7d77a329f237d3a41e400049f9c47dc71f/tools/profiler/core/ProfileBufferEntry.h#433-566)
- [Gecko Profile Data Format](./gecko-profile-format.md)
2 changes: 1 addition & 1 deletion docs-developer/gecko-profile-format.md
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,6 @@ funcTable: {
}
```

[nsIProfiler]: https://dxr.mozilla.org/mozilla-central/source/tools/profiler/gecko/nsIProfiler.idl
[nsIProfiler]: https://searchfox.org/firefox-main/source/tools/profiler/gecko/nsIProfiler.idl
[ProfileBufferEntry.h]: https://searchfox.org/mozilla-central/rev/5966e98bdfa7355e0a3d9cce482f4717dc3419b0/tools/profiler/core/ProfileBufferEntry.h#358
[profiler.firefox.com]: https://profiler.firefox.com
40 changes: 40 additions & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

module.exports = {
testMatch: ['<rootDir>/src/**/*.test.{js,jsx,ts,tsx}'],
moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx'],

testEnvironment: './src/test/custom-environment',
setupFilesAfterEnv: ['jest-extended/all', './src/test/setup.ts'],

collectCoverageFrom: [
'src/**/*.{js,jsx,ts,tsx}',
'!**/node_modules/**',
'!src/types/libdef/**',
],

// Transform ESM modules to CommonJS for Jest
// These packages ship as pure ESM and need to be transformed by Babel
transformIgnorePatterns: [
'/node_modules/(?!(query-string|decode-uri-component|iongraph-web|split-on-first|filter-obj|fetch-mock)/)',
],

// Mock static assets (images, CSS, etc.)
moduleNameMapper: {
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|ftl)$':
'<rootDir>/src/test/fixtures/mocks/file-mock.ts',
'\\.(css|less)$': '<rootDir>/src/test/fixtures/mocks/style-mock.ts',
},

globals: {
AVAILABLE_STAGING_LOCALES: null,
},

snapshotFormat: {
escapeString: true,
printBasicPrototype: true,
},
verbose: false,
};
27 changes: 27 additions & 0 deletions locales/en-CA/app.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,14 @@ AppViewRouter--error-from-localhost-url-safari =
AppViewRouter--route-not-found--home =
.specialMessage = The URL you tried to reach was not recognized.

## Backtrace
## This is used to display a backtrace (call stack) for a marker or sample.

# Variables:
# $function (String) - Name of the function that was inlined.
Backtrace--inlining-badge = (inlined)
.title = { $function } was inlined into its caller by the compiler.

## CallNodeContextMenu
## This is used as a context menu for the Call Tree, Flame Graph and Stack Chart
## panels.
Expand Down Expand Up @@ -443,6 +451,16 @@ MarkerTable--duration = Duration
MarkerTable--name = Name
MarkerTable--details = Details

## MarkerTooltip
## This is the component for Marker Tooltip panel.

# This is used as the tooltip for the filter button in marker tooltips.
# Variables:
# $filter (String) - Search string that will be used to filter the markers.
MarkerTooltip--filter-button-tooltip =
.title = Only show markers matching: “{ $filter }”
.aria-label = Only show markers matching: “{ $filter }”

## MenuButtons
## These strings are used for the buttons at the top of the profile viewer.

Expand Down Expand Up @@ -519,6 +537,8 @@ MenuButtons--metaInfo--profiling-started = Recording started:
MenuButtons--metaInfo--profiling-session = Recording length:
MenuButtons--metaInfo--main-process-started = Main process started:
MenuButtons--metaInfo--main-process-ended = Main process ended:
MenuButtons--metaInfo--file-name = File name:
MenuButtons--metaInfo--file-size = File size:
MenuButtons--metaInfo--interval = Interval:
MenuButtons--metaInfo--buffer-capacity = Buffer capacity:
MenuButtons--metaInfo--buffer-duration = Buffer duration:
Expand Down Expand Up @@ -1125,6 +1145,13 @@ SourceView--not-in-archive-error-when-obtaining-source = The file { $pathInArchi
# $url (String) - The URL from which the "archive" file was downloaded.
# $parsingErrorMessage (String) - The raw internal error message during parsing, not localized
SourceView--archive-parsing-error-when-obtaining-source = The archive at { $url } could not be parsed: { $parsingErrorMessage }
# Displayed below SourceView--cannot-obtain-source, if a JS file could not be found in
# the browser.
# Variables:
# $url (String) - The URL of the JS source file.
# $sourceUuid (number) - The UUID of the JS source file.
# $errorMessage (String) - The raw internal error message, not localized
SourceView--not-in-browser-error-when-obtaining-js-source = The browser was unable to obtain the source file for { $url } with sourceUuid { $sourceUuid }: { $errorMessage }.

## Toggle buttons in the top right corner of the bottom box

Expand Down
2 changes: 2 additions & 0 deletions locales/es-CL/app.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,8 @@ MenuButtons--metaInfo--profiling-started = Inicio del registro:
MenuButtons--metaInfo--profiling-session = Duración del registro:
MenuButtons--metaInfo--main-process-started = Proceso principal iniciado:
MenuButtons--metaInfo--main-process-ended = Proceso principal terminado:
MenuButtons--metaInfo--file-name = Nombre de archivo:
MenuButtons--metaInfo--file-size = Tamaño del archivo:
MenuButtons--metaInfo--interval = Intervalo:
MenuButtons--metaInfo--buffer-capacity = Capacidad del búfer:
MenuButtons--metaInfo--buffer-duration = Duración del búfer:
Expand Down
Loading