Roll QUICHE

Roll QUICHE in openscreen to 5a433bd7d in order to be able to roll it in
Chromium.

Rename quic::QuicIPAddress to quiche::QuicheIPAddress everywhere.

This change must be rolled into Chromium in the same CL as the
corresponding QUICHE roll or it will not build.

$ git log 64cdc52a28..5a433bd7d --date=short --no-merges --format='%ad %ae %s'
2025-02-06 birenroy@google.com Adds an oghttp2 option to disable Huffman compression of header field values.
2025-02-06 quiche-dev@google.com No public description
2025-02-06 birenroy@google.com Adds a `DISABLE_HUFFMAN` CompressionOption to SpdyFramer.
2025-02-06 haoyuewang@google.com Refactor QuicTimeWaitList to make it easier to use a single connection ID map.
2025-02-06 quiche-dev@google.com Count how often stricter base64 parsing would fail in Quiche's structured headers
2025-02-05 birenroy@google.com Replaces `SpdyFramer::compression_enabled()` with `SpdyFramer::compression_option()`.
2025-02-05 wub@google.com In `quic::ProofSourceHandle::SelectCertificate`, change the `client_hello` argument from the raw client hello bytes to a `SSL_CLIENT_HELLO` pointer.
2025-02-05 birenroy@google.com Splits HpackEncoder::enable_compression_ into two bool members that are always toggled together.
2025-02-05 birenroy@google.com Removes one parameter from `HpackEncoder::EmitNonIndexedLiteral()`.
2025-02-05 birenroy@google.com Fixes a stream close condition in OgHttp2Session::CloseStreamIfReady.
2025-02-05 birenroy@google.com Adds a unit test to compare the client adapter implementations when cancelling a stream.
2025-02-04 martinduke@google.com Store a QuicAlarmFactory in MoqtSession.
2025-02-04 wub@google.com Deprecate --gfe2_reloadable_flag_quic_buffered_store_set_client_cid.
2025-02-03 abhisinghx@google.com Move QUIC Socket Address lib to QUICHE. Patch envoy to use QuicheSocketAddress instead
2025-02-03 haoyuewang@google.com Log more detailed info when dumping GfeQuicClientStream.
2025-02-03 martinduke@google.com MoQT SUBSCRIBES_BLOCKED frame.
2025-01-31 martinduke@google.com Delete Role from MoQT.
2025-01-30 martinduke@google.com Update MoQT priority design for latest draft.
2025-01-30 martinduke@google.com Add new MoQT Errors.
2025-01-30 martinduke@google.com Limit MoQT Namespace tuple size to (1, 32).
2025-01-29 elburrito@google.com BlindSignAuth: Pass absl::StatusCode returned from Phosphor to callers if it's an error code.
2025-01-29 goldvitaly@google.com No public description
2025-01-28 martinduke@google.com Add Transport Parameter from draft-ietf-quic-ack-frequency-10.
2025-01-28 wub@google.com In QUIC, do not send version negotiation in response to a version negotiation packet.
2025-01-27 wub@google.com Remove DCHECK that is overly strict in QuicConnection::OnPacketHeader. Also change the function to return `connected_`.
2025-01-27 martinduke@google.com Deprecate flag quic_ecn_in_first_ack
2025-01-27 wub@google.com Deprecate gfe2_reloadable_flag_quic_avoid_nested_close_connection.
2025-01-27 diannahu@google.com Enabling rolled out flags.
2025-01-27 wub@google.com [CONFIDENTIAL] DO NOT upstream or share this information outside of Google. Contact wub@ for any questions.
2025-01-24 martinduke@google.com Delete the code that sends the MinAckDelay transport parameter from draft-iyengar-quic-ack-frequency-01. Receiving the parameter is still supported.
2025-01-24 davidben@google.com Mark QuicheUtcDateTimeToUnixSecondsImpl QUICHE_EXPORT
2025-01-24 quiche-dev@google.com Add a streamz and HttpProtocolDefects logging for requests with stray data after a chunk.
2025-01-23 ricea@google.com Remove QUICHE_EXPORT from template methods in GenericBugStreamHandler
2025-01-22 wub@google.com Deprecate gfe2_restart_flag_quic_use_new_qpack_blocking_manager.
2025-01-21 birenroy@google.com Adds unit tests demonstrating that the two adapter implementations behave the same.
2025-01-21 martinduke@google.com IMMEDIATE_ACK frame processing.
2025-01-21 wub@google.com Deprecate gfe2_reloadable_flag_quic_send_placeholder_ticket_when_encrypt_ticket_fails.
2025-01-21 dschinazi@google.com Add masque_tcp_client
2025-01-21 quiche-dev@google.com Enabling rolled out flags.
2025-01-16 dschinazi@google.com Improve QUIC_BUG in GenerateRemainingCryptoFrames
2025-01-16 haoyuewang@google.com Fix quic_frames_test when QUIC_FRAME_DEBUG is defined.
2025-01-16 dschinazi@google.com Add missing flag counts for quic_version_negotiation_rfc
2025-01-15 martinduke@google.com Frame/parse IMMEDIATE_ACK frame.
2025-01-15 haoyuewang@google.com Log more detailed error when GFE_BUG triggered in QuicSession::MarkConnectionLevelWriteBlocked.
2025-01-15 haoyuewang@google.com Fix use after moved bug in QuicTimeWaitListManager.
2025-01-14 asedeno@google.com Handle the unlikely case of reaching the end of an exhaustive enum in a test to appease GCC.
2025-01-14 haoyuewang@google.com Remove OnConnectionAddedToTimeWaitList to reduce the complexity of QuicTimeWaitListManager.
2025-01-14 wub@google.com No public description
2025-01-14 goldvitaly@google.com LSC: Apply performance-unnecessary-value-param where it matters for performance.
2025-01-14 martinduke@google.com No public description
2025-01-13 birenroy@google.com Enabling rolled out flags.
2025-01-13 birenroy@google.com Rejects tab and space when validating request paths in oghttp2.
2025-01-13 awillia@google.com Replace deprecated absl::HexStringToBytes call in QUIC test utils
2025-01-12 awillia@google.com Update ParseQuicTag to only use hex decoding if valid
2025-01-10 birenroy@google.com Fixes up test coverage when strict path validation is not enabled.
2025-01-10 birenroy@google.com Adds a test comparing path character validation across implementations.
2025-01-10 quiche-dev@google.com Remove the INFO log for "No hostname indicated in SNI".
2025-01-09 rch@google.com Do not attempt to receive IPv6 flow labels on Android since the setsockopt call always fails.
2025-01-09 birenroy@google.com Automated g4 rollback of changelist 713678123.
2025-01-09 martinduke@google.com Roll back gfe2_reloadable_flag_quic_can_send_ack_frequency.
2025-01-09 birenroy@google.com Automated g4 rollback of changelist 712628602.
2025-01-08 martinduke@google.com Fix use-after-free in MoQ Chat Server.
2025-01-08 quiche-dev@google.com Prevent default true for quic_support_flow_label2 flag because it is breaking Android TAP.
2025-01-07 quiche-dev@google.com No public description
2025-01-06 martinduke@google.com ACK non-consecutive QUIC CE packets immediately.
2025-01-06 dschinazi@google.com Remove unnecessary copy in QuicChaosProtector
2025-01-06 birenroy@google.com Moves the generic bug utility to QUICHE.
2025-01-06 dschinazi@google.com Officially allow out-of-order writes in QuicStreamSendBuffer
2025-01-06 quiche-dev@google.com Enabling rolled out flags.
2025-01-06 martinduke@google.com Update MoQ chat to draft-00.
2025-01-06 martinduke@google.com Refresh MoQT integration test for FETCH and fix detected errors.
2024-12-27 martinduke@google.com MoQT Upstream FETCH data streams.
2024-12-23 rch@google.com Fix a flake in quic_udp_socket_test.cc caused by recvmsg occasionally returning EAGAIN by reading again in this case.
2024-12-20 dschinazi@google.com Switch QUIC version negotiation to RFC codepoint
2024-12-19 martinduke@google.com Add a new QUIC Connection option to specify Cubic for the client side only.
2024-12-17 dschinazi@google.com Fix flakiness in chaos protection test
2024-12-17 martinduke@google.com Send MoQT Fetch and handle FETCH_OK/FETCH_ERROR. The application can induce FETCH_CANCEL by destroying the MoqtFetchTask object it owns.
2024-12-16 quiche-dev@google.com Declare nfds parameter of PollSyscall() as size_t
2024-12-16 vasilvv@google.com Split the alarm logic out of QuicPollEventLoop into its own queue.
2024-12-12 martinduke@google.com Finish MoQT incoming ANNOUNCE life cycle (UNANNOUNCE).
2024-12-12 wub@google.com In `QuicSelfIssuedConnectionIdManager::GetUnretiredConnectionIds`, call `std::vector::reserve` before the for loops to avoid unnecessary memory allocations.
2024-12-12 martinduke@google.com Incoming MoQT SubscribeAnnounces lifecycle.
2024-12-12 quiche-dev@google.com Add admin token support to phosphor
2024-12-11 quiche-dev@google.com Mark quiche::GatherStringViewSpan as exported to Chromium.
2024-12-11 martinduke@google.com Initialize dummy application data in QuicStreamTest to quiet asan warnings.
2024-12-11 haoyuewang@google.com Add streamz to GfeQuicClientSession such that we can get resumption rate at connection level and early-data rate at stream level.
2024-12-10 vasilvv@google.com Fix build errors in Chromium.
2024-12-10 dschinazi@google.com Unblock quic_enable_chaos_protection_v2 flag
2024-12-10 wub@google.com No public description
2024-12-10 martinduke@google.com Send-side RESET_STREAM_AT frame. Nothing utilizes the API yet, so not protected.
2024-12-10 quiche-dev@google.com Return transport parameters from TlsChloExtractor
2024-12-10 wub@google.com Rename 'source_' in QuicSession to 'connection_close_source_'.
2024-12-10 martinduke@google.com MoQT Outgoing ANNOUNCE life cycle.
2024-12-10 wub@google.com In QuicDispatcher::CleanUpSession, Only serialize close packets if connection is self closed, i.e. not closed by peer.
2024-12-10 quiche-dev@google.com Fix include of stddef.h.
2024-12-09 birenroy@google.com Extracts out a helper method to determine whether a chunk extension character is valid.
2024-12-09 martinduke@google.com Outgoing MoQT SUBSCRIBE_ANNOUNCES life cycle.
2024-12-08 danzh@google.com Notify a closed non-static stream once it is about to be destroyed via a new interface QuicStream::OnSoonToBeDestroyed() with no-op default implementation.
2024-12-06 dschinazi@google.com Set a minimum number of chaos protection in new protector
2024-12-06 vasilvv@google.com Switch QuicheMemSlice to a platform-independent implementation.
2024-12-06 vasilvv@google.com Add APIs to read until a specific point in the stream is reached.
2024-12-05 vasilvv@google.com Rewrite MoqtDataParser to only consume one thing at a time.
2024-12-05 birenroy@google.com Moves //third_party/http2:http2_structures_lib to //third_party/http2/core/.
2024-12-05 birenroy@google.com Moves //third_party/http2:http2_constants_lib to //third_party/http2/core/.
2024-12-04 vasilvv@google.com Add test utils to parse control messages and to extract subscribe details.
2024-12-04 rch@google.com Automated g4 rollback of changelist 702422246.
2024-12-04 vasilvv@google.com Remove impl-based MemSlice constructor.
2024-12-03 wub@google.com Remove the version check and TODO in `QuicFramer::TryDecryptInitialPacketDispatcher`.
2024-12-03 dschinazi@google.com Chaos Protection v2
2024-12-03 ckennelly@google.com Use absl::make_unique_for_overwrite where we will reinitialize the buffer.
2024-12-03 haoyuewang@google.com Re-enable chlo buffering on the server side of Hyperloop.
2024-12-02 vasilvv@google.com Add webtransport::test::InMemoryStream for simplifying testing code that reads from WebTransport streams.
2024-12-02 martinduke@google.com Fix the definition of MoQT MAX_SUBSCRIBE_ID.
2024-12-02 birenroy@google.com Adds unit test cases covering the case where a content-length undershoot causes a PROTOCOL_ERROR.
2024-12-02 martinduke@google.com Fix spelling of QuicheWeakPtr::GetIfAvaliable => GetIfAvailable.
2024-11-27 martinduke@google.com Refactor MoQT Upstream SUBSCRIBE processing and data structures.
2024-11-26 danzh@google.com gfe-relnote: Call QuicAckListenerInterface::OnPacketAcked() before moving the stream to closed stream list.
2024-11-26 rch@google.com No public description
2024-11-26 martinduke@google.com Use wub's new test features in QuicBufferedPacketStoreTest:SimpleEnqueueAckSent
2024-11-26 vasilvv@google.com Add test matchers for writing MoQT control messages into a mock stream.
2024-11-25 vasilvv@google.com Fix standalone build.
2024-11-25 birenroy@google.com Adds unit test cases covering the case where a content-length overshoot causes a PROTOCOL_ERROR.
2024-11-25 birenroy@google.com Migrates adapter unit tests away from deprecated SubmitRequest/SubmitResponse methods.
2024-11-25 wub@google.com Set client CID in the packets sent by QuicBufferedPacketStore.
2024-11-25 birenroy@google.com Removes DataFrameSource arguments from Http2Adapter methods and implementations.
2024-11-25 birenroy@google.com Removes DataFrameSource interface methods and related utilities.
2024-11-25 quiche-dev@google.com Enabling rolled out flags.
2024-11-25 birenroy@google.com Removes DataFrameSource-based DATA frame manipulation from OgHttp2Session.
2024-11-25 vasilvv@google.com Move MoqtSessionPeer into its own file.
2024-11-25 birenroy@google.com Removes DataFrameSource-based DATA frame manipulation from NgHttp2Adapter.
2024-11-22 dschinazi@google.com Add missing error string in QuicFramer
2024-11-22 birenroy@google.com Reworks the remaining DataFrameSource-based test cases in nghttp2_adapter_test.cc.
2024-11-22 vasilvv@google.com Implement QuicheWeakPtr that roughly models Chromium's base::WeakPtr API.
2024-11-22 birenroy@google.com Removes use of VisitorDataSource in more tests.
2024-11-22 dschinazi@google.com Refactor ConsumeCryptoData
2024-11-22 birenroy@google.com Removes use of VisitorDataSource in oghttp2_adapter_test.cc.
2024-11-22 birenroy@google.com Removes deprecated and unused methods from the Http2Adapter interface.
2024-11-22 birenroy@google.com Removes use of VisitorDataSource in nghttp2_adapter_test.cc.
2024-11-21 vasilvv@google.com Switch QUICHE standalone build to use the newest Bazel actually supported by our CI bots.
2024-11-21 martinduke@google.com Remove forwarding_preference from MoqtObject.
2024-11-21 martinduke@google.com Delete MoQT Track Forwarding preference and roll version to -07.
2024-11-21 martinduke@google.com Publisher-side MoQT FETCH handling.
2024-11-21 davidben@google.com Update QUICHE to use Bazel 7.4.1, but without bzlmod for now
2024-11-21 vasilvv@google.com Fix default constructor in the default implementation of QuicheMemSlice.
2024-11-21 davidben@google.com Switch away from std::iterator in BalsaHeaders
2024-11-21 davidben@google.com Group mock_load_balancer_encoder.h with load_balancer in the standalone build
2024-11-20 rch@google.com Remove obsolete TODOs about converting char uint8_t.
2024-11-20 davidben@google.com Avoid tripping -Wchanges-meaning in GCC
2024-11-20 davidben@google.com Remove ResumptionAttempted assertion in TlsServerHandshakerTest.ResumptionWithPlaceholderTicket
2024-11-20 davidben@google.com Simplify how quiche platform files are incorporated
2024-11-20 vasilvv@google.com Implement a function that gathers data from bunch of string_views into a single buffer.
2024-11-20 danzh@google.com Close the connection with error QUIC_HTTP_INVALID_FRAME_SEQUENCE_ON_SPDY_STREAM if FIN is received before finishing receiving the whole HTTP headers.
2024-11-20 dschinazi@google.com Allow more URLs in masque_client
2024-11-20 martinduke@google.com No public description
2024-11-19 vasilvv@google.com Fix standalone QUICHE build.
2024-11-19 vasilvv@google.com Fix a hardcoded cacheline size.
2024-11-18 diannahu@google.com Add an oghttp2 option to disable sending GOAWAYs as a client.
2024-11-18 birenroy@google.com Raises the verbosity level of most QUICHE_VLOGs within OgHttp2Session.
2024-11-18 diannahu@google.com Add oghttp2 and nghttp2 testing to demonstrate client GOAWAY-sending behavior.
2024-11-18 haoyuewang@google.com No public description
2024-11-18 quiche-dev@google.com Enabling rolled out flags.
2024-11-18 davidben@google.com No public description
2024-11-18 davidben@google.com Use string_view::substr when making string_views out of other strings
2024-11-17 davidben@google.com Remove QuicheMutex, etc., indirection
2024-11-16 martinduke@google.com FIN MoQT streams when directed by the TrackPublisher.
2024-11-15 haoyuewang@google.com Add a cache key field to QuicServerId.
2024-11-15 vasilvv@google.com Add a callback to FetchTask API.
2024-11-14 ricea@google.com Quiche: inline constexpr variables in headers
2024-11-14 dschinazi@google.com Allow chaos protection with ACK frames
2024-11-14 martinduke@google.com Remove inappropriate calls to ResetWriteSide().
2024-11-14 diannahu@google.com Update Http2VisitorInterface::OnHeaderResult from enum to enum class.
2024-11-14 dschinazi@google.com Rename QuicChaosProtector
2024-11-14 dschinazi@google.com Refactor QuicChaosProtector
2024-11-13 martinduke@google.com Update ECN tests to function properly in Guitar.
2024-11-13 davidben@google.com Some more QUICHE build fixes
2024-11-13 davidben@google.com Add missing dependency to quiche_test_support
2024-11-13 ricea@google.com Rename QuicTag kIFWA to kIFWa
2024-11-12 rch@google.com Remove unused TPCC QuicTag and rename the variables * kORBT -> kOBIT * kMIBS -> kMIDS to match their on-the-wire value.
2024-11-12 rch@google.com Deprecate --gfe2_reloadable_flag_quic_allow_host_in_request2.
2024-11-12 birenroy@google.com Allows a unit test to be exported as part of QUICHE.
2024-11-12 martinduke@google.com Change protection scheme for code that marks outgoing ECT.
2024-11-11 wub@google.com Change `QuicUnackedPacketMap::NotifyFramesAcked` and `QuicUnackedPacketMap::MaybeAggregateAckedStreamFrame` to take `QuicTransmissionInfo*&` as a input-output parameter.
2024-11-08 martinduke@google.com Add ECN counters to ACKs sent by the QuicBufferedPacketStore.
2024-11-07 rch@google.com Rename gfe2_restart_flag_quic_support_flow_label to gfe2_restart_flag_quic_support_flow_label2 now that QUIC flow label support seems to be complete.
2024-11-05 birenroy@google.com Adds backslash `\` to the list of characters allowed in a HTTP request path.
2024-11-05 rch@google.com Add support for sending IPv6 flow labels to QuicGsoBatchWriter
2024-11-05 birenroy@google.com Simplifies and modernizes SpdyDataIR.
2024-11-04 dschinazi@google.com Update googleurl in QUICHE bazel build
2024-11-04 asedeno@google.com MASQUE: add tap bridging support for CONNECT-ETHERNET
2024-11-04 quiche-dev@google.com Fix the issue that -Wrange-loop-construct higlighted in quiche.
2024-11-01 martinduke@google.com Send raw counts of reported ECN marks in QUIC ACK frames to the debugger.
2024-11-01 wub@google.com No public description
2024-11-01 quiche-dev@google.com Mark sec-authenticated-request-headers as a repeated header
2024-10-31 ricea@google.com Remove a stray semi-colon from quiche_protocol_flags_list.h
2024-10-31 birenroy@google.com Adds unit tests for clients handling END_STREAM after 1xx headers without final response headers.
2024-10-29 wub@google.com Add transport parameter 'discard' to QUIC and switch connection option `CHP1` and `CHP2` to use it.
2024-10-29 rch@google.com Record stats when forward progress is made on a QUIC connection after changing the flow label on PTO.
2024-10-29 vasilvv@google.com Implement QuicAlarmMultiplexer.
2024-10-28 wub@google.com Deprecate gfe2_reloadable_flag_quic_add_ssl_error_stack_to_error_detail.
2024-10-28 martinduke@google.com Parser/Framer for MoQT FETCH Stream messages.
2024-10-28 martinduke@google.com Delete Subscribe ID from MoQT Object headers
2024-10-25 birenroy@google.com Adds a new `ResponseCodeDetails`: `INVALID_HTTP2_CLIENT_REQUEST_PATH`.
2024-10-25 vasilvv@google.com Replace direct pointers and references to QuicAlarms with a QuicAlarmProxy
2024-10-24 wub@google.com Remove unused parameter `server_connection_id` from QuicDispatcher::OnExpiredPackets.
2024-10-24 martinduke@google.com Two Subscriptions to the same MoQT Track in a session is an error.
2024-10-24 birenroy@google.com Adds the ability to make annotations on quiche::LifetimeTrackable objects.
2024-10-24 martinduke@google.com MoQT SUBSCRIBE to a prior group is an error.
2024-10-24 martinduke@google.com Framer and Parser for MoQT FETCH family messages in draft-07.
2024-10-24 vasilvv@google.com Implement a publisher API for fetch.
2024-10-23 wub@google.com Deprecate --gfe2_restart_flag_quic_dispatcher_ack_buffered_initial_packets.
2024-10-23 wub@google.com Avoid nested CloseConnection calls in QuicConnection.
2024-10-22 martinduke@google.com Allow client to activate PragueCubic congestion control via connection option for experiment purposes.
2024-10-22 vasilvv@google.com Fix standalone QUICHE build
2024-10-21 wub@google.com No public description
2024-10-21 vasilvv@google.com Add MoqtProbeManager
2024-10-21 martinduke@google.com Update MoqtLiveRelayQueue for Peeps. Places incoming objects in subgroup queues and delivers them in subgroup order.
2024-10-21 martinduke@google.com Rename SUBSCRIBE_NAMESPACE as SUBSCRIBE_ANNOUNCES in MoQT.
2024-10-21 quiche-dev@google.com Enabling rolled out flags.
2024-10-17 rch@google.com Make Hyperloop client and server enable flow label changes to avoid black holes.
2024-10-17 martinduke@google.com Update SimpleSessionNotifier for RESET_STREAM_AT frames.
2024-10-17 martinduke@google.com Don't track support for RESET_STREAM_AT in QuicConnection. Instead, rely on state in QuicFramer.
2024-10-17 rch@google.com Remove an unnecessary setsockopt of IPV6_FLOWINFO_SEND. Enabling IPV6_FLOWINFO_SEND causes the kernel to send a randomly generated flow label unless a flow label is explicitly provided in a CMSG. Since we already wired up support to set the label in CMSG, this call is redundant and it has the unintended side effect of causing random flow labels to be sent, even for sockets where no flow labels are intended. For QuicUdpSocket users that do not intend to send flow labels, this would be a behavior change.
2024-10-17 rch@google.com Make QuicConnection  generate a new flow label when flow label based black hole avoidance is enabled, and added CODE_COUNTS for when the flow label changes
2024-10-17 martinduke@google.com Update QuicControlFrameManager to support RESET_STREAM_AT frames.
2024-10-17 quiche-dev@google.com Automated g4 rollback of changelist 685776850.
2024-10-17 rch@google.com Only check for flow label functionality in the QUIC end-to-end test if the connection is actually using IPv6.
2024-10-16 rch@google.com Change IPv6 flow labels when QUIC connections have a retransmission timeout or when a new packet that creates a gap is received with a new flow lable.
2024-10-16 dschinazi@google.com Clean up a few QuicConnectionTests
2024-10-15 wub@google.com Deprecate --gfe2_reloadable_flag_quic_new_error_code_for_invalid_hostname.
2024-10-15 quiche-dev@google.com Enable stack protector to prevent stack buffer overflows.
2024-10-15 quiche-dev@google.com Enabling rolled out flags.
2024-10-14 rch@google.com Allow QUIC connections to send and receive IPv6 flow labels.
2024-10-14 danzh@google.com Always support SPAD on the client side.
2024-10-14 fayang@google.com Change HeaderBlock members to be const.
2024-10-14 danzh@google.com Fix goolgeurl tarball link.
2024-10-14 quiche-dev@google.com Automated g4 rollback of changelist 685757306.
2024-10-14 fayang@google.com Optimize QpackBlockingManager for CPU efficiency.
2024-10-14 quiche-dev@google.com Automated g4 rollback of changelist 685481728.
2024-10-14 birenroy@google.com Replaces inefficient standard library container types with Abseil and QUICHE equivalents.
2024-10-13 quiche-dev@google.com Automated g4 rollback of changelist 684986925.
2024-10-12 quiche-dev@google.com Fix 2 ProtobufTransformer findings: * Remove dead proto options (2 times)
2024-10-12 quiche-dev@google.com Remove dead proto options
2024-10-11 quiche-dev@google.com Add support for qbone bridging.
2024-10-11 rch@google.com Remove DCHECK which breaks Target: //video/streaming/edge:edge_server_wrapper_test
2024-10-11 wub@google.com Add QUIC code counters to observe the effect of application driven pacing.
2024-10-11 wub@google.com Change `ProofSourceHandleCallback::ConfigureSSLFunc` and `ProofSourceHandleCallback::ALPNSelectFunc` from `std::function` to `quiche::SingleUseCallback`. `quiche::SingleUseCallback` is an alias for single-use `absl::AnyInvocable`.
2024-10-11 rch@google.com Implement support for reading and writing IPv6 flow labels in QuicUdpSocket.
2024-10-10 quiche-dev@google.com Fix 4 ProtobufTransformer findings: * Remove dead proto options (4 times)
2024-10-10 birenroy@google.com Updates tests to demonstrate a behavior difference between oghttp2 and nghttp2.
2024-10-10 quiche-dev@google.com Fix 10 ProtobufTransformer findings: * Remove dead proto options (10 times)
2024-10-09 danzh@google.com Update SHA checksume of googleurl library.
2024-10-09 quiche-dev@google.com No public description
2024-10-08 quiche-dev@google.com No public description
2024-10-08 wub@google.com Change `QuicConnection.termination_packets_` to `QuicConnection.termination_info_`, which bundles the termination packets with the connection close error code.
2024-10-07 wub@google.com Add more specific error codes for QUIC handshake failures.
2024-10-07 quiche-dev@google.com Replace deprecated HexStringToBytes API
2024-10-07 quiche-dev@google.com Enabling rolled out flags.
2024-10-07 martinduke@google.com Add length field to MoQT control messages.
2024-10-03 quiche-dev@google.com Add missing "override" specifier in mock methods.
2024-10-03 quiche-dev@google.com Add a new OnParsedClientHelloReceived method to QuicConnection and QuicConnectionDebugVisitor.
2024-10-02 wub@google.com Deprecate --gfe2_reloadable_flag_quic_new_error_code_when_packets_buffered_too_long.
2024-10-02 fayang@google.com No public description
2024-10-02 fayang@google.com No public description
2024-10-01 birenroy@google.com Adds test cases exercising response-complete-before-request for nghttp2 and oghttp2.
2024-10-01 martinduke@google.com Add parser/framer support for SUBSCRIBE_NAMESPACE, SUBSCRIBE_NAMESPACE_OK, SUBSCRIBE_NAMESPACE_ERROR, UNSUBSCRIBE_NAMESPACE.
2024-10-01 birenroy@google.com Removes the last library in //third_party/spdy/core, and deletes the package.
2024-10-01 wub@google.com Add QUIC connection options for testing: - CHP1: Add 1-packet padding to CHLO. - CHP2: Add 2-packet padding to CHLO.
2024-09-30 asedeno@google.com Don't set IPv4 socket options on dual-stack sockets on `__APPLE__` platforms.
2024-09-30 vasilvv@google.com Update WebTransport header names.
2024-09-30 vasilvv@google.com Simplify some of the framing code.
2024-09-30 vasilvv@google.com Record QUIC traces in moqt_simulator.
2024-09-30 martinduke@google.com Implement MoQT Peeps and Object message changes for draft-06. This is the minimum for interoperability; this code always sends subgroup_id = 0 and ignores the incoming subgroup_id.
2024-09-30 martinduke@google.com Update existing messages for draft-06. This is mostly turning track_namespace into a tuple.  Also generalizes Subscribe parameters.
2024-09-26 birenroy@google.com Migrates code from `//third_party/spdy/core:spdy_protocol_lib` to `//third_party/http2/core:spdy_protocol`.
2024-09-26 martinduke@google.com fix asan error because the log message uses the variable about to be initialized, rather than the value being assigned.
2024-09-26 birenroy@google.com Deletes unused artifacts from //third_party/spdy.
2024-09-26 martinduke@google.com Complete processing of RESET_STREAM_AT frames. Negotiate with transport parameters and pass the frame from QuicConnection to QuicStream.
2024-09-26 birenroy@google.com Moves //third_party/spdy/core:http2_frame_decoder_adapter_fuzzer to //third_party/http2/core.
2024-09-26 birenroy@google.com Migrates code from `//third_party/spdy/core:spdy_protocol_lib` to `//third_party/http2/core:spdy_protocol`.
2024-09-26 birenroy@google.com Moves libraries from //third_party/spdy/core/hpack to //third_party/http2/hpack.
2024-09-26 rch@google.com No public description
2024-09-26 birenroy@google.com Migrates the old cc_fuzz_target in //third_party/spdy to the modern go/fuzztest framework.
2024-09-25 birenroy@google.com Migrates code from //third_party/spdy/core:spdy_framer_lib to //third_party/http2/core:spdy_framer.
2024-09-25 wub@google.com If QUIC server closes connection due to invalid hostname in SNI, use new connection close code `QUIC_HANDSHAKE_FAILED_INVALID_HOSTNAME` instead of the generic `QUIC_HANDSHAKE_FAILED`.
2024-09-25 birenroy@google.com Removes the now-unused build target //third_party/spdy/core:http2_header_block_lib.
2024-09-25 birenroy@google.com Migrates targets from `//third_party/spdy/core:spdy_alt_svc_wire_format_lib` to `//third_party/http2/core:spdy_alt_svc_wire_format`.
2024-09-25 birenroy@google.com Migrates remaining google3 users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock.
2024-09-25 birenroy@google.com Migrates code from `//third_party/spdy/core:http2_deframer_lib` to `//third_party/http2/core:http2_frame_decoder_adapter`.
2024-09-25 martinduke@google.com Roll the version number to draft-06. This will break interoperability with other MoQT implementations until we update the wire image.
2024-09-25 vasilvv@google.com Refactor MoQT interfaces to consistently pass FullTrackName around.
2024-09-24 martinduke@google.com MOQT MAX_SUBSCRIBE_ID implementation
2024-09-24 wub@google.com No public description
2024-09-24 elburrito@google.com BlindSignAuth: Update error messages to return constant strings. Messages now return at Anonymous Tokens-level granularity.
2024-09-24 wub@google.com Deprecate --quic_dispatcher_replace_cid_on_first_packet.
2024-09-23 quiche-dev@google.com No public description
2024-09-23 quiche-dev@google.com Remove quic::QuicServerId::privacy_mode_enabled()
2024-09-23 quiche-dev@google.com Enabling rolled out flags.
2024-09-23 wub@google.com No public description
2024-09-22 fayang@google.com Postpone removing handshake timeout from transport params getting negotiated to handshake complete.
2024-09-22 fayang@google.com Deliver STOP_SENDING to zombie streams.
2024-09-20 martinduke@google.com No public description
2024-09-19 vasilvv@google.com Introduce padding streams.
2024-09-19 quiche-dev@google.com QUICHE: always print ACK ranges as [a...b], except if the range is a single packet.
2024-09-19 vasilvv@google.com Split MoqtParser into MoqtControlParser and MoqtDataParser.
2024-09-18 birenroy@google.com Adds `^` and `|` to the set of allowed characters in HTTP/2 request paths.
2024-09-18 rch@google.com Add an IPv6 flow label field to QuicPacketWriterParams so that packet writers can set this field when writing packets. Currently nothing sets this field.
2024-09-18 quiche-dev@google.com No public description
2024-09-18 vasilvv@google.com Clean up MoqtTestMessage
2024-09-18 martinduke@google.com Update QuicStream to handle RESET_STREAM_AT frames.
2024-09-17 quiche-dev@google.com No public description
2024-09-17 quiche-dev@google.com macro cleanup: "(const override)" -> "(const, override)"
2024-09-16 martinduke@google.com Implement L4S version of Cubic congestion control for QUIC.
2024-09-16 wub@google.com Deprecate --gfe2_reloadable_flag_quic_bbr2_enable_bbpd_by_default.
2024-09-13 wub@google.com Add extra error details to TlsServerHandshaker to indicate the reason for `ssl_select_cert_error`. It is added into the connection close error details, which we can query from logs.
2024-09-12 martinduke@google.com No public description
2024-09-12 vasilvv@google.com Add logic to be able to adjust MoQ bitrate downwards.
2024-09-12 wub@google.com Add code counts and error details to debug QUIC TLS handshake failures.
2024-09-10 martinduke@google.com Order MoQT Queued streams by send_order.
2024-09-09 birenroy@google.com Allows [] and {} in request paths.
2024-09-09 quiche-dev@google.com Add CRNT to Cronet QUIC connection options.
2024-09-05 wub@google.com No public description
2024-09-05 rch@google.com Allow HTTP/3 requests to have a "host" header, per the RFC (Re-landing QUICHE-only changes from cl/666964686)
2024-09-04 quiche-dev@google.com Switch some `QUIC_LOG` lines to `QUIC_PLOG`, which will include the textual expansion of `errno` to the log line.
2024-09-04 quiche-dev@google.com Convert some `errno` values to human readable form.
2024-09-03 quiche-dev@google.com Enabling rolled out flags.
2024-09-03 quiche-dev@google.com Add a new message status for sending HTTP Datagrams before SETTINGS are received.
2024-09-03 rch@google.com Fix quic_mutex.h to remove redefined macros.
2024-08-29 martinduke@google.com Add MoQT Track forwarding preference to IsStreamProvokingObject()
2024-08-29 rch@google.com Automated g4 rollback of changelist 666964686.
2024-08-28 vasilvv@google.com Introduce Object ACKs (OACKs) to MoQT.
2024-08-26 quiche-dev@google.com Enabling rolled out flags.
2024-08-23 rch@google.com Allow HTTP/3 requests to have a "host" header, per the RFC
2024-08-23 dschinazi@google.com Fix one incorrect use of GetMinCryptoFrameSize
2024-08-23 rch@google.com No public description
2024-08-22 quiche-dev@google.com Implement echo handler in QuicMemoryCacheBackendTest
2024-08-22 martinduke@google.com Fix MoQT MSAN error: Use the singleton SimpleBufferAllocator to avoid this being freed before cached objects.
2024-08-22 martinduke@google.com Add test for MoQ Chat where a client leaves and rejoins. Fix resulting problems.
2024-08-21 vasilvv@google.com Split SUBSCRIBE parameters into their own struct.
2024-08-20 martinduke@google.com Abstract out the MoQ Chat User interface and implement E2E chat test.
2024-08-19 quiche-dev@google.com Automated g4 rollback of changelist 661833030.
2024-08-16 wub@google.com No public description
2024-08-16 vasilvv@google.com Add delivery order control into the simulator.
2024-08-16 vasilvv@google.com Add `deadline` parameter to MoQT simulation.
2024-08-15 wub@google.com Move a flag count for flag `quic_dispatcher_replace_cid_on_first_packet`.
2024-08-14 rch@google.com No public description
2024-08-14 wub@google.com Let QuicDispatcher to send acks to buffered INITIAL packets.
2024-08-14 vasilvv@google.com Fix MSAN errors.
2024-08-13 dschinazi@google.com Add ability to run QuicDispatcher without any versions
2024-08-13 vasilvv@google.com Actually set stream priorities in MoQT.
2024-08-13 birenroy@google.com Adds `quiche::header_properties::HasInvalidPathChar()`.
2024-08-12 bnc@google.com Remove QuicHeaderList::OnHeaderBlockStart().
2024-08-12 fayang@google.com No public description
2024-08-12 birenroy@google.com Uses the `DataFrameAssembler` in `Http2Dispatcher`.
2024-08-12 bnc@google.com Factor out size limit logic from QuicHeaderList.
2024-08-12 bnc@google.com Remove quic/platform/api/quic_mutex.h
2024-08-11 quiche-dev@google.com Upgrade to the latest protobuf edition
2024-08-09 rch@google.com Fix bug in QpackEncoder when cookie crumbling is disabled. Without this fix, encoded cookies will be truncated.
2024-08-09 fayang@google.com No public description
2024-08-09 quiche-dev@google.com Add a first implementation of the CustomProbeService interface to the bonnet.
2024-08-09 fayang@google.com No public description
2024-08-08 martinduke@google.com Refactor MoQ ChatClient to support end-to-end tests and use moq_chat.h.
2024-08-08 vasilvv@google.com Fix standalone QUICHE build.
2024-08-07 ricea@google.com Allocate memory less often in HttpHeaderBlock hash function
2024-08-07 martinduke@google.com Implement moq-chat server.
2024-08-07 birenroy@google.com Deprecates QUICHE reloadable flag http2_add_hpack_overhead_bytes2.
2024-08-07 bnc@google.com Update and simplify QUICHE platform documentation.
2024-08-07 bnc@google.com Remove obsolete comment.
2024-08-07 birenroy@google.com Adds a way to reject messages with `obs-text` in header field names.
2024-08-07 birenroy@google.com Reorders members of BalsaFrame, and uses a more compact representation.
2024-08-06 bnc@google.com Use kMetadataExtensionId directly in switch case.
2024-08-06 bnc@google.com Modernize constants in http_protocol.h.
2024-08-06 fayang@google.com Set chrome_value to true for gfe2_reloadable_flag_enable_h3_origin_frame.
2024-08-06 quiche-dev@google.com Enabling rolled out flags.
2024-08-01 wub@google.com Fix //third_party/quic/core:quic_dispatcher_test with Q046.
2024-08-01 quiche-dev@google.com Add EVMB to Envoy QUIC connection options.
2024-08-01 wub@google.com QUIC TlsClientHandshaker: Demote some INFO logs to DLOG.
2024-07-31 wub@google.com Replace QUIC CID when the first INITIAL packet of a connection is enqueued into the QuicBufferedPacketStore.
2024-07-31 martinduke@google.com Remove unused MoqtSession reference from MoqtOutgoingQueue.
2024-07-31 bnc@google.com Add CookieCrumbling argument to QpackEncoder constructor, and add QuicSpdySession::DisableCookieCrumbling() method.
2024-07-31 bnc@google.com Add ValueSplittingHeaderList option to disable cookie crumbling during QPACK encoding.
2024-07-30 martinduke@google.com Restore operation of chat_client_bin after draft-05 update.
2024-07-30 birenroy@google.com Updates //net/floo to refer to the new location of some HTTP/2 libraries.
2024-07-29 rch@google.com Add QUICHE support for the HTTP/3 ORIGIN frame.
2024-07-26 rch@google.com Modernize the HTTP/3 HttpDecoder by using non-const references in place of non-null pointers, when they do not outlive the call. Annotate with absl::NonNull when pointer do outlive the call.
2024-07-25 quiche-dev@google.com Add method to serialize connection close packet with large packet number
2024-07-24 birenroy@google.com Always obeys BalsaFrame::invalid_chars_level_ when parsing header fields.
2024-07-24 wub@google.com Inline QuicDispatcher::BufferEarlyPacket() from all call sites, and remove this function.
2024-07-22 quiche-dev@google.com Fix bug for call to Visitor::OnWrite()
2024-07-19 vasilvv@google.com Bump version number to draft-05.
2024-07-19 vasilvv@google.com Implement draft-05 SUBSCRIBE/SUBSCRIBE_UPDATE
2024-07-18 vasilvv@google.com Support serialization and parsing for MoQT draft-05 group order in SUBSCRIBE_OK.
2024-07-18 vasilvv@google.com Support serialization and parsing for MoQT draft-05 publisher priority.
2024-07-18 vasilvv@google.com Refactor MoQT sending logic to pull objects from the application, instead of pushing them onto individual MoQT sessions.
2024-07-18 birenroy@google.com Updates SpdyFrameSequence::GetIR() to return a pointer rather than a reference.
2024-07-18 danzh@google.com Unhide security fix to QuicStreamSequencerBuffer added in cl/626072759.
2024-07-18 fayang@google.com Add NOIP connection option and AddConnectionOptionsToSend method.
2024-07-17 quiche-dev@google.com Make implicit `this` capture explicit
2024-07-17 danzh@google.com No public description
2024-07-17 wub@google.com Fix test ConnectionMigrationWithNonZeroConnectionIDClientIPChangedMultipleTimes.
2024-07-16 wub@google.com Deprecate gfe2_restart_flag_quic_opport_bundle_qpack_decoder_data5.
2024-07-16 birenroy@google.com Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock.
2024-07-16 birenroy@google.com Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock.
2024-07-16 vasilvv@google.com Fix a bug in parser where for non-normal object status, the number of bytes read was counted incorrectly.
2024-07-16 birenroy@google.com Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock.
2024-07-15 birenroy@google.com Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock.
2024-07-15 danzh@google.com Unhide security fix to QuicSpdyStream (cl/626052950).
2024-07-12 birenroy@google.com Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock.
2024-07-12 awillia@google.com Fix a memory leak in InitializeAndCheckForTlsPskFailure test helper
2024-07-11 fayang@google.com Parse and log cert compression algos from CHLO.
2024-07-11 quiche-dev@google.com Modify the visitor to allow it to interact with packets written by the packet exchanger.
2024-07-11 vasilvv@google.com Implement MoQT priority calculation.
2024-07-11 wub@google.com Bring SpdyIntrusiveList back to life as QuicheIntrusiveList.
2024-07-11 vasilvv@google.com Split MoqtSession::Stream into ControlStream, IncomingDataStream, and OutgoingDataStream.
2024-07-11 birenroy@google.com Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock.
2024-07-11 wub@google.com No public description
2024-07-11 birenroy@google.com Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock.
2024-07-11 wub@google.com Remove `should_update_expected_server_connection_id_length_` from QuicDispatcher.
2024-07-10 birenroy@google.com Moves the remaining library targets from //third_party/spdy/core to //third_party/http2/core.
2024-07-10 birenroy@google.com Moves several targets from //third_party/spdy/core to //third_party/http2/core.
2024-07-09 rch@google.com Add HttpProtocolDefect tracking for invalid target URIs.
2024-07-09 wub@google.com Remove QuicDispatcher::SetAllowShortInitialServerConnectionIds.
2024-07-09 birenroy@google.com Moves test utilities from //third_party/spdy/test_tools/ to //third_party/http2/test_tools/.
2024-07-09 awillia@google.com Update PreSharedKey tests to pass without non-fatal QUIC_BUG
2024-07-09 birenroy@google.com Moves some build targets from //third_party/spdy/core/hpack to //third_party/http2/hpack.
2024-07-09 birenroy@google.com Moves a SPDY test utility to the only package that references it.
2024-07-08 bnc@google.com Rename HuffmanEncodeFast() to HuffmanEncode().
2024-07-08 bnc@google.com Deprecate --gfe2_reloadable_flag_quic_better_qpack_compression.
2024-07-08 bnc@google.com Remove slow HuffmanEncode().
2024-07-08 awillia@google.com Improve QuicConnectionTest test times
2024-07-03 elburrito@google.com BlindSignAuth: Switch to WebSafeBase64EscapeWithPadding for token and extensions in PrivacyPassTokenData, per version 02 of draft-wood-privacypass-auth-scheme-extensions.
2024-07-02 bnc@google.com Remove quic/core/quic_flags_list.h.
2024-07-01 wub@google.com In `QuicBufferedPacketStoreTest`, pass `long_packet_type` to `QuicBufferedPacketStore::EnqueuePacket`.
2024-06-28 birenroy@google.com Removes BalsaFrame::InvalidCharsLevel::kWarning and related code.
2024-06-28 birenroy@google.com Removes tracking of invalid character counts in BalsaFrame.
2024-06-28 vasilvv@google.com Fix standalone QUICHE build
2024-06-28 martinduke@google.com Move MoqtTrack code into a .cc file.
2024-06-28 martinduke@google.com Handle MoQT ANNOUNCE_CANCEL messages.
2024-06-28 bnc@google.com Make default impl use quiche_feature_flags_list.h instead of quic_flags_list.h.
2024-06-27 quiche-dev@google.com Automated g4 rollback of changelist 646639268.
2024-06-26 quiche-dev@google.com Change the service type for WebView to "chromeipblinding"
2024-06-26 bnc@google.com Add `external_value` to quiche/common/quiche_feature_flags_list.h.
2024-06-25 wub@google.com Add flag count for `quic_bbr2_enable_bbpd_by_default`.
2024-06-25 birenroy@google.com Defines some string constants as `inline constexpr absl::string_view`.
2024-06-25 bnc@google.com Add test expectation of INVALID_HEADER_CHARACTER warning when header value has NULL.
2024-06-25 martinduke@google.com MoQT: Use object status for end of groups and SUBSCRIBE_DONE.
2024-06-24 birenroy@google.com Adds a `HttpValidationPolicy` option to sanitize or reject invalid whitespace in the HTTP first line.
2024-06-24 wub@google.com Fix a bug in libevent-based QuicEventLoop where artificial events are notified in the same epoll iteration.
2024-06-21 birenroy@google.com Adds a visitor-based metadata sending API to Http2Adapter and subclasses.
2024-06-21 birenroy@google.com Demotes an ERROR log message to VLOG(1).
2024-06-20 rch@google.com Add a new HttpValidationPolicy option `disallow_invalid_target_uris` which will reject invalid target URIs in HTTP/1 requests. This includes: * asterisk-form ("*") for methods other than OPTIONS * CONNECT request without a valid port, or without balanced IPv6 brackets * Otherwise, target URIs which do not start with '/' or contain '://'
2024-06-20 renjietang@google.com Update QuicStream::OnConnectionClosed() to take in full connection close frame so that error details can be extracted.
2024-06-20 dschinazi@google.com Update to draft-ietf-httpbis-unprompted-auth-07
2024-06-20 bnc@google.com Fix disallow_lone_cr_in_chunk_extension behavior.
2024-06-17 martinduke@google.com Fix uninitialized pointer in CLI for moqt chat client.
2024-06-17 bnc@google.com Add Balsa tests documenting \r detection behavior.
2024-06-17 martinduke@google.com Fix scope of SubscribeWindow argument to fix ASAN error.
2024-06-17 quiche-dev@google.com Enabling rolled out flags.
2024-06-15 martinduke@google.com Add Object Status to MoQT Object Messages.
2024-06-14 wub@google.com Move PacketCollector from `quic_dispatcher.cc` to `quic_buffered_packet_store.h`.
2024-06-14 martinduke@google.com MoQT tracking of largest object ID in each group.
2024-06-14 martinduke@google.com Send MoQT SUBSCRIBE_DONE when all objects are delivered. Tracks objects published and not yet published separately.
2024-06-13 wub@google.com Refactor QuicBufferedPacketStore::EnqueuePacket to take a ReceivedPacketInfo instead of pieces of information from ReceivedPacketInfo.
2024-06-13 wub@google.com Enhance the QUIC connection close details when peer address changed before handshake is confirmed, by adding the peer addresses before and after the change.
2024-06-12 quiche-dev@google.com Refactor quic's RawPacketComposer to share more code for CMSG with GfeQuicGsoBatchWriter using the QuicMsgHdr class.
2024-06-12 birenroy@google.com Fixes handling for DATA frames with padding in combination with Content-Length.
2024-06-12 birenroy@google.com Adds test cases for OgHttp2Adapter as a client receiving a response with Content-Length and padding.
2024-06-12 vasilvv@google.com Fix MSAN failures in MoQT integration tests.
2024-06-11 vasilvv@google.com Implement a very basic MoQT simulator.
2024-06-11 vasilvv@google.com Split MoQT simulated endpoints into a separate header file.
2024-06-11 quiche-dev@google.com Add `GeoHint` to `BlindSignToken`.
2024-06-11 bnc@google.com Set `header_decoding_delay_` before calling methods.
2024-06-10 ericorth@google.com No public description
2024-06-10 martinduke@google.com Update MoQT to draft-04
2024-06-07 wub@google.com Split `QuicConnectionTracer` into two interfaces: - A `QuicPlatformConnectionContext` interface that get notified when a `QuicConnection` becomes active or inactive. - A new smaller `QuicConnectionTracer` that only contains PrintXXX methods.
2024-06-06 dschinazi@google.com Disable capsule parsing for failed requests
2024-06-05 quiche-dev@google.com Introduce new QUICHE_PROTOCOL_FLAG of type uint32_t
2024-06-04 danzh@google.com Limit the number of port migrations a QUIC client will attempt upon path degrading signals. This is to prevent the client from migrating port too frequently, which may cause port exhaustion.
2024-06-04 quiche-dev@google.com LSC: Move expensive variables on their last use to avoid copies.
2024-06-03 birenroy@google.com Enabling rolled out flags.
2024-06-03 wub@google.com Increase the (virtual) wait time in `QuicGenericSessionTest.LoseDatagrams` for the final datagrams to arrive.
2024-05-31 quiche-dev@google.com No public description
2024-05-31 quiche-dev@google.com No public description
2024-05-31 vasilvv@google.com Refactor QuicConnectionAlarms to take a delegate instead of a QuicConnection.
2024-05-31 ericorth@google.com Remove non-default initcwnd capabilities from Bonnet
2024-05-30 bnc@google.com Add QuicSpdyStreamPeer::set_header_decoding_delay().
2024-05-29 wub@google.com In preparation to adding acks to buffered initial packets: - Refactor several `QuicFramer` member functions into static functions, such that they can be called from `QuicDispatcher`. - Add a `QuicFramer::TryDecryptInitialPacketDispatcher` function for the `QuicDispatcher` to parse the packet number of INITIAL packets.
2024-05-28 vasilvv@google.com Fix Envoy compilation issues.
2024-05-28 quiche-dev@google.com Fix build error in chromium.
2024-05-28 quiche-dev@google.com Automated g4 rollback of changelist 635069412.
2024-05-28 bnc@google.com Enabling rolled out flags.
2024-05-28 bnc@google.com Measure QPACK delay in QuicSpdyStream.
2024-05-28 bnc@google.com Use human-readable BUG IDs in quic_interval_deque.h
2024-05-27 quiche-dev@google.com Automated g4 rollback of changelist 637261323.
2024-05-25 quiche-dev@google.com Upgrade to the latest protobuf edition
2024-05-24 wub@google.com Log more information when a connection ID collision is detected in QUIC dispatcher.
2024-05-23 wub@google.com No public description
2024-05-23 ianswett@google.com gfe-relnote: Add a new connection option (kCDFR) to defer sending on the client.
2024-05-23 bnc@google.com Change QpackEncoderHeaderTable method signatures.
2024-05-22 quiche-dev@google.com Resolve the following technical debt issue: OnAdjustBurstSize appears to be dead and not tested.
2024-05-22 vasilvv@google.com Replace QuicStreamPriority::Default with a default constructor.
2024-05-22 bnc@google.com Update RFC9204 references in comments.
2024-05-22 bnc@google.com Improve parametrization of QpackEncoderTest.
2024-05-22 bnc@google.com Improve QPACK encoding algorithm.
2024-05-21 vasilvv@google.com Support WebTransport-style priorities in QUIC
2024-05-21 quiche-dev@google.com Resolve the following 85 technical "build-missing-std-includes" debt issues:
2024-05-21 quiche-dev@google.com Resolve the following 58 technical "build-missing-std-includes" debt issues:
2024-05-21 quiche-dev@google.com Resolve the following 94 technical "build-missing-std-includes" debt issues:
2024-05-21 quiche-dev@google.com Resolve the following 82 technical "build-missing-std-includes" debt issues:
2024-05-21 quiche-dev@google.com Resolve the following 85 technical "build-missing-std-includes" debt issues:
2024-05-21 quiche-dev@google.com Resolve the following 88 technical "build-missing-std-includes" debt issues:
2024-05-21 quiche-dev@google.com Resolve the following 98 technical "build-missing-std-includes" debt issues:
2024-05-21 quiche-dev@google.com Resolve the following 97 technical "build-missing-std-includes" debt issues:
2024-05-21 quiche-dev@google.com Resolve the following 93 technical "build-missing-std-includes" debt issues:
2024-05-21 quiche-dev@google.com Resolve the following 87 technical "build-missing-std-includes" debt issues:
2024-05-21 wub@google.com Set `gfe2_restart_flag_quic_opport_bundle_qpack_decoder_data5` to true on chromium.
2024-05-21 bnc@google.com Add QpackEncoderHeaderTable::FindHeaderName().
2024-05-20 quiche-dev@google.com [snm] [optimization] Add recvmmsg to QBONE kernel interface.
2024-05-18 quiche-dev@google.com Fix 23 ProtobufTransformer findings: * Upgrade to the latest protobuf edition (23 times)
2024-05-17 ericorth@google.com Disable qbone_route_init_cwnd
2024-05-16 birenroy@google.com Do not use C++20 designated initializers in oghttp2_session.cc.
2024-05-16 quiche-dev@google.com Do not reset tunnels due to Stubby probe failure in quarantine mode.
2024-05-15 birenroy@google.com Unifies `OgHttp2Session::DataFrameInfo` and `Http2VisitorInterface::DataFrameHeaderInfo`.
2024-05-15 birenroy@google.com Introduces new `Http2VisitorInterface` methods for DATA frame generation.
2024-05-15 bnc@google.com Improve qpack_header_table_test.cc.
2024-05-15 quiche-dev@google.com Initialize a struct's `std::optional` member to `std::nullopt` as default.

