Title: [222894] trunk/Source/WebKit
Revision
222894
Author
[email protected]
Date
2017-10-04 20:54:39 -0700 (Wed, 04 Oct 2017)

Log Message

rtc::PacketOptions should have its own IPC encoding/decoding routines
https://bugs.webkit.org/show_bug.cgi?id=177812

Patch by Youenn Fablet <[email protected]> on 2017-10-04
Reviewed by Alex Christensen.

Replacing rtc::PacketOptions IPC encoding/decoding from passing the structure as individual parameters to the structure as a parameter.
Introducing WebKit::RTCPacketOptions as a wrapper around it for which encode/decode routines are added.
Updating code using rtc::PacketOptions accordingly.

* NetworkProcess/webrtc/NetworkRTCSocket.cpp:
(WebKit::NetworkRTCSocket::sendTo):
* NetworkProcess/webrtc/NetworkRTCSocket.h:
* NetworkProcess/webrtc/NetworkRTCSocket.messages.in:
* Platform/IPC/Decoder.cpp:
(IPC::Decoder::operator>>):
(IPC::Decoder::decode):
* Platform/IPC/Decoder.h:
* Platform/IPC/Encoder.cpp:
(IPC::Encoder::encode):
* Platform/IPC/Encoder.h:
* Shared/RTCPacketOptions.cpp: Added.
(WebKit::RTCPacketOptions::encode const):
(WebKit::RTCPacketOptions::decode):
* Shared/RTCPacketOptions.h: Added.
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
(WebKit::LibWebRTCSocket::SendTo):

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (222893 => 222894)


--- trunk/Source/WebKit/ChangeLog	2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/ChangeLog	2017-10-05 03:54:39 UTC (rev 222894)
@@ -1,3 +1,33 @@
+2017-10-04  Youenn Fablet  <[email protected]>
+
+        rtc::PacketOptions should have its own IPC encoding/decoding routines
+        https://bugs.webkit.org/show_bug.cgi?id=177812
+
+        Reviewed by Alex Christensen.
+
+        Replacing rtc::PacketOptions IPC encoding/decoding from passing the structure as individual parameters to the structure as a parameter.
+        Introducing WebKit::RTCPacketOptions as a wrapper around it for which encode/decode routines are added.
+        Updating code using rtc::PacketOptions accordingly.
+
+        * NetworkProcess/webrtc/NetworkRTCSocket.cpp:
+        (WebKit::NetworkRTCSocket::sendTo):
+        * NetworkProcess/webrtc/NetworkRTCSocket.h:
+        * NetworkProcess/webrtc/NetworkRTCSocket.messages.in:
+        * Platform/IPC/Decoder.cpp:
+        (IPC::Decoder::operator>>):
+        (IPC::Decoder::decode):
+        * Platform/IPC/Decoder.h:
+        * Platform/IPC/Encoder.cpp:
+        (IPC::Encoder::encode):
+        * Platform/IPC/Encoder.h:
+        * Shared/RTCPacketOptions.cpp: Added.
+        (WebKit::RTCPacketOptions::encode const):
+        (WebKit::RTCPacketOptions::decode):
+        * Shared/RTCPacketOptions.h: Added.
+        * WebKit.xcodeproj/project.pbxproj:
+        * WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
+        (WebKit::LibWebRTCSocket::SendTo):
+
 2017-10-04  Don Olmstead  <[email protected]>
 
         Include Pasteboard.h for all in WebCoreArgumentCoders

Modified: trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.cpp (222893 => 222894)


--- trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.cpp	2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.cpp	2017-10-05 03:54:39 UTC (rev 222894)
@@ -31,6 +31,7 @@
 #include "DataReference.h"
 #include "LibWebRTCSocketClient.h"
 #include "NetworkRTCProvider.h"
+#include "RTCPacketOptions.h"
 #include <WebCore/SharedBuffer.h>
 #include <wtf/Function.h>
 
@@ -42,23 +43,10 @@
 {
 }
 
