Re: [rtcweb] PPID, UTF-16 and DOMString (Re: RTCWEB Data Channel: Usage of PPID for protocol multiplexing)

Michael Tuexen <Michael.Tuexen@lurchi.franken.de> Sat, 08 February 2014 10:01 UTC

Return-Path: <Michael.Tuexen@lurchi.franken.de>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5DC791A0456 for <rtcweb@ietfa.amsl.com>; Sat, 8 Feb 2014 02:01:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.086
X-Spam-Level:
X-Spam-Status: No, score=-2.086 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RP_MATCHES_RCVD=-0.535, SPF_HELO_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eNHVPmzxnRlX for <rtcweb@ietfa.amsl.com>; Sat, 8 Feb 2014 02:00:58 -0800 (PST)
Received: from mail-n.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) by ietfa.amsl.com (Postfix) with ESMTP id CF9FA1A00AB for <rtcweb@ietf.org>; Sat, 8 Feb 2014 02:00:57 -0800 (PST)
Received: from [192.168.1.200] (p54819A15.dip0.t-ipconnect.de [84.129.154.21]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTP id 305E01C0E965C; Sat, 8 Feb 2014 11:00:56 +0100 (CET)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
From: Michael Tuexen <Michael.Tuexen@lurchi.franken.de>
In-Reply-To: <s2ej79huj4akcjl2tbtekvx8.1391851562242@email.android.com>
Date: Sat, 08 Feb 2014 11:00:54 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <3D4F4E8C-9E9D-4DE3-A8EC-D908B15A32AB@lurchi.franken.de>
References: <7594FB04B1934943A5C02806D1A2204B1D15E955@ESESSMB209.ericsson.se> <74072016-DA11-41E8-9944-779428163EE4@lurchi.franken.de> <7594FB04B1934943A5C02806D1A2204B1D15ED94@ESESSMB209.ericsson.se> <E1FE4C082A89A246A11D7F32A95A17826DFCF6C8@US70UWXCHMBA02.zam.alcatel-lucent.com> <B304F67A-9EA2-44A0-86DD-9DD0E21CB86F@lurchi.franken.de> <52F4182F.60404@alvestrand.no> <E1FE4C082A89A246A11D7F32A95A17826DFD40C3@US70UWXCHMBA02.zam.alcatel-lucent.com>, <CABkgnnXMYt7teSpxm7chTvQPR8ThKzKQ_bq3Po_FNFv2tdBFGQ@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B1D163B26@ESESSMB209.ericsson.se> <E1FE4C082A89A246A11D7F32A95A17826DFD4581@US70UWXCHMBA02.zam.alcatel-lucent.com>, <23A98499-FA93-472A-B762-92BF72EAC2F1@lurchi.franken.de> <s2ej79huj4akcjl2tbtekvx8.1391851562242@email.android.com>
To: Christer Holmberg <christer.holmberg@ericsson.com>
X-Mailer: Apple Mail (2.1510)
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] PPID, UTF-16 and DOMString (Re: RTCWEB Data Channel: Usage of PPID for protocol multiplexing)
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 08 Feb 2014 10:01:00 -0000

On Feb 8, 2014, at 10:26 AM, Christer Holmberg <christer.holmberg@ericsson.com> wrote:

> Hi,
> 
> We could have an informative note somewhere.in the draft, pointing out the format used by JavaScript, if people think it would be useful.
Hmm. I don't want to repeat what is in
http://heycam.github.io/webidl/#idl-DOMString
I like the idea to specify UTF-8 using a new PPID and deprecate the usage of
the current PPID for DOMString.

