| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "content/child/webmessageportchannel_impl.h" | 5 #include "content/child/webmessageportchannel_impl.h" | 
| 6 | 6 | 
| 7 #include <stddef.h> | 7 #include <stddef.h> | 
| 8 | 8 | 
| 9 #include "base/bind.h" | 9 #include "base/bind.h" | 
| 10 #include "base/logging.h" | 10 #include "base/logging.h" | 
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 93                    base::Unretained(client))); | 93                    base::Unretained(client))); | 
| 94   } else { | 94   } else { | 
| 95     port_.ClearCallback(); | 95     port_.ClearCallback(); | 
| 96   } | 96   } | 
| 97 } | 97 } | 
| 98 | 98 | 
| 99 void WebMessagePortChannelImpl::postMessage( | 99 void WebMessagePortChannelImpl::postMessage( | 
| 100     const WebString& encoded_message, | 100     const WebString& encoded_message, | 
| 101     WebMessagePortChannelArray channels) { | 101     WebMessagePortChannelArray channels) { | 
| 102   std::vector<MessagePort> ports; | 102   std::vector<MessagePort> ports; | 
| 103   if (!channels.isEmpty()) { | 103   if (!channels.empty()) { | 
| 104     ports.resize(channels.size()); | 104     ports.resize(channels.size()); | 
| 105     for (size_t i = 0; i < channels.size(); ++i) { | 105     for (size_t i = 0; i < channels.size(); ++i) { | 
| 106       ports[i] = static_cast<WebMessagePortChannelImpl*>(channels[i].get())-> | 106       ports[i] = static_cast<WebMessagePortChannelImpl*>(channels[i].get())-> | 
| 107           ReleaseMessagePort(); | 107           ReleaseMessagePort(); | 
| 108     } | 108     } | 
| 109   } | 109   } | 
| 110   port_.PostMessage(encoded_message.utf16(), std::move(ports)); | 110   port_.PostMessage(encoded_message.utf16(), std::move(ports)); | 
| 111 } | 111 } | 
| 112 | 112 | 
| 113 bool WebMessagePortChannelImpl::tryGetMessage( | 113 bool WebMessagePortChannelImpl::tryGetMessage( | 
| 114     WebString* encoded_message, | 114     WebString* encoded_message, | 
| 115     WebMessagePortChannelArray& channels) { | 115     WebMessagePortChannelArray& channels) { | 
| 116   base::string16 buffer; | 116   base::string16 buffer; | 
| 117   std::vector<MessagePort> ports; | 117   std::vector<MessagePort> ports; | 
| 118   if (!port_.GetMessage(&buffer, &ports)) | 118   if (!port_.GetMessage(&buffer, &ports)) | 
| 119     return false; | 119     return false; | 
| 120 | 120 | 
| 121   *encoded_message = WebString::fromUTF16(buffer); | 121   *encoded_message = WebString::fromUTF16(buffer); | 
| 122 | 122 | 
| 123   if (!ports.empty()) { | 123   if (!ports.empty()) { | 
| 124     channels = WebMessagePortChannelArray(ports.size()); | 124     channels = WebMessagePortChannelArray(ports.size()); | 
| 125     for (size_t i = 0; i < ports.size(); ++i) | 125     for (size_t i = 0; i < ports.size(); ++i) | 
| 126       channels[i] = base::MakeUnique<WebMessagePortChannelImpl>(ports[i]); | 126       channels[i] = base::MakeUnique<WebMessagePortChannelImpl>(ports[i]); | 
| 127   } | 127   } | 
| 128   return true; | 128   return true; | 
| 129 } | 129 } | 
| 130 | 130 | 
| 131 }  // namespace content | 131 }  // namespace content | 
| OLD | NEW | 
|---|