Change-Id: I88d9df1395fed15ee680ac1326fd1433ff84996c
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6242923
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
6 files changed
tree: 5442629099d7542344c1ef70114b33b73735c500
  1. build_overrides/
  2. cast/
  3. discovery/
  4. docs/
  5. gni/
  6. infra/
  7. osp/
  8. platform/
  9. test/
  10. testing/
  11. third_party/
  12. tools/
  13. util/
  14. .clang-format
  15. .gitignore
  16. .gitmodules
  17. .gn
  18. .vpython3
  19. AUTHORS
  20. BUILD.gn
  21. codereview.settings
  22. DEPS
  23. LICENSE
  24. OWNERS
  25. PRESUBMIT.py
  26. PRESUBMIT_test_mocks.py
  27. README.md
README.md

Open Screen Library

The Open Screen Library implements the Open Screen Protocol, Multicast DNS and DNS-SD, and the Chromecast protocols (discovery, application control, and media streaming).

The library consists of feature modules that share a common platform API that must be implemented and linked by the embedding application.

The major feature modules in the library can be used independently and have their own documentation:

Getting the code

Installing depot_tools

Library dependencies are managed using gclient, from the depot_tools repo.

To get gclient, run the following command in your terminal:

    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

Then add the depot_tools folder to your PATH environment variable.

