diff options
Diffstat (limited to 'chromium/content/browser/message_port_provider.cc')
-rw-r--r-- | chromium/content/browser/message_port_provider.cc | 56 |
1 files changed, 24 insertions, 32 deletions
diff --git a/chromium/content/browser/message_port_provider.cc b/chromium/content/browser/message_port_provider.cc index 42a1f4417d3..2f6c6b1f72d 100644 --- a/chromium/content/browser/message_port_provider.cc +++ b/chromium/content/browser/message_port_provider.cc @@ -6,6 +6,8 @@ #include <utility> +#include "base/optional.h" +#include "base/unguessable_token.h" #include "build/build_config.h" #include "build/chromecast_buildflags.h" #include "content/browser/renderer_host/render_process_host_impl.h" @@ -17,7 +19,7 @@ #if defined(OS_ANDROID) #include "base/android/jni_string.h" -#include "content/browser/android/app_web_message_port.h" +#include "content/public/browser/android/app_web_message_port.h" #endif using blink::MessagePortChannel; @@ -25,22 +27,28 @@ using blink::MessagePortChannel; namespace content { namespace { -void PostMessageToFrameInternal(WebContents* web_contents, - const base::string16& source_origin, - const base::string16& target_origin, - const base::string16& data, - std::vector<MessagePortChannel> channels) { +void PostMessageToFrameInternal( + WebContents* web_contents, + const base::string16& source_origin, + const base::string16& target_origin, + const base::string16& data, + std::vector<blink::MessagePortDescriptor> ports) { DCHECK_CURRENTLY_ON(BrowserThread::UI); + // TODO(chrisha): Kill off MessagePortChannel, as MessagePortDescriptor now + // plays that role. + std::vector<MessagePortChannel> channels; + for (auto& port : ports) + channels.emplace_back(MessagePortChannel(std::move(port))); + blink::TransferableMessage message; message.owned_encoded_message = blink::EncodeStringMessage(data); message.encoded_message = message.owned_encoded_message; message.ports = std::move(channels); - int32_t source_routing_id = MSG_ROUTING_NONE; RenderFrameHostImpl* rfh = static_cast<RenderFrameHostImpl*>(web_contents->GetMainFrame()); - rfh->PostMessageEvent(source_routing_id, source_origin, target_origin, + rfh->PostMessageEvent(base::nullopt, source_origin, target_origin, std::move(message)); } @@ -62,7 +70,7 @@ void MessagePortProvider::PostMessageToFrame( const base::string16& target_origin, const base::string16& data) { PostMessageToFrameInternal(web_contents, source_origin, target_origin, data, - std::vector<MessagePortChannel>()); + std::vector<blink::MessagePortDescriptor>()); } #if defined(OS_ANDROID) @@ -81,37 +89,21 @@ void MessagePortProvider::PostMessageToFrame( #endif #if defined(OS_FUCHSIA) || BUILDFLAG(IS_CHROMECAST) -// TODO(crbug.com/803242): Deprecated and will be shortly removed. -// static -void MessagePortProvider::PostMessageToFrame( - WebContents* web_contents, - const base::string16& source_origin, - const base::Optional<base::string16>& target_origin, - const base::string16& data, - std::vector<mojo::ScopedMessagePipeHandle> channels) { - std::vector<MessagePortChannel> channels_wrapped; - for (mojo::ScopedMessagePipeHandle& handle : channels) { - channels_wrapped.emplace_back(std::move(handle)); - } - PostMessageToFrameInternal(web_contents, source_origin, - target_origin.value_or(base::EmptyString16()), - data, channels_wrapped); -} - // static void MessagePortProvider::PostMessageToFrame( WebContents* web_contents, const base::string16& source_origin, const base::Optional<base::string16>& target_origin, const base::string16& data, - std::vector<blink::WebMessagePort> channels) { - std::vector<MessagePortChannel> channels_wrapped; - for (blink::WebMessagePort& port : channels) { - channels_wrapped.emplace_back(port.PassHandle()); - } + std::vector<blink::WebMessagePort> ports) { + // Extract the underlying descriptors. + std::vector<blink::MessagePortDescriptor> descriptors; + descriptors.reserve(ports.size()); + for (size_t i = 0; i < ports.size(); ++i) + descriptors.push_back(ports[i].PassPort()); PostMessageToFrameInternal(web_contents, source_origin, target_origin.value_or(base::EmptyString16()), - data, channels_wrapped); + data, std::move(descriptors)); } #endif |