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)
Presumably the initial version of fetchpriority can ship without this.
Assignee | ||
Comment 2•2 years 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•2 years ago
|
Assignee | ||
Comment 3•2 years ago
|
||
- Rename Http2StreamBase::mPriority to mRFC7540Priority in preparation for PriorityUpdate frame changes
- Remove unused Http2Session::GeneratePriority
Assignee | ||
Comment 4•2 years ago
|
||
Assignee | ||
Comment 5•2 years 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•1 year 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•1 year 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•1 year ago
|
||
FF128 MDN docs for this can be tracked in https://github.com/mdn/content/issues/33847
Comment 11•1 year ago
|
||
In Bug 1909666 we re-enabled network.http.http2.enabled.deps
due to instances of site breaking.
Description
•