Note that openscreen does not use other features of depot_tools like repo or drover. However, some git-cl functions do work, like git cl try, git cl format, git cl lint, and git cl upload.

Checking out code

From the parent directory of where you want the openscreen checkout (e.g., ~/my_project_dir), configure gclient and check out openscreen with the following commands:

    cd ~/my_project_dir
    gclient config https://chromium.googlesource.com/openscreen
    gclient sync

The first gclient command will create a default .gclient file in ~/my_project_dir that describes how to pull down the openscreen repository. The second command creates an openscreen/ subdirectory, downloads the source code, all third-party dependencies, and the toolchain needed to build things; and at their appropriate revisions.

Syncing your local checkout

To update your local checkout from the openscreen reference repository, just run

   cd ~/my_project_dir/openscreen
   git pull
   gclient sync

This will rebase any local commits on the remote top-of-tree, and update any dependencies that have changed.

Build setup

The following are the main tools are required for development/builds.

  • Installed by gclient automatically
    • Build file generator: gn (installed into buildtools/)
    • Code formatter: clang-format (installed into buildtools/)
    • Builder: ninja
    • Compiler/Linker: clang
  • Installed by you
    • JSON validator: yajsv
    • libstdc++
    • gcc
    • XCode

yajsv installation

  1. Install go from https://golang.org or your Linux package manager.
  2. go install github.com/neilpa/yajsv@latest