-void NetworkRTCSocket::sendTo(const IPC::DataReference& data, const RTCNetwork::SocketAddress& socketAddress, int packetID, int rtpSendtimeExtensionID, String srtpAuth, int64_t srtpPacketIndex, int dscp)
+void NetworkRTCSocket::sendTo(const IPC::DataReference& data, RTCNetwork::SocketAddress&& socketAddress, RTCPacketOptions&& options)
 {
     auto buffer = WebCore::SharedBuffer::create(data.data(), data.size());
-
-    rtc::PacketOptions options;
-    options.packet_id = packetID;
-    options.packet_time_params.rtp_sendtime_extension_id = rtpSendtimeExtensionID;
-    options.packet_time_params.srtp_packet_index = srtpPacketIndex;
-    options.dscp = static_cast<rtc::DiffServCodePoint>(dscp);
-    auto srtpAuthUTF8 = srtpAuth.utf8();
-    if (srtpAuthUTF8.length()) {
-        options.packet_time_params.srtp_auth_key = std::vector<char>(srtpAuthUTF8.data(), srtpAuthUTF8.data() + srtpAuthUTF8.length());
-        options.packet_time_params.srtp_auth_tag_len = srtpAuthUTF8.length();
-    } else
-        options.packet_time_params.srtp_auth_tag_len = -1;
-    
-    m_rtcProvider.callSocket(m_identifier, [buffer = WTFMove(buffer), socketAddress, options](LibWebRTCSocketClient& client) {
+    m_rtcProvider.callSocket(m_identifier, [buffer = WTFMove(buffer), socketAddress = WTFMove(socketAddress), options = WTFMove(options.options)](LibWebRTCSocketClient& client) {
         client.sendTo(buffer.get(), socketAddress.value, options);
     });
 }

Modified: trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.h (222893 => 222894)


--- trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.h	2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.h	2017-10-05 03:54:39 UTC (rev 222894)
@@ -54,6 +54,7 @@
 
 class NetworkConnectionToWebProcess;
 class NetworkRTCProvider;
+struct RTCPacketOptions;
 
 class NetworkRTCSocket {
 public:
@@ -60,7 +61,7 @@
     NetworkRTCSocket(uint64_t, NetworkRTCProvider&);
     void didReceiveMessage(IPC::Connection&, IPC::Decoder&);
 private:
-    void sendTo(const IPC::DataReference&, const RTCNetwork::SocketAddress&, int packetID, int rtpSendtimeExtensionID, String srtpAuth, int64_t srtpPacketIndex, int dscp);
+    void sendTo(const IPC::DataReference&, RTCNetwork::SocketAddress&&, RTCPacketOptions&&);
     void close();
     void setOption(int option, int value);
 

Modified: trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.messages.in (222893 => 222894)


--- trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.messages.in	2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.messages.in	2017-10-05 03:54:39 UTC (rev 222894)
@@ -23,7 +23,7 @@
 #if USE(LIBWEBRTC)
 
 messages -> NetworkRTCSocket {
-    void SendTo(IPC::DataReference data, WebKit::RTCNetwork::SocketAddress address, int packetID, int rtpSendtimeExtensionID, String srtpAuth, int64_t srtpPacketIndex, int dscp)
+    void SendTo(IPC::DataReference data, WebKit::RTCNetwork::SocketAddress address, struct WebKit::RTCPacketOptions options)
     void Close()
     void SetOption(int option, int value)
 }

Modified: trunk/Source/WebKit/Platform/IPC/Decoder.cpp (222893 => 222894)


--- trunk/Source/WebKit/Platform/IPC/Decoder.cpp	2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/Platform/IPC/Decoder.cpp	2017-10-05 03:54:39 UTC (rev 222894)
@@ -225,6 +225,11 @@
     return getOptional(optional);
 }
 
+Decoder& Decoder::operator>>(std::optional<int16_t>& optional)
+{
+    return getOptional(optional);
+}
+
 Decoder& Decoder::operator>>(std::optional<int32_t>& optional)
 {
     return getOptional(optional);
@@ -290,6 +295,15 @@
     return true;
 }
 
+bool Decoder::decode(int16_t& result)
+{
+    if (!alignBufferPosition(sizeof(result), sizeof(result)))
+        return false;
+
+    decodeValueFromBuffer(result, m_bufferPos);
+    return true;
+}
+
 bool Decoder::decode(int32_t& result)
 {
     if (!alignBufferPosition(sizeof(result), sizeof(result)))

Modified: trunk/Source/WebKit/Platform/IPC/Decoder.h (222893 => 222894)


--- trunk/Source/WebKit/Platform/IPC/Decoder.h	2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/Platform/IPC/Decoder.h	2017-10-05 03:54:39 UTC (rev 222894)
@@ -87,6 +87,8 @@
     Decoder& operator>>(std::optional<uint32_t>&);
     bool decode(uint64_t&);
     Decoder& operator>>(std::optional<uint64_t>&);
+    bool decode(int16_t&);
+    Decoder& operator>>(std::optional<int16_t>&);
     bool decode(int32_t&);
     Decoder& operator>>(std::optional<int32_t>&);
     bool decode(int64_t&);

Modified: trunk/Source/WebKit/Platform/IPC/Encoder.cpp (222893 => 222894)


--- trunk/Source/WebKit/Platform/IPC/Encoder.cpp	2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/Platform/IPC/Encoder.cpp	2017-10-05 03:54:39 UTC (rev 222894)
@@ -224,6 +224,12 @@
     copyValueToBuffer(n, buffer);
 }
 
+void Encoder::encode(int16_t n)
+{
+    uint8_t* buffer = grow(sizeof(n), sizeof(n));
+    copyValueToBuffer(n, buffer);
+}
+
 void Encoder::encode(int32_t n)
 {
     uint8_t* buffer = grow(sizeof(n), sizeof(n));

Modified: trunk/Source/WebKit/Platform/IPC/Encoder.h (222893 => 222894)


--- trunk/Source/WebKit/Platform/IPC/Encoder.h	2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/Platform/IPC/Encoder.h	2017-10-05 03:54:39 UTC (rev 222894)
@@ -102,6 +102,7 @@
     void encode(uint16_t);
     void encode(uint32_t);
     void encode(uint64_t);
+    void encode(int16_t);
     void encode(int32_t);
     void encode(int64_t);
     void encode(float);

Added: trunk/Source/WebKit/Shared/RTCPacketOptions.cpp (0 => 222894)


--- trunk/Source/WebKit/Shared/RTCPacketOptions.cpp	                        (rev 0)
+++ trunk/Source/WebKit/Shared/RTCPacketOptions.cpp	2017-10-05 03:54:39 UTC (rev 222894)
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "RTCPacketOptions.h"
+
+#if USE(LIBWEBRTC)
+
+#include "DataReference.h"
+#include "WebCoreArgumentCoders.h"
+
+namespace WebKit {
+
+void RTCPacketOptions::encode(IPC::Encoder& encoder) const
+{
+    encoder.encodeEnum(options.dscp);
+    encoder << safeCast<int16_t>(options.packet_id);
+    encoder << options.packet_time_params.rtp_sendtime_extension_id;
+
+    encoder << static_cast<int64_t>(options.packet_time_params.srtp_auth_tag_len);
+    if (options.packet_time_params.srtp_auth_tag_len > 0)
+        encoder << IPC::DataReference(reinterpret_cast<const uint8_t*>(options.packet_time_params.srtp_auth_key.data()), options.packet_time_params.srtp_auth_key.size());
+
+    encoder << options.packet_time_params.srtp_packet_index;
+}
+
+std::optional<RTCPacketOptions> RTCPacketOptions::decode(IPC::Decoder& decoder)
+{
+    rtc::PacketTimeUpdateParams params;
+    rtc::PacketOptions options;
+
+    rtc::DiffServCodePoint dscp;
+    if (!decoder.decodeEnum(dscp))
+        return std::nullopt;
+    options.dscp = dscp;
+
+    std::optional<int16_t> packetId;
+    decoder >> packetId;
+    if (!packetId)
+        return std::nullopt;
+    options.packet_id = packetId.value();
+
+    std::optional<int> rtpSendtimeExtensionId;
+    decoder >> rtpSendtimeExtensionId;
+    if (!rtpSendtimeExtensionId)
+        return std::nullopt;
+    params.rtp_sendtime_extension_id = rtpSendtimeExtensionId.value();
+
+    std::optional<int64_t> srtpAuthTagLength;
+    decoder >> srtpAuthTagLength;
+    if (!srtpAuthTagLength)
+        return std::nullopt;
+    params.srtp_auth_tag_len = srtpAuthTagLength.value();
+
+    if (params.srtp_auth_tag_len > 0) {
+        IPC::DataReference srtpAuthKey;
+        if (!decoder.decode(srtpAuthKey))
+            return std::nullopt;
+
+        params.srtp_auth_key = std::vector<char>(static_cast<size_t>(srtpAuthKey.size()));
+        memcpy(params.srtp_auth_key.data(), reinterpret_cast<const char*>(srtpAuthKey.data()), srtpAuthKey.size() * sizeof(char));
+    }
+
+    std::optional<int64_t> srtpPacketIndex;
+    decoder >> srtpPacketIndex;
+    if (!srtpPacketIndex)
+        return std::nullopt;
+    params.srtp_packet_index = srtpPacketIndex.value();
+
+    options.packet_time_params = WTFMove(params);
+    return RTCPacketOptions { WTFMove(options) };
+}
+
+}
+
+#endif // USE(LIBWEBRTC)

Copied: trunk/Source/WebKit/Shared/RTCPacketOptions.h (from rev 222893, trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.h) (0 => 222894)


--- trunk/Source/WebKit/Shared/RTCPacketOptions.h	                        (rev 0)
+++ trunk/Source/WebKit/Shared/RTCPacketOptions.h	2017-10-05 03:54:39 UTC (rev 222894)
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#if USE(LIBWEBRTC)
+
+#include <WebCore/LibWebRTCMacros.h>
+#include <webrtc/base/asyncpacketsocket.h>
+#include <wtf/Optional.h>
+
+namespace IPC {
+class Decoder;
+class Encoder;
+}
+
+namespace WebKit {
+
+struct RTCPacketOptions {
+    void encode(IPC::Encoder&) const;
+    static std::optional<RTCPacketOptions> decode(IPC::Decoder&);
+
+    rtc::PacketOptions options;
+};
+
+}
+
+#endif // USE(LIBWEBRTC)

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (222893 => 222894)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2017-10-05 03:54:39 UTC (rev 222894)
@@ -898,6 +898,7 @@
 		41897ED81F415D8A0016FA42 /* CacheStorageEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 41897ED21F415D850016FA42 /* CacheStorageEngine.h */; };
 		41897ED91F415D8A0016FA42 /* CacheStorageEngineConnection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41897ED31F415D850016FA42 /* CacheStorageEngineConnection.cpp */; };
 		41897EDA1F415D8A0016FA42 /* CacheStorageEngineConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 41897ED41F415D850016FA42 /* CacheStorageEngineConnection.h */; };
