// Extracts a WebMessagePortChannel from a MessagePortChannel. static WebMessagePortChannel* getWebPort(PassOwnPtr<MessagePortChannel> port) { // Extract the WebMessagePortChannel to send to the worker. PlatformMessagePortChannel* platformChannel = port->channel(); WebMessagePortChannel* webPort = platformChannel->webChannelRelease(); webPort->setClient(0); return webPort; }
void PlatformMessagePortChannel::postMessageToRemote(PassRefPtr<SerializedScriptValue> message, PassOwnPtr<MessagePortChannelArray> channels) { if (!m_localPort || !m_webChannel) return; WebKit::WebString messageString = message->toWireString(); WebKit::WebMessagePortChannelArray* webChannels = 0; if (channels && channels->size()) { webChannels = new WebKit::WebMessagePortChannelArray(channels->size()); for (size_t i = 0; i < channels->size(); ++i) { PlatformMessagePortChannel* platformChannel = (*channels)[i]->channel(); (*webChannels)[i] = platformChannel->webChannelRelease(); (*webChannels)[i]->setClient(0); } } m_webChannel->postMessage(messageString, webChannels); }