libstdc++ (Linux only)

Ensure that libstdc++ 8 is installed, as clang depends on the system instance of it. On Debian flavors, you can run:

   sudo apt-get install libstdc++-8-dev libstdc++6-8-dbg

XCode (Mac only)

You can install the XCode command-line tools only or the full version of XCode.

xcode-select --install

gcc (optional, Linux only)

Setting the gn argument is_clang=false on Linux enables building using gcc instead.

  mkdir out/debug-gcc
  gn gen out/debug-gcc --args="is_clang=false"

Note that g++ version 9 or newer must be installed. On Debian flavors you can run:

  sudo apt-get install gcc-9

Debug build

Setting the gn argument is_debug=true enables debug build.

  gn gen out/debug --args="is_debug=true"

gn configuration

Running gn args opens an editor that allows to create a list of arguments passed to every invocation of gn gen. gn args --list will list all of the possible arguments you can set.

  gn args out/debug

Building targets

We use the Open Screen Protocol demo application as an example, however, the instructions are essentially the same for all executable targets.

  mkdir out/debug
  gn gen out/debug             # Creates the build directory and necessary ninja files
  ninja -C out/debug osp_demo  # Builds the executable with ninja
  ./out/debug/osp_demo         # Runs the executable

The -C argument to ninja works just like it does for GNU Make: it specifies the working directory for the build. So the same could be done as follows:

  ./gn gen out/debug
  cd out/debug
  ninja osp_demo
  ./osp_demo