+		41B28B0A1F83AD4200FB52AC /* RTCPacketOptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41B28B091F83AD3E00FB52AC /* RTCPacketOptions.cpp */; };
 		41C8581A1F5136CA0065E085 /* CacheStorageEngineCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41C858191F510DEE0065E085 /* CacheStorageEngineCache.cpp */; };
 		41D129DA1F3D101800D15E47 /* WebCacheStorageProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 41D129D91F3D101400D15E47 /* WebCacheStorageProvider.h */; };
 		41DC45961E3D6E2200B11F51 /* NetworkRTCProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 41DC45941E3D6E1E00B11F51 /* NetworkRTCProvider.h */; };
@@ -3187,6 +3188,8 @@
 		41897ED51F415D850016FA42 /* CacheStorageEngineConnection.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = CacheStorageEngineConnection.messages.in; sourceTree = "<group>"; };
 		41897ED61F415D860016FA42 /* CacheStorageEngine.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CacheStorageEngine.cpp; sourceTree = "<group>"; };
 		41AC86811E042E5300303074 /* WebRTCResolver.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = WebRTCResolver.messages.in; path = Network/webrtc/WebRTCResolver.messages.in; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = "<none>"; };
+		41B28B081F83AD3E00FB52AC /* RTCPacketOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCPacketOptions.h; sourceTree = "<group>"; };
+		41B28B091F83AD3E00FB52AC /* RTCPacketOptions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RTCPacketOptions.cpp; sourceTree = "<group>"; };
 		41C858191F510DEE0065E085 /* CacheStorageEngineCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CacheStorageEngineCache.cpp; sourceTree = "<group>"; };
 		41D129D91F3D101400D15E47 /* WebCacheStorageProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebCacheStorageProvider.h; sourceTree = "<group>"; };
 		41DC45941E3D6E1E00B11F51 /* NetworkRTCProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkRTCProvider.h; path = NetworkProcess/webrtc/NetworkRTCProvider.h; sourceTree = "<group>"; };
@@ -5023,6 +5026,8 @@
 				F6A0C13F13281E6E0070430F /* ResourceCachesToClear.h */,
 				410482CB1DDD2FB500F006D0 /* RTCNetwork.cpp */,
 				410482CC1DDD2FB500F006D0 /* RTCNetwork.h */,