Best regards
Michael
> 
> Regards,
> 
> Christer
> 
> 
> Sent from my Sony Ericsson Xperia arc S
> 
> Michael Tuexen <Michael.Tuexen@lurchi.franken.de> wrote:
> 
> 
> On Feb 8, 2014, at 2:14 AM, "Makaraju, Maridi Raju (Raju)" <Raju.Makaraju@alcatel-lucent.com> wrote:
> 
>> That's good. Glad to see that no one liked the complex alternate option... yet! :-)
>> I just put it there for completeness and some discussion.
>> With "utf-8 on wire", which I too think is the right approach, there is some spec work todo:
>> 1. Define IANA utf-8 ppid. Creating a new one is better instead of replacing existing DOMString as DOMString may be used by browsers for sometime to come and also to have backward compatibility/interworking.
>> 2. Data channel core spec (http://tools.ietf.org/html/draft-ietf-rtcweb-data-channel-06#section-6.6) need to specify explictly the wire format is utf-8.
> Anu objections?
> 
> If not, I'll put corresponding text into the spec.
> 
> Best regards
> Michael
>> 
>> Then browsers need to do the conversion from utf-16 DOMstring to utf-8 before writing on wire also in the reverse direction.
>> 
>> -Raju
>> 
>>> -----Original Message-----
>>> From: Christer Holmberg [mailto:christer.holmberg@ericsson.com]
>>> Sent: Friday, February 07, 2014 6:01 PM
>>> To: Martin Thomson; Makaraju, Maridi Raju (Raju)
>>> Cc: rtcweb@ietf.org
>>> Subject: RE: [rtcweb] PPID, UTF-16 and DOMString (Re: RTCWEB Data Channel:
>>> Usage of PPID for protocol multiplexing)
>>> 
>>> 
>>> + 1
>>> 
>>> Regards,
>>> 
>>> Christer
>>> 
>>> ________________________________________
>>> From: rtcweb [rtcweb-bounces@ietf.org] on behalf of Martin Thomson
>>> [martin.thomson@gmail.com]
>>> Sent: Saturday, 08 February 2014 1:45 AM
>>> To: Makaraju, Maridi Raju (Raju)
>>> Cc: rtcweb@ietf.org
>>> Subject: Re: [rtcweb] PPID, UTF-16 and DOMString (Re: RTCWEB Data Channel:
>>> Usage of PPID for protocol multiplexing)
>>> 
>>> I don't think that we need any complication here.  It's a string.
>>> 
>>> Strings are UTF-8 on the wire.
>>> 
>>> Strings are UTF-16 (mostly) in JavaScript.
>>> 
>>> Anything else would generate pain.
>>> 
>>> On 7 February 2014 14:01, Makaraju, Maridi Raju (Raju)
>>> <Raju.Makaraju@alcatel-lucent.com> wrote:
>>>>>>> Also, I think "DOMString" PPID is too specific to Javascript, instead
>>> it
>>>>> should probably have a generic name like "UTF-16 String". The send API
>>> can
>>>>> still use DOMString as this is Javascript API.
>>>>>> Any comments from others?
>>>>> 
>>>>> Note: The WebSockets protocol defines the transferred strings as UTF-8.
>>>>> http://tools.ietf.org/html/rfc6455#section-5.6
>>>>> 
>>>>> As far as I can tell, we've always intended to follow that example.
>>>>> 
>>>>> The fact that Javascript implementations currently choose to represent
>>>>> text strings as UTF-16 at their API is sad, but not an argument for
>>>>> sending that particular text representation over the wire, or reflecting
>>>>> the name in the API.
>>>> 
>>>> [Raju] I agree that using UTF-8 is desired and more appropriate! Then,
>>> should the PPID be changed from "DOMString" to "UTF-8"? Javascript based
>>> apps have to use some library to do the conversion of DOMString/UTF-16 to
>>> UTF-8. Alternatively, browsers can do this conversion under the APIs (send
>>> and onmessage) before sending and after receiving UTF-8 PPID data.
>>>> Without such conversion webrtc interworking between browsers and native
>>> clients will be problematic (basically, will not work).
>>>> 
>>>> Another option, which is more flexible, is to define PPIDs for different
>>> encodings like "UTF-8", "UTF-16" (or even "base64" for binary to text
>>> instead of using "binary" directly); then pass this encoding information to
>>> send() and onmessage() calls, which will use these PPIDs. Passing encoding
>>> information might be implicit (like Javavscript DOMString) in most languages
>>> by the type of the argument to send. This way it is upto the application to
>>> deal with the encoding conversions as it see fits.
>>>> 
>>>> The latter approach is best suitable for interworking between clients of
>>> similar type (web or native); but it is bit painful (to do conversions) for
>>> clients of different types.
>>>> 
>>>> I am wondering what kind of API calls native WebRTC API stacks (e.g.
>>> Google Chrome's http://www.webrtc.org/webrtc-native-code-package) provide
>>> for data channel send/onmessage ()? UTF-16 strings? Or UTF-8?
>>>> 
>>>> -Raju
>>>> 
>>>> _______________________________________________
>>>> rtcweb mailing list
>>>> rtcweb@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/rtcweb
>>> _______________________________________________
>>> rtcweb mailing list
>>> rtcweb@ietf.org
>>> https://www.ietf.org/mailman/listinfo/rtcweb
>> _______________________________________________
>> rtcweb mailing list
>> rtcweb@ietf.org
>> https://www.ietf.org/mailman/listinfo/rtcweb
>> 
> 
>