After editing a file, only ninja needs to be rerun, not gn. If you have edited a BUILD.gn file, ninja will re-run gn for you.

We recommend using autoninja instead of ninja, which takes the same command-line arguments but automatically parallelizes the build for your system, depending on number of processor cores, amount of RAM, etc.

Also, while specifying build targets is possible while using ninja, typically for development it is sufficient to just build everything, especially since the Open Screen repository is still quite small. That makes the invocation to the build system simplify to:

  autoninja -C out/debug

For details on running osp_demo, see its README.md.

Building all targets

Running ninja -C out/debug gn_all will build all non-test targets in the repository.

gn ls --type=executable out/debug will list all of the executable targets that can be built.

If you want to customize the build further, you can run gn args out/debug to pull up an editor for build flags. gn args --list out/debug prints all of the build flags available.

Building and running unit tests

  ninja -C out/debug openscreen_unittests
  ./out/debug/openscreen_unittests

Contributing changes

Open Screen library code should follow the Open Screen Library Style Guide.

This library uses Chromium Gerrit for patch management and code review (for better or worse). You will need to register for an account at chromium-review.googlesource.com to upload patches for review.

The following sections contain some tips about dealing with Gerrit for code reviews, specifically when pushing patches for review, getting patches reviewed, and committing patches.

Uploading a patch for review

The git cl tool handles details of interacting with Gerrit (the Chromium code review tool) and is recommended for pushing patches for review. Once you have committed changes locally, simply run:

  git cl format
  git cl upload

The first command will will auto-format the code changes using clang-format. Then, the second command runs the PRESUBMIT.py script to check style and, if it passes, a newcode review will be posted on chromium-review.googlesource.com.

If you make additional commits to your local branch, then running git cl upload again in the same branch will merge those commits into the ongoing review as a new patchset.

It's simplest to create a local git branch for each patch you want reviewed separately. git cl keeps track of review status separately for each local branch.

Addressing merge conflicts

If conflicting commits have been landed in the repository for a patch in review, Gerrit will flag the patch as having a merge conflict. In that case, use the instructions above to rebase your commits on top-of-tree and upload a new patchset with the merge conflicts resolved.

Tryjobs

Clicking the CQ DRY RUN button (also, confusingly, labeled COMMIT QUEUE +1) will run the current patchset through all LUCI builders and report the results. It is always a good idea get a green tryjob on a patch before sending it for review to avoid extra back-and-forth.

You can also run git cl try from the commandline to submit a tryjob.

Code reviews

Send your patch to one or more committers in the COMMITTERS file for code review. All patches must receive at least one LGTM by a committer before it can be submitted.

Submitting patches

After your patch has received one or more LGTM commit it by clicking the SUBMIT button (or, confusingly, COMMIT QUEUE +2) in Gerrit. This will run your patch through the builders again before committing to the main openscreen repository.

Additional resources