Closed Bug 1800618 Opened 2 years ago Closed 2 years ago

Write generic nsIHttpChannel for oblivious HTTP

Categories

(Core :: Networking: HTTP, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
111 Branch
Tracking Status
firefox111 --- fixed

People

(Reporter: valentin, Assigned: keeler)

References

(Blocks 1 open bug)

Details

(Whiteboard: [necko-triaged])

Attachments

(1 file)

As noted in bug 1800614 the payload of ohttp channels is the serialization of an HTTP channel using rfc9292 to encode headers, payload, etc.

It would be good to have a generic channel for this purpose, that can hide most of the complexity from its consumers.

I think a wrapper of a regular httpchannel would work well.
Most methods would just be forwarded to the wrapped channel, except we overrride AsyncOpen to serialize the inner channel, open an entirely new channel (currently TRRServiceChannel) and send off the payload.

Assignee: nobody → dkeeler
Status: NEW → ASSIGNED
Attachment #9311862 - Attachment description: WIP: Bug 1800618 - implement an oblivious http channel r?valentin → Bug 1800618 - implement an oblivious http channel r?valentin
Pushed by dkeeler@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/437540429de2 implement an oblivious http channel r=necko-reviewers,valentin

Backed out for causing build bustages on ObliviousHttpChannel.h

  • Backout link
  • Push with failures
  • Failure Log
  • Failure line: /builds/worker/checkouts/gecko/netwerk/protocol/http/ObliviousHttpChannel.h:20:43: error: base class has incomplete type
    /builds/worker/checkouts/gecko/netwerk/protocol/http/ObliviousHttpChannel.h:26:3: error: unknown type name 'NS_DECL_NSIREQUESTOBSERVER'
    /builds/worker/checkouts/gecko/netwerk/protocol/http/ObliviousHttpChannel.h:27:28: error: expected ';' at end of declaration list
Flags: needinfo?(dkeeler)
Flags: needinfo?(dkeeler)
Pushed by dkeeler@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/16229048031e implement an oblivious http channel r=necko-reviewers,valentin

Backed out for causing base-toolchains build bustages.

[task 2023-01-23T23:19:01.256Z] 23:19:01     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/netwerk/protocol/http'
[task 2023-01-23T23:19:01.258Z] 23:19:01     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/gcc/bin/g++ --sysroot /builds/worker/fetches/sysroot-x86_64-linux-gnu -std=gnu++17 -isystem /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/include/c++/7.5.0 -isystem /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/include/x86_64-linux-gnu/c++/7.5.0 -isystem /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/include/x86_64-linux-gnu -isystem /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/include -o Unified_cpp_protocol_http3.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 -DDEBUG=1 -DOS_POSIX=1 -DOS_LINUX=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 -fno-sized-deallocation -fno-aligned-new -fno-exceptions -fPIC -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -gdwarf-4 -freorder-blocks -Os -fno-omit-frame-pointer -funwind-tables -Werror -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wno-invalid-offsetof -Wno-error=deprecated -Wduplicated-cond -Wimplicit-fallthrough -Wlogical-op -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -Wno-psabi -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/Unified_cpp_protocol_http3.o.pp   Unified_cpp_protocol_http3.cpp
[task 2023-01-23T23:19:01.259Z] 23:19:01     INFO -  In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/MozPromise.h:13:0,
[task 2023-01-23T23:19:01.259Z] 23:19:01     INFO -                   from /builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders/mozilla/net/PNecko.h:15,
[task 2023-01-23T23:19:01.260Z] 23:19:01     INFO -                   from /builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders/mozilla/net/PNeckoChild.h:9,
[task 2023-01-23T23:19:01.260Z] 23:19:01     INFO -                   from /builds/worker/workspace/obj-build/dist/include/mozilla/net/NeckoChild.h:11,
[task 2023-01-23T23:19:01.260Z] 23:19:01     INFO -                   from /builds/worker/checkouts/gecko/netwerk/protocol/http/HttpLog.h:20,
[task 2023-01-23T23:19:01.261Z] 23:19:01     INFO -                   from /builds/worker/checkouts/gecko/netwerk/protocol/http/MockHttpAuth.cpp:7,
[task 2023-01-23T23:19:01.261Z] 23:19:01     INFO -                   from Unified_cpp_protocol_http3.cpp:2:
[task 2023-01-23T23:19:01.261Z] 23:19:01     INFO -  /builds/worker/checkouts/gecko/netwerk/protocol/http/ObliviousHttpChannel.cpp: In member function 'virtual nsresult mozilla::net::ObliviousHttpChannel::OnStopRequest(nsIRequest*, nsresult)':
[task 2023-01-23T23:19:01.262Z] 23:19:01    ERROR -  /builds/worker/workspace/obj-build/dist/include/mozilla/Logging.h:290:61: error: format '%u' expects argument of type 'unsigned int', but argument 6 has type 'nsresult' [-Werror=format=]
[task 2023-01-23T23:19:01.262Z] 23:19:01     INFO -                                      MOZ_LOG_EXPAND_ARGS _args); \
[task 2023-01-23T23:19:01.263Z] 23:19:01     INFO -                                                               ^
[task 2023-01-23T23:19:01.263Z] 23:19:01     INFO -  /builds/worker/checkouts/gecko/netwerk/protocol/http/HttpLog.h:54:3: note: in expansion of macro 'MOZ_LOG'
[task 2023-01-23T23:19:01.264Z] 23:19:01     INFO -     MOZ_LOG(mozilla::net::gHttpLog, mozilla::LogLevel::Debug, args)
[task 2023-01-23T23:19:01.264Z] 23:19:01     INFO -     ^~~~~~~
[task 2023-01-23T23:19:01.264Z] 23:19:01     INFO -  /builds/worker/checkouts/gecko/netwerk/protocol/http/HttpLog.h:57:19: note: in expansion of macro 'LOG4'
[task 2023-01-23T23:19:01.264Z] 23:19:01     INFO -   #define LOG(args) LOG4(args)
[task 2023-01-23T23:19:01.264Z] 23:19:01     INFO -                     ^~~~
[task 2023-01-23T23:19:01.264Z] 23:19:01     INFO -  /builds/worker/checkouts/gecko/netwerk/protocol/http/ObliviousHttpChannel.cpp:624:3: note: in expansion of macro 'LOG'
[task 2023-01-23T23:19:01.264Z] 23:19:01     INFO -     LOG(("ObliviousHttpChannel::OnStopRequest [this=%p, request=%p, status=%u]",
[task 2023-01-23T23:19:01.264Z] 23:19:01     INFO -     ^
[task 2023-01-23T23:19:01.264Z] 23:19:01     INFO -  cc1plus: all warnings being treated as errors
[task 2023-01-23T23:19:01.264Z] 23:19:01    ERROR -  gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:673: Unified_cpp_protocol_http3.o] Error 1
[task 2023-01-23T23:19:01.265Z] 23:19:01     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/netwerk/protocol/http'
Flags: needinfo?(dkeeler)
Flags: needinfo?(dkeeler)
Pushed by dkeeler@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0b27c2bd6f64 implement an oblivious http channel r=necko-reviewers,valentin
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 111 Branch
Blocks: 1824723
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: