Implement receiver-side bootstrap protocol for Exo streaming [chromium/src : main]

0 views
Skip to first unread message

Dewita Sonya (Gerrit)

unread,
10:27 AM (4 hours ago) 10:27 AM
to Zijie He, kinuko...@chromium.org, fuchsia...@chromium.org, inca-eng...@google.com, blink-...@chromium.org

Dewita Sonya has uploaded the change for review

Dewita Sonya removed Zijie He, kinuko...@chromium.org, fuchsia...@chromium.org, inca-eng...@google.com and blink-...@chromium.org from reviewers of this change.

Commit message

Implement receiver-side bootstrap protocol for Exo streaming

This CL implements the receiver-side bootstrap protocol.
The receiver now intercepts the initial ExoBootstrapMessage (with START_BOOTSTRAP action) on the default control channel.
It responds with the same message, appending LaunchInfo with the receiver's DisplayInfo.

To support this, we introduced:
- ForwardingMessagePort: A wrapper for MessagePort that allows setting and clearing the receiver multiple times, and queues messages when no receiver is set. This is used to transition the port from the bootstrap handler to the streaming session client.
- StreamingBootstrapHandler: Handles the bootstrap proto exchange. It uses Base64 encoding for messages over the port to avoid corruption caused by UTF-8/UTF-16 conversion in MessagePortCast.

We also fixed some compilation errors in components/enterprise related to safe browsing flags being disabled.

Verified with new unit tests in streaming_bootstrap_handler_unittest.cc.

TAG=agy
CONV=8ae7bd87-5727-468b-9fa0-23fd9e118717


[Interactive Cast] Input Protos Integration

Integrates the input proto definitions into the Chromium source tree
under components/cast_receiver/proto/, configured to live natively
in the cast_receiver package.

This prepares the build targets for subsequent application logic changes.

BUG=None
TAG=agy
CONV=f8acf6c1-2bcd-475f-be82-8ae9ec4e5e3c
Change-Id: I750d9b08cc682ee1af2c69fa419febd62c1955f5

Change diff


Change information

Files:
  • M components/cast_receiver/browser/BUILD.gn
  • A components/cast_receiver/browser/streaming_message_port.cc
  • A components/cast_receiver/browser/streaming_message_port.h
  • M components/cast_receiver/browser/streaming_receiver_channel.cc
  • M components/cast_receiver/browser/streaming_receiver_channel.h
  • M components/cast_receiver/browser/streaming_receiver_channel_unittest.cc
  • M components/cast_receiver/browser/streaming_runtime_application.cc
  • M components/cast_receiver/browser/streaming_runtime_application.h
Change size: L
Delta: 8 files changed, 372 insertions(+), 14 deletions(-)
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: newchange
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I750d9b08cc682ee1af2c69fa419febd62c1955f5
Gerrit-Change-Number: 8038321
Gerrit-PatchSet: 4
Gerrit-Owner: Dewita Sonya <dso...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy
Reply all
Reply to author
Forward
0 new messages