Closed Bug 1889536 Opened 6 months ago Closed 3 months ago

Migrate IDNA handling to ICU4X

Categories

(Core :: Networking: DNS, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
130 Branch
Tracking Status
firefox130 --- fixed

People

(Reporter: hsivonen, Assigned: hsivonen)

References

(Blocks 2 open bugs)

Details

(Keywords: perf-alert, Whiteboard: [necko-triaged])

Attachments

(2 files, 1 obsolete file)

Try run with certain idna crate internals marked as inline(never):
https://treeherder.mozilla.org/jobs?repo=try&revision=3d64c01a968ce5d23db9e1d56bc7170c6610e6f7

(Rather concerningly, without this a local run on bloaty showed one of the deprecated idna methods compiling to huge code. Unclear why it wasn't LTOed away as unused locally. Hence, trying to make binary size comparisons on "shippable" try builds and not trusting my local config.)

Severity: -- → S3
Priority: -- → P2
Whiteboard: [necko-triaged]

https://treeherder.mozilla.org/jobs?repo=try&revision=cb8c9059b4d17a897c225a4361c17d0797156dc1

Looks like the cookie permission UI needs a mode where an asterisk is allowed.

(In reply to Henri Sivonen (:hsivonen) from comment #7)

Looks like the cookie permission UI needs a mode where an asterisk is allowed.

No, the issue is the other way round. The cookie UI expects an asterisk is the host name to fail parsing, but WHATWG allows. We have two forbidden characters that WHATWG does not forbid: asterisk and double quote.

Perhaps I'm going to have to allow customizable ASCII deny lists in the idna crate. :-(

Hacking around this for now.

https://treeherder.mozilla.org/jobs?repo=try&revision=5f449e7d68e03fbca7258dc20947f2886866350b

Sigh. More places where existing code expects IPv6 addresses to make it through ToASCII without error.

(In reply to Henri Sivonen (:hsivonen) from comment #13)

Speedometer3 copypaste:

!!!NOTE!!!
You'll be able to find a performance comparison here once the tests are complete (ensure you select the right framework): https://treeherder.mozilla.org/perfherder/compare?originalProject=try&originalRevision=dc07e199ee5313e85f500cde2e5bf04c1eee5a24&newProject=try&newRevision=64e92dbd08be63c5cc51b3e7c468859fafcba09b

If I'm reading this correctly, this isn't enough to visibly move the Speedometer3 needle. (It would have been surprising for host parsing to make a notable difference alone.)

As for microbenchmarking pathless nsStandardURL creation:
https://treeherder.mozilla.org/perfherder/compare?originalProject=mozilla-central&originalRevision=c560ac2dab5f138b9d9fc117124a8edd04dc0d3f&newProject=try&newRevision=a3d860464cc6120f4db21a6b5ae01083020f9677&framework=6&page=1&filter=TestIDNA+BenchUrl

Leading digit ASCII becomes worse. Other cases become better. Plain ASCII in single digits. Various actual IDNA case have their execution time reduced by 55%...70%.

I think I'm not going to optimize the leading digit case at this time. It's pessimized in case there's subsequent bidi in the domain. Currently Gecko fails to account for this case.

Sigh. We have way too many places that pass IP addresses or even port numbers through places where the code says it's dealing with a host name. I'm changing these to at least reject ASCII characters that don't have a glyph, but I'm declaring rejecting colons and square brackets out of scope for this patch.
https://treeherder.mozilla.org/jobs?repo=try&revision=030943877fee4dffdb3f9e7964b3ec5922fd8112

Attachment #9394925 - Attachment description: WIP: Bug 1889536 - Migrate IDNA handling to ICU4X. → Bug 1889536 - Migrate IDNA handling to ICU4X.
Attachment #9394925 - Attachment description: Bug 1889536 - Migrate IDNA handling to ICU4X. → WIP: Bug 1889536 - Migrate IDNA handling to ICU4X.
Attachment #9394925 - Attachment description: WIP: Bug 1889536 - Migrate IDNA handling to ICU4X. → Bug 1889536 - Migrate IDNA handling to ICU4X.
Attachment #9394924 - Attachment description: WIP: Bug 1889536 preparatory WIP - Vendor idna and icu_normalizer. → Bug 1889536 - Vendor idna 1.0.2 and icu_normalizer.
Attachment #9394924 - Attachment description: Bug 1889536 - Vendor idna 1.0.2 and icu_normalizer. → Bug 1889536 - Vendor idna 1.0.2 and icu_normalizer by updating the url crate.
Pushed by hsivonen@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c3d6429d8a59 Vendor idna 1.0.2 and icu_normalizer by updating the url crate. r=glandium,supply-chain-reviewers https://hg.mozilla.org/integration/autoland/rev/87d0e483dd8c Migrate IDNA handling to ICU4X. r=necko-reviewers,geckoview-reviewers,credential-management-reviewers,home-newtab-reviewers,valentin,owlish,dimi,thecount,supply-chain-reviewers

Backed out for causing bpnu bustages on nsIDNService.cpp.

[task 2024-07-09T10:41:22.663Z] 10:41:22     INFO -  mkdir -p '.deps/'
[task 2024-07-09T10:41:22.664Z] 10:41:22     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/protocol/websocket'
[task 2024-07-09T10:41:22.667Z] 10:41:22     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/protocol/websocket'
[task 2024-07-09T10:41:22.668Z] 10:41:22     INFO -  netwerk/protocol/websocket/BaseWebSocketChannel.o
[task 2024-07-09T10:41:22.669Z] 10:41:22     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/protocol/websocket'
[task 2024-07-09T10:41:23.143Z] 10:41:23     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/base'
[task 2024-07-09T10:41:23.146Z] 10:41:23     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ --sysroot /builds/worker/fetches/sysroot-x86_64-linux-gnu -o nsIncrementalDownload.o -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -I/builds/worker/workspace/obj-build/dist/system_wrappers -include /builds/worker/checkouts/gecko/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -DNDEBUG=1 -DTRIMMED=1 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DMOZ_SUPPORT_LEAKCHECKING -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/netwerk/base -I/builds/worker/workspace/obj-build/netwerk/base -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/workspace/obj-build/xpcom/components -I/builds/worker/checkouts/gecko/docshell/base -I/builds/worker/checkouts/gecko/dom/base -I/builds/worker/checkouts/gecko/js/xpconnect/src -I/builds/worker/checkouts/gecko/netwerk/dns -I/builds/worker/checkouts/gecko/netwerk/protocol/http -I/builds/worker/checkouts/gecko/netwerk/protocol/webtransport -I/builds/worker/checkouts/gecko/netwerk/socket -I/builds/worker/checkouts/gecko/netwerk/url-classifier -I/builds/worker/checkouts/gecko/security/manager/ssl -I/builds/worker/checkouts/gecko/xpcom/components -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -D_GLIBCXX_USE_CXX11_ABI=0 -fno-rtti -pthread -fno-sized-deallocation -fno-aligned-new -ffunction-sections -fdata-sections -fno-math-errno -fno-exceptions -fPIC -fcrash-diagnostics-dir=/builds/worker/artifacts -gdwarf-4 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -fno-omit-frame-pointer -funwind-tables -Werror -Wall -Wbitfield-enum-conversion -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtautological-constant-in-range-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wenum-compare-conditional -Wenum-float-conversion -Wno-deprecated-anon-enum-enum-conversion -Wno-deprecated-enum-enum-conversion -Wno-deprecated-this-capture -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wformat -Wformat-security -Wno-psabi -Wthread-safety -Wno-error=builtin-macro-redefined -Wno-vla-cxx-extension -Wno-unknown-warning-option -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/nsIncrementalDownload.o.pp   /builds/worker/checkouts/gecko/netwerk/base/nsIncrementalDownload.cpp
[task 2024-07-09T10:41:23.147Z] 10:41:23     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/base'
[task 2024-07-09T10:41:23.147Z] 10:41:23     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/base'
[task 2024-07-09T10:41:23.147Z] 10:41:23     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/base'
[task 2024-07-09T10:41:23.150Z] 10:41:23     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/base'
[task 2024-07-09T10:41:23.150Z] 10:41:23     INFO -  netwerk/base/nsIncrementalStreamLoader.o
[task 2024-07-09T10:41:23.151Z] 10:41:23     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/base'
[task 2024-07-09T10:41:23.223Z] 10:41:23     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/dns'
[task 2024-07-09T10:41:23.226Z] 10:41:23     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ --sysroot /builds/worker/fetches/sysroot-x86_64-linux-gnu -o nsIDNService.o -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -I/builds/worker/workspace/obj-build/dist/system_wrappers -include /builds/worker/checkouts/gecko/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -DNDEBUG=1 -DTRIMMED=1 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DMOZ_SUPPORT_LEAKCHECKING -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/netwerk/dns -I/builds/worker/workspace/obj-build/netwerk/dns -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/checkouts/gecko/netwerk/base -I/builds/worker/checkouts/gecko/netwerk/ipc -I/builds/worker/checkouts/gecko/netwerk/protocol/http -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -D_GLIBCXX_USE_CXX11_ABI=0 -fno-rtti -pthread -fno-sized-deallocation -fno-aligned-new -ffunction-sections -fdata-sections -fno-math-errno -fno-exceptions -fPIC -fcrash-diagnostics-dir=/builds/worker/artifacts -gdwarf-4 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -fno-omit-frame-pointer -funwind-tables -Werror -Wall -Wbitfield-enum-conversion -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtautological-constant-in-range-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wenum-compare-conditional -Wenum-float-conversion -Wno-deprecated-anon-enum-enum-conversion -Wno-deprecated-enum-enum-conversion -Wno-deprecated-this-capture -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wformat -Wformat-security -Wno-psabi -Wthread-safety -Wno-error=builtin-macro-redefined -Wno-vla-cxx-extension -Wno-unknown-warning-option -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/nsIDNService.o.pp   /builds/worker/checkouts/gecko/netwerk/dns/nsIDNService.cpp
[task 2024-07-09T10:41:23.228Z] 10:41:23    ERROR -  /builds/worker/checkouts/gecko/netwerk/dns/nsIDNService.cpp:40:23: error: unused variable 'kMaxULabelSize' [-Werror,-Wunused-const-variable]
[task 2024-07-09T10:41:23.228Z] 10:41:23     INFO -     40 | static const uint32_t kMaxULabelSize = 256;
[task 2024-07-09T10:41:23.228Z] 10:41:23     INFO -        |                       ^~~~~~~~~~~~~~
[task 2024-07-09T10:41:23.228Z] 10:41:23    ERROR -  /builds/worker/checkouts/gecko/netwerk/dns/nsIDNService.cpp:42:19: error: unused variable 'kACEPrefix' [-Werror,-Wunused-const-variable]
[task 2024-07-09T10:41:23.228Z] 10:41:23     INFO -     42 | static const char kACEPrefix[] = "xn--";
[task 2024-07-09T10:41:23.228Z] 10:41:23     INFO -        |                   ^~~~~~~~~~
[task 2024-07-09T10:41:23.228Z] 10:41:23     INFO -  2 errors generated.
[task 2024-07-09T10:41:23.228Z] 10:41:23    ERROR -  gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:674: nsIDNService.o] Error 1
[task 2024-07-09T10:41:23.228Z] 10:41:23     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/dns'
[task 2024-07-09T10:41:23.228Z] 10:41:23     INFO -  gmake[4]: Target 'target-objects' not remade because of errors.
[task 2024-07-09T10:41:23.228Z] 10:41:23    ERROR -  gmake[3]: *** [/builds/worker/checkouts/gecko/config/recurse.mk:72: netwerk/dns/target-objects] Error 2
[task 2024-07-09T10:41:23.239Z] 10:41:23     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/protocol/webtransport'
[task 2024-07-09T10:41:23.240Z] 10:41:23     INFO -  mkdir -p '.deps/'
[task 2024-07-09T10:41:23.241Z] 10:41:23     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/protocol/webtransport'
[task 2024-07-09T10:41:23.251Z] 10:41:23     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/protocol/webtransport'
[task 2024-07-09T10:41:23.252Z] 10:41:23     INFO -  netwerk/protocol/webtransport/WebTransportHash.o
[task 2024-07-09T10:41:23.253Z] 10:41:23     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/protocol/webtransport'
[task 2024-07-09T10:41:23.265Z] 10:41:23     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/base'
[task 2024-07-09T10:41:23.268Z] 10:41:23     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ --sysroot /builds/worker/fetches/sysroot-x86_64-linux-gnu -o nsIOService.o -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -I/builds/worker/workspace/obj-build/dist/system_wrappers -include /builds/worker/checkouts/gecko/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -DNDEBUG=1 -DTRIMMED=1 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DMOZ_SUPPORT_LEAKCHECKING -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/netwerk/base -I/builds/worker/workspace/obj-build/netwerk/base -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/workspace/obj-build/xpcom/components -I/builds/worker/checkouts/gecko/docshell/base -I/builds/worker/checkouts/gecko/dom/base -I/builds/worker/checkouts/gecko/js/xpconnect/src -I/builds/worker/checkouts/gecko/netwerk/dns -I/builds/worker/checkouts/gecko/netwerk/protocol/http -I/builds/worker/checkouts/gecko/netwerk/protocol/webtransport -I/builds/worker/checkouts/gecko/netwerk/socket -I/builds/worker/checkouts/gecko/netwerk/url-classifier -I/builds/worker/checkouts/gecko/security/manager/ssl -I/builds/worker/checkouts/gecko/xpcom/components -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -D_GLIBCXX_USE_CXX11_ABI=0 -fno-rtti -pthread -fno-sized-deallocation -fno-aligned-new -ffunction-sections -fdata-sections -fno-math-errno -fno-exceptions -fPIC -fcrash-diagnostics-dir=/builds/worker/artifacts -gdwarf-4 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -fno-omit-frame-pointer -funwind-tables -Werror -Wall -Wbitfield-enum-conversion -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtautological-constant-in-range-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wenum-compare-conditional -Wenum-float-conversion -Wno-deprecated-anon-enum-enum-conversion -Wno-deprecated-enum-enum-conversion -Wno-deprecated-this-capture -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wformat -Wformat-security -Wno-psabi -Wthread-safety -Wno-error=builtin-macro-redefined -Wno-vla-cxx-extension -Wno-unknown-warning-option -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/nsIOService.o.pp   /builds/worker/checkouts/gecko/netwerk/base/nsIOService.cpp
[task 2024-07-09T10:41:23.268Z] 10:41:23     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/base'
[task 2024-07-09T10:41:23.272Z] 10:41:23     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/base'
[task 2024-07-09T10:41:23.272Z] 10:41:23     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/base'
[task 2024-07-09T10:41:23.273Z] 10:41:23     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/protocol/websocket'
[task 2024-07-09T10:41:23.273Z] 10:41:23     INFO -  netwerk/protocol/websocket/IPCTransportProvider.o
[task 2024-07-09T10:41:23.274Z] 10:41:23     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/protocol/websocket'
[task 2024-07-09T10:41:23.299Z] 10:41:23     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/media/libdav1d/asm'
[task 2024-07-09T10:41:23.300Z] 10:41:23     INFO -  /builds/worker/fetches/nasm/nasm -o looprestoration_sse.o -f elf64 -F dwarf -I/builds/worker/checkouts/gecko/third_party/dav1d/src/ -DHAVE_AVX512ICL=1 -I/builds/worker/checkouts/gecko/media/libdav1d/asm/x86_64/linux/ -Dprivate_prefix=dav1d   /builds/worker/checkouts/gecko/third_party/dav1d/src/x86/looprestoration_sse.asm
Flags: needinfo?(hsivonen)
Attachment #9411737 - Attachment is obsolete: true
Pushed by hsivonen@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/826c05f26376 Vendor idna 1.0.2 and icu_normalizer by updating the url crate. r=glandium,supply-chain-reviewers https://hg.mozilla.org/integration/autoland/rev/e85a32e48a07 Migrate IDNA handling to ICU4X. r=necko-reviewers,geckoview-reviewers,credential-management-reviewers,home-newtab-reviewers,valentin,owlish,dimi,thecount,supply-chain-reviewers

Relanded with the unused constants removed.

Flags: needinfo?(hsivonen)
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 130 Branch
Regressions: 1906985
Regressions: 1906992
Regressions: 1907113

(In reply to Pulsebot from comment #24)

Pushed by hsivonen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c3d6429d8a59
Vendor idna 1.0.2 and icu_normalizer by updating the url crate.
r=glandium,supply-chain-reviewers
https://hg.mozilla.org/integration/autoland/rev/87d0e483dd8c
Migrate IDNA handling to ICU4X.
r=necko-reviewers,geckoview-reviewers,credential-management-reviewers,home-
newtab-reviewers,valentin,owlish,dimi,thecount,supply-chain-reviewers

Perfherder has detected a build_metrics performance change from push 87d0e483dd8c374b25c66d0e74858f3f5ecd4cf5.

Improvements:

Ratio Test Platform Options Absolute values (old vs new)
0.13% installer size osx-cross 96,296,389.33 -> 96,167,944.33

Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.

If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a sheriff to do that for you.

You can run these tests on try with ./mach try perf --alert 1084

For more information on performance sheriffing please see our FAQ.

Keywords: perf-alert

(In reply to Acasandrei Beatrice (needinfo me) from comment #30)

Improvements:

As there's an improvement, there's no need for an action.

An improvement makes sense, since this change removed unicode-normalization from the build, and it is known from outside-of-Gecko measurement that the icu_normalizer back end for the idna crate results in smaller binary size than the unicode-normalization back end.

Blocks: 1911935
Regressions: 1913022
Regressions: 1332714
No longer regressions: 1332714
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: