Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3473)

Unified Diff: content/renderer/presentation/presentation_dispatcher.cc

Issue 2355723004: [Presentation API] 1-UA: send message between controller and receiver page (Closed)
Patch Set: Merge with changes in Issue 2343013002 Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/presentation/presentation_dispatcher.cc
diff --git a/content/renderer/presentation/presentation_dispatcher.cc b/content/renderer/presentation/presentation_dispatcher.cc
index a0b3125568cfa47217c6424ab470549d34f99c92..2dafd9566aaec6c524c50049049ed7baefd34bc6 100644
--- a/content/renderer/presentation/presentation_dispatcher.cc
+++ b/content/renderer/presentation/presentation_dispatcher.cc
@@ -81,8 +81,8 @@ namespace content {
PresentationDispatcher::PresentationDispatcher(RenderFrame* render_frame)
: RenderFrameObserver(render_frame),
controller_(nullptr),
- binding_(this) {
-}
+ receiver_(nullptr),
+ binding_(this) {}
PresentationDispatcher::~PresentationDispatcher() {
// Controller should be destroyed before the dispatcher when frame is
@@ -435,7 +435,11 @@ void PresentationDispatcher::OnConnectionClosed(
void PresentationDispatcher::OnSessionMessagesReceived(
blink::mojom::PresentationSessionInfoPtr session_info,
std::vector<blink::mojom::SessionMessagePtr> messages) {
- if (!controller_)
+ auto observer =
+ (receiver_
+ ? static_cast<blink::WebPresentationMessageObserver*>(receiver_)
+ : static_cast<blink::WebPresentationMessageObserver*>(controller_));
+ if (!observer)
return;
for (size_t i = 0; i < messages.size(); ++i) {
@@ -446,7 +450,7 @@ void PresentationDispatcher::OnSessionMessagesReceived(
switch (messages[i]->type) {
case blink::mojom::PresentationMessageType::TEXT: {
// TODO(mfoltz): Do we need to DCHECK(messages[i]->message)?
- controller_->didReceiveSessionTextMessage(
+ observer->didReceiveSessionTextMessage(
session_client.release(),
blink::WebString::fromUTF8(messages[i]->message.value()));
break;
@@ -454,9 +458,9 @@ void PresentationDispatcher::OnSessionMessagesReceived(
case blink::mojom::PresentationMessageType::ARRAY_BUFFER:
case blink::mojom::PresentationMessageType::BLOB: {
// TODO(mfoltz): Do we need to DCHECK(messages[i]->data)?
- controller_->didReceiveSessionBinaryMessage(
- session_client.release(), &(messages[i]->data->front()),
- messages[i]->data->size());
+ observer->didReceiveSessionBinaryMessage(session_client.release(),
+ &(messages[i]->data->front()),
+ messages[i]->data->size());
break;
}
default: {

Powered by Google App Engine
This is Rietveld 408576698