Implement Extensible Prioritization Scheme for HTTP/2
Categories
(Core :: Networking: HTTP, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox128 | --- | fixed |
People
(Reporter: valentin, Assigned: valentin)
References
(Blocks 2 open bugs, )
Details
(Keywords: dev-doc-complete, Whiteboard: [necko-triaged])
Attachments
(4 files)
Comment 1•10 months ago
|
||
Presumably the initial version of fetchpriority can ship without this.
Assignee | ||
Comment 2•8 months ago
|
||
Sends the SETTINGS_NO_RFC7540_PRIORITIES when Priority headers are in use,
or when the network.http.http2.enabled.deps or
network.http.rendering-critical-requests-prioritization prefs are false.
Also adds handler function for RecvPriorityUpdate and does a small cleanup
of the enum and sControlFunctions.
Updated•8 months ago
|
Assignee | ||
Comment 3•7 months ago
|
||
- Rename Http2StreamBase::mPriority to mRFC7540Priority in preparation for PriorityUpdate frame changes
- Remove unused Http2Session::GeneratePriority
Assignee | ||
Comment 4•7 months ago
|
||
Assignee | ||
Comment 5•7 months ago
|
||
This pref controls whether RFC7540 stream dependencies are used.
Since RFC9218 deprecates that mechanism, we can set it to false
with the intention of removing it in the future
Comment 7•6 months ago
|
||
Backed out for causing bustages in Http2Session.cpp.
- Backout link
- Push with failures
- Failure Log link
- Failure log:
[task 2024-05-21T07:01:22.810Z] 07:01:22 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/protocol/http'
[task 2024-05-21T07:01:22.813Z] 07:01:22 INFO - /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ --sysroot /builds/worker/fetches/sysroot-x86_64-linux-gnu -o Unified_cpp_protocol_http1.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 -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/netwerk/protocol/http -I/builds/worker/workspace/obj-build/netwerk/protocol/http -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/checkouts/gecko/dom/base -I/builds/worker/checkouts/gecko/netwerk/base -I/builds/worker/checkouts/gecko/netwerk/cookie -I/builds/worker/checkouts/gecko/netwerk/dns -I/builds/worker/checkouts/gecko/netwerk/ipc -I/builds/worker/checkouts/gecko/netwerk/socket/neqo_glue -I/builds/worker/checkouts/gecko/netwerk/url-classifier -I/builds/worker/checkouts/gecko/extensions/auth -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 -pthread -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -fno-exceptions -fPIC -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -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-unknown-warning-option -fno-strict-aliasing -ffp-contract=off -MD -MP -MF .deps/Unified_cpp_protocol_http1.o.pp Unified_cpp_protocol_http1.cpp
[task 2024-05-21T07:01:22.813Z] 07:01:22 INFO - In file included from Unified_cpp_protocol_http1.cpp:83:
[task 2024-05-21T07:01:22.813Z] 07:01:22 ERROR - /builds/worker/checkouts/gecko/netwerk/protocol/http/Http2Session.cpp:1119:35: error: no member named 'FRAME_TYPE_PRIORITY_UPDATE' in 'mozilla::net::Http2Session'
[task 2024-05-21T07:01:22.814Z] 07:01:22 INFO - 1119 | Http2Session::FRAME_TYPE_PRIORITY_UPDATE,
[task 2024-05-21T07:01:22.816Z] 07:01:22 INFO - | ~~~~~~~~~~~~~~^
[task 2024-05-21T07:01:22.816Z] 07:01:22 INFO - 1 error generated.
[task 2024-05-21T07:01:22.816Z] 07:01:22 ERROR - gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:688: Unified_cpp_protocol_http1.o] Error 1
[task 2024-05-21T07:01:22.816Z] 07:01:22 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/protocol/http'
[task 2024-05-21T07:01:22.816Z] 07:01:22 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/third_party/libwebrtc/modules/audio_coding/g711_gn'
[task 2024-05-21T07:01:22.818Z] 07:01:22 INFO - /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ --sysroot /builds/worker/fetches/sysroot-x86_64-linux-gnu -o Unified_cpp_g711_gn0.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 -DTRIMMED=1 -DABSL_ALLOCATOR_NOTHROW=1 -DRTC_DAV1D_IN_INTERNAL_DECODER_FACTORY -DRTC_ENABLE_VP9 -DWEBRTC_ENABLE_PROTOBUF=0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_MOZILLA_BUILD -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_STRICT_FIELD_TRIALS=0 -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DNVALGRIND -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DUSE_UDEV -DWEBRTC_ENABLE_LIBEVENT -DWEBRTC_LINUX -DWEBRTC_POSIX -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DWEBRTC_ENABLE_AVX2 -DUSE_X11=1 -D_GNU_SOURCE -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/third_party/libwebrtc/modules/audio_coding/g711_gn -I/builds/worker/workspace/obj-build/third_party/libwebrtc/modules/audio_coding/g711_gn -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/obj-build/third_party/libwebrtc/gen -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/checkouts/gecko/third_party/libwebrtc -I/builds/worker/checkouts/gecko/third_party/libwebrtc/third_party/abseil-cpp -I/builds/worker/checkouts/gecko/tools/profiler/public -I/builds/worker/workspace/obj-build/dist/include -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -D_GLIBCXX_USE_CXX11_ABI=0 -pthread -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -fno-exceptions -fPIC -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -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 -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-unknown-warning-option -fno-strict-aliasing -ffp-contract=off -MD -MP -MF .deps/Unified_cpp_g711_gn0.o.pp Unified_cpp_g711_gn0.cpp
[task 2024-05-21T07:01:22.819Z] 07:01:22 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/third_party/libwebrtc/modules/audio_coding/g711_gn'
[task 2024-05-21T07:01:22.819Z] 07:01:22 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/third_party/libwebrtc/modules/audio_coding/g711_gn'
[task 2024-05-21T07:01:22.819Z] 07:01:22 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/third_party/libwebrtc/modules/audio_coding/g711_gn'
[task 2024-05-21T07:01:22.819Z] 07:01:22 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/third_party/libwebrtc/modules/audio_coding/isac_vad_gn'
[task 2024-05-21T07:01:22.820Z] 07:01:22 INFO - mkdir -p '.deps/'
Assignee | ||
Updated•6 months ago
|
https://hg.mozilla.org/mozilla-central/rev/f40635aceea6
https://hg.mozilla.org/mozilla-central/rev/ed8613ac1835
https://hg.mozilla.org/mozilla-central/rev/6cfbbceb35be
https://hg.mozilla.org/mozilla-central/rev/deedf2798076
Comment 10•5 months ago
|
||
FF128 MDN docs for this can be tracked in https://github.com/mdn/content/issues/33847
Comment 11•3 months ago
|
||
In Bug 1909666 we re-enabled network.http.http2.enabled.deps
due to instances of site breaking.
Description
•