+				41B28B091F83AD3E00FB52AC /* RTCPacketOptions.cpp */,
+				41B28B081F83AD3E00FB52AC /* RTCPacketOptions.h */,
 				BC2D021612AC41CB00E732A3 /* SameDocumentNavigationType.h */,
 				1AAB4A8C1296F0A20023952F /* SandboxExtension.h */,
 				E1E552C316AE065E004ED653 /* SandboxInitializationParameters.h */,
@@ -10346,6 +10351,7 @@
 				51E6C1601F29356000FD3437 /* ResourceLoadStatisticsPersistentStorageIOS.mm in Sources */,
 				BC111B09112F5E3C00337BAB /* ResponsivenessTimer.cpp in Sources */,
 				410482CD1DDD324C00F006D0 /* RTCNetwork.cpp in Sources */,
+				41B28B0A1F83AD4200FB52AC /* RTCPacketOptions.cpp in Sources */,
 				1AAB4AAA1296F1540023952F /* SandboxExtensionMac.mm in Sources */,
 				E1E552C416AE065F004ED653 /* SandboxInitialiationParametersMac.mm in Sources */,
 				E19BDA8B19368D4600B97F57 /* SandboxUtilities.mm in Sources */,

Modified: trunk/Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.cpp (222893 => 222894)


