Skip to content

Commit 6d281ff

Browse files
authored
Deploy September 5, 2025 (#5604)
Changes: [Markus Stange] Some path fixes (#5581) [depfu[bot]] Update all Yarn dependencies (2025-09-03) (#5585) [Nazım Can Altınova] Remove the findDOMNode usage from ContextMenu (#5588) [Markus Stange] Replace @fetch-mock/jest with plain fetch-mock (#5575) [Ryan Hunt] Replace zee-worker.js with compression streams API (#5584) [Markus Stange] Remove unused FilterNavigatorBar animations (#5591) [Markus Stange] Use different ports for start-prod and start-examples (#5592) [Markus Stange] Remove SharedArrayBuffer workaround (#5596) [Jeff Muizelaar] Make time after responseEnd have a more accurate name (#5582) [Ryan Hunt] Move compression and decompression to a worker (#5597) [Markus Stange] Remove Flow and no-TypeScript settings from .vscode/settings.json (#5601) [Markus Stange] Simplify the eslint command in package.json so that eslint.config.mjs is the only place you need to look if you want to know if a file is being checked (#5600) [Markus Stange] Fix search filtering (#5599) [Nazım Can Altınova] 🔃 Sync: l10n -> main (September 5, 2025) (#5603) And thanks to our localizers: de: mstange tr: Fernando Javier tr: Rua tr: Selim Şumlu
2 parents f7db99c + 6b91dd5 commit 6d281ff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+883
-798
lines changed

.prettierignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ src/types/libdef/npm
33
docs-user/js
44
docs-user/css
55
src/test/fixtures/upgrades
6-
res/zee-worker.js
76
dist
87
coverage
98
taskcluster/

.vscode/settings.json

Lines changed: 0 additions & 9 deletions
This file was deleted.

eslint.config.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ export default [
1717
ignores: [
1818
'src/profile-logic/import/proto/**',
1919
'src/types/libdef/npm/**',
20+
'res/**',
21+
'dist/**',
2022
'docs-user/**',
2123
'coverage/**',
2224
],

locales/de/app.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,7 @@ ServiceWorkerManager--hide-notice-button =
710710
StackSettings--implementation-all-frames = Alle Frames
711711
.title = Die Stack-Frames nicht filtern
712712
StackSettings--implementation-script = Skript
713-
.title = Nur die Stapelrahmen anzeigen, die mit der Skriptausführung zusammenhängen.
713+
.title = Nur Stack-Frames anzeigen, die mit Skriptausführung zusammenhängen.
714714
StackSettings--implementation-native2 = Native
715715
.title = Nur die Stack-Frames für nativen Quelltext anzeigen
716716
# This label is displayed in the marker chart and marker table panels only.

locales/tr/app.ftl

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,12 +131,22 @@ CallTreeSidebar--traced-running-time =
131131
.label = İzlenen çalışma süresi
132132
CallTreeSidebar--running-time =
133133
.label = Çalışma süresi
134+
CallTreeSidebar--self-time =
135+
.label = Kendi süresi
134136
CallTreeSidebar--running-samples =
135137
.label = Çalışan örnekler
138+
CallTreeSidebar--self-samples =
139+
.label = Kendi örnekleri
136140
CallTreeSidebar--running-size =
137141
.label = Çalışma boyutu
142+
CallTreeSidebar--self-size =
143+
.label = Kendi boyutu
138144
CallTreeSidebar--categories = Kategoriler
139145
CallTreeSidebar--implementation = Yürütme
146+
CallTreeSidebar--running-milliseconds = Çalışma milisaniyesi
147+
CallTreeSidebar--self-milliseconds = Kendi milisaniyesi
148+
CallTreeSidebar--self-sample-count = Kendi örnek sayısı
149+
CallTreeSidebar--self-bytes = Kendi baytı
140150
141151
## CompareHome
142152
## This is used in the page to compare two profiles.
@@ -152,6 +162,15 @@ CompareHome--form-label-profile2 = Profil 2:
152162
CompareHome--submit-button =
153163
.value = Profilleri getir
154164
165+
## DebugWarning
166+
## This is displayed at the top of the analysis page when the loaded profile is
167+
## a debug build of Firefox.
168+
169+
DebugWarning--warning-message =
170+
.message =
171+
Bu profil, sürüm optimizasyonları yapılmamış bir derlemede kaydedildi.
172+
Performans gözlemleri sürüm popülasyonu için geçerli olmayabilir.
173+
155174
## Details
156175
## This is the bottom panel in the analysis UI. They are generic strings to be
157176
## used at the bottom part of the UI.
@@ -205,6 +224,10 @@ Home--load-from-url-submit-button =
205224
.value = Yükle
206225
Home--documentation-button = Dokümantasyon
207226
Home--menu-button = { -profiler-brand-name } menü düğmesini etkinleştir
227+
Home--menu-button-instructions = Performans kaydetmeye başlamak için { -firefox-brand-name }’ta profilleyici menü düğmesini etkinleştirin, ardından profili analiz edin ve profiler.firefox.com ile paylaşın.
228+
Home--profile-firefox-android-instructions =
229+
{ -firefox-android-brand-name }’ta da profilleme yapabilirsiniz. Daha fazla bilgi almak için lütfen bu belgeye bakın:
230+
<a>Doğrudan cihaz üzerinde { -firefox-android-brand-name } profilleme</a>.
208231
# The word WebChannel should not be translated.
209232
# This message can be seen on https://main--perf-html.netlify.app/ in the tooltip
210233
# of the "Enable Firefox Profiler menu button" button.
@@ -221,6 +244,11 @@ Home--additional-content-content = Profil dosyasını buraya <strong>sürükleyi
221244
Home--compare-recordings-info = Ayrıca kayıtları karşılaştırabilirsiniz. <a>Karşılaştırma arayüzünü aç.</a>
222245
Home--your-recent-uploaded-recordings-title = Son yüklediğiniz kayıtlar
223246
Home--install-chrome-extension = Chrome uzantısını yükle
247+
Home--chrome-extension-instructions = Chrome’daki performans profillerini kaydedip { -profiler-brand-name }’da analiz etmek için <a>Chrome { -profiler-brand-name } uzantısını</a> kullanabilirsiniz. Uzantıyı Chrome Web Store'dan yükleyebilirsiniz.
248+
Home--chrome-extension-recording-instructions =
249+
Uzantıyı yükledikten sonra profillemeyi başlatmak ve durdurmak için uzantının
250+
araç çubuğu simgesini veya kısayolları kullanabilirsiniz. İsterseniz
251+
profilleri dışa aktarabilir ve ayrıntılı analiz için buraya yükleyebilirsiniz.
224252
225253
## IdleSearchField
226254
## The component that is used for all the search inputs in the application.
@@ -327,6 +355,8 @@ MenuButtons--index--profile-info-uploaded-label = Yüklenme tarihi:
327355
MenuButtons--index--profile-info-uploaded-actions = Sil
328356
MenuButtons--index--metaInfo-subtitle = Profil Bilgileri
329357
MenuButtons--metaInfo--symbols = Semboller:
358+
MenuButtons--metaInfo--profile-symbolicated = Profil sembolleştirilmiştir
359+
MenuButtons--metaInfo--symbolicate-profile = Profili sembolleştir
330360
MenuButtons--metaInfo--cpu-model = İşlemci modeli:
331361
MenuButtons--metaInfo--cpu-cores = İşlemci çekirdekleri:
332362
MenuButtons--metaInfo--main-memory = Ana bellek:
@@ -424,10 +454,14 @@ MenuButtons--metaOverheadStatistics-max = Maksimum
424454
MenuButtons--metaOverheadStatistics-min = Minimum
425455
MenuButtons--metaOverheadStatistics-statkeys-overhead = Ek yük
426456
.title = Tüm iş parçacıklarını örnekleme süresi.
457+
MenuButtons--metaOverheadStatistics-statkeys-cleaning = Temizleme
458+
.title = Süresi geçmiş verileri temizleme süresi.
427459
MenuButtons--metaOverheadStatistics-statkeys-counter = Sayaç
428460
.title = Tüm sayaçları toplama süresi.
429461
MenuButtons--metaOverheadStatistics-statkeys-interval = Aralık
430462
.title = İki örnek arasındaki gözlenen aralık.
463+
MenuButtons--metaOverheadStatistics-statkeys-lockings = Kilitlemeler
464+
.title = Örneklemeden önce kilidi elde etme süresi.
431465
MenuButtons--metaOverheadStatistics-overhead-duration = Ek yük süreleri:
432466
MenuButtons--metaOverheadStatistics-overhead-percentage = Ek yük yüzdesi:
433467
MenuButtons--metaOverheadStatistics-profiled-duration = Profillenen süre:
@@ -581,6 +615,10 @@ ServiceWorkerManager--hide-notice-button =
581615

582616
StackSettings--implementation-all-frames = Tüm çerçeveler
583617
.title = Yığın çerçevelerini filtreleme
618+
StackSettings--implementation-script = Betik
619+
.title = Yalnızca script çalışmasına ilişkin yığın çerçevelerini göster
620+
StackSettings--implementation-native2 = Yerel
621+
.title = Yalnızca yerel kod için yığın çerçevelerini göster
584622
# This label is displayed in the marker chart and marker table panels only.
585623
StackSettings--stack-implementation-label = Yığın filtresi:
586624
StackSettings--use-data-source-label = Veri kaynağı:

package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"build-symbolicator-cli:quiet": "yarn build:clean && cross-env NODE_ENV=production webpack --config src/symbolicator-cli/webpack.config.js",
2424
"lint": "node bin/output-fixing-commands.js run-p lint-js lint-css prettier-run",
2525
"lint-fix": "run-p lint-fix-js lint-fix-css prettier-fix",
26-
"lint-js": "node bin/output-fixing-commands.js eslint *.js bin src --report-unused-disable-directives --cache --cache-strategy content",
26+
"lint-js": "node bin/output-fixing-commands.js eslint . --report-unused-disable-directives --cache --cache-strategy content",
2727
"lint-fix-js": "yarn lint-js --fix",
2828
"lint-css": "node bin/output-fixing-commands.js stylelint \"src/**/*.css\" \"res/**/*.css\"",
2929
"lint-fix-css": "yarn lint-css --fix",
@@ -34,12 +34,12 @@
3434
"license-check": "devtools-license-check",
3535
"preinstall": "node bin/pre-install.js",
3636
"publish": "rimraf public_html && cp -r dist public_html",
37-
"serve-static": "ws -d dist/ -s index.html -p 4242",
37+
"serve-static": "ws -d dist/ -s index.html -p 4243",
3838
"start": "yarn build:clean && cross-env NODE_ENV=development node server.js",
3939
"start-prod": "yarn build-prod && yarn serve-static",
4040
"start-l10n": "yarn build:clean && cross-env NODE_ENV=development L10N=1 node server.js",
4141
"start-l10n-prod": "yarn build-l10n-prod && yarn serve-static",
42-
"start-examples": "ws -d examples/ -s index.html -p 4242",
42+
"start-examples": "ws -d examples/ -s index.html -p 4244",
4343
"start-docs": "ws -d docs-user/ -p 3000",
4444
"start-photon": "node res/photon/server",
4545
"test": "node bin/output-fixing-commands.js cross-env LC_ALL=C TZ=UTC NODE_ENV=test jest",
@@ -76,7 +76,7 @@
7676
"classnames": "^2.5.1",
7777
"common-tags": "^1.8.2",
7878
"copy-to-clipboard": "^3.3.3",
79-
"core-js": "^3.45.0",
79+
"core-js": "^3.45.1",
8080
"escape-string-regexp": "^4.0.0",
8181
"gecko-profiler-demangle": "^0.3.3",
8282
"idb": "^8.0.3",
@@ -115,15 +115,14 @@
115115
"@babel/preset-react": "^7.27.1",
116116
"@babel/preset-typescript": "^7.27.1",
117117
"@eslint/js": "^9.34.0",
118-
"@fetch-mock/jest": "^0.2.16",
119118
"@testing-library/dom": "^10.4.1",
120-
"@testing-library/jest-dom": "^6.6.4",
119+
"@testing-library/jest-dom": "^6.8.0",
121120
"@testing-library/react": "^16.3.0",
122121
"@types/clamp": "^1.0.3",
123122
"@types/common-tags": "^1.8.4",
124123
"@types/jest": "^30.0.0",
125124
"@types/minimist": "^1.2.5",
126-
"@types/node": "^22.17.2",
125+
"@types/node": "^22.18.0",
127126
"@types/query-string": "^6.3.0",
128127
"@types/react": "^18.3.24",
129128
"@types/react-dom": "^18.3.1",
@@ -145,7 +144,7 @@
145144
"copy-webpack-plugin": "^13.0.1",
146145
"cross-env": "^10.0.0",
147146
"css-loader": "^7.1.2",
148-
"cssnano": "^7.1.0",
147+
"cssnano": "^7.1.1",
149148
"devtools-license-check": "^0.9.0",
150149
"eslint": "^9.34.0",
151150
"eslint-config-prettier": "^10.1.8",
@@ -158,6 +157,7 @@
158157
"eslint-plugin-testing-library": "^7.6.6",
159158
"espree": "^10.4.0",
160159
"fake-indexeddb": "^6.1.0",
160+
"fetch-mock": "^12.5.3",
161161
"file-loader": "^6.2.0",
162162
"glob": "^11.0.3",
163163
"globals": "^16.3.0",
@@ -207,7 +207,7 @@
207207
"tsx"
208208
],
209209
"transformIgnorePatterns": [
210-
"/node_modules/(?!(query-string|decode-uri-component|iongraph-web|split-on-first|filter-obj|@fetch-mock/jest|fetch-mock)/)"
210+
"/node_modules/(?!(query-string|decode-uri-component|iongraph-web|split-on-first|filter-obj|fetch-mock)/)"
211211
],
212212
"moduleNameMapper": {
213213
"\\.(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",

res/gz-worker.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/* This Source Code Form is subject to the terms of the Mozilla Public
2+
* License, v. 2.0. If a copy of the MPL was not distributed with this
3+
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4+
5+
async function readableStreamToBuffer(stream) {
6+
const reader = stream.getReader();
7+
const chunks = [];
8+
9+
try {
10+
while (true) {
11+
const { done, value } = await reader.read();
12+
if (done) break;
13+
if (value) {
14+
chunks.push(value);
15+
}
16+
}
17+
} finally {
18+
reader.releaseLock();
19+
}
20+
21+
// Calculate total length and combine chunks
22+
const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
23+
const result = new Uint8Array(totalLength);
24+
let offset = 0;
25+
for (const chunk of chunks) {
26+
result.set(chunk, offset);
27+
offset += chunk.length;
28+
}
29+
30+
return result;
31+
}
32+
33+
onmessage = async (e) => {
34+
let data = e.data;
35+
if (data.kind === 'compress') {
36+
// Create a gzip compression stream
37+
const compressionStream = new CompressionStream('gzip');
38+
39+
// Write the data to the compression stream
40+
const writer = compressionStream.writable.getWriter();
41+
writer.write(data.arrayData);
42+
writer.close();
43+
44+
// Read the compressed data back into a buffer
45+
let result = await readableStreamToBuffer(compressionStream.readable);
46+
postMessage(result, [result.buffer]);
47+
} else if (data.kind === 'decompress') {
48+
// Create a gzip compression stream
49+
const decompressionStream = new DecompressionStream('gzip');
50+
51+
// Write the data to the compression stream
52+
const writer = decompressionStream.writable.getWriter();
53+
writer.write(data.arrayData);
54+
writer.close();
55+
56+
// Read the compressed data back into a buffer
57+
let result = await readableStreamToBuffer(decompressionStream.readable);
58+
postMessage(result, [result.buffer]);
59+
} else {
60+
throw new Error('unknown message');
61+
}
62+
};

res/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<meta charset="utf-8" />
88
<meta name="viewport" content="initial-scale=1" />
99
<title>Firefox Profiler</title>
10-
<link rel="preload" href="locales/en-US/app.ftl" as="fetch" />
10+
<link rel="preload" href="/locales/en-US/app.ftl" as="fetch" />
1111
</head>
1212
<body style="background-color: #363959; /* ink-70 */">
1313
<svg id="svg-filters"></svg>

res/zee-worker.js

Lines changed: 0 additions & 80 deletions
This file was deleted.

src/actions/receive-profile.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1065,7 +1065,7 @@ async function _extractZipFromResponse(
10651065
async function _extractJsonFromArrayBuffer(
10661066
arrayBuffer: ArrayBuffer
10671067
): Promise<unknown> {
1068-
let profileBytes: Uint8Array<ArrayBufferLike> = new Uint8Array(arrayBuffer);
1068+
let profileBytes = new Uint8Array(arrayBuffer);
10691069
// Check for the gzip magic number in the header.
10701070
if (isGzip(profileBytes)) {
10711071
profileBytes = await decompress(profileBytes);

0 commit comments

Comments
 (0)