--- trunk/Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.cpp	2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.cpp	2017-10-05 03:54:39 UTC (rev 222894)
@@ -32,6 +32,7 @@
 #include "LibWebRTCSocketFactory.h"
 #include "NetworkProcessConnection.h"
 #include "NetworkRTCSocketMessages.h"
+#include "RTCPacketOptions.h"
 #include "WebProcess.h"
 #include <WebCore/SharedBuffer.h>
 #include <wtf/Function.h>
@@ -113,13 +114,6 @@
     SignalNewConnection(this, newConnectionSocket);
 }
 
-static inline String authKey(const rtc::PacketOptions& options)
-{
-    if (options.packet_time_params.srtp_auth_key.size() <= 0)
-        return { };
-    return String(options.packet_time_params.srtp_auth_key.data(), options.packet_time_params.srtp_auth_key.size());
-}
-
 bool LibWebRTCSocket::willSend(size_t size)
 {
     if (size > m_availableSendingBytes) {
@@ -142,10 +136,7 @@
 
     sendOnMainThread([identifier, buffer = WTFMove(buffer), address, options](IPC::Connection& connection) {
         IPC::DataReference data(reinterpret_cast<const uint8_t*>(buffer->data()), buffer->size());
-        String srtpAuthKey = authKey(options);
-        RTCNetwork::SocketAddress socketAddress(address);
-        Messages::NetworkRTCSocket::SendTo message(data, socketAddress, options.packet_id, options.packet_time_params.rtp_sendtime_extension_id, srtpAuthKey, options.packet_time_params.srtp_packet_index, options.dscp);
-        connection.send(WTFMove(message), identifier);
+        connection.send(Messages::NetworkRTCSocket::SendTo { data, RTCNetwork::SocketAddress { address }, RTCPacketOptions { options } }, identifier);
     });
     return size;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to