[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[idn] copy & paste



One of the interesting arguments on IDNA is on copy & paste. Although the
general copy & paste problem is out of scope for the group, let me drop a
stone into the water.

Clipboard mechanism can be either "dumb" (i take what you give me) to
"smart" (understanding how to process and tag strings).

Assumption: Applications which runs on OS that have smart clipboard are
likely able to copy & paste properly since the clipboard can do the
neccessary transcoding between different encodings, native, UTF-8, ACE etc
between applications. Therefore, we only examine the cases whereby the
clipboard is dumb.

Case 1: Copy from IDNA Application (A1) to IDNA Application (A2)

A1 is going to receive IDN in ACE format and would display the IDN correctly
to the user.

In order to display the IDN correctly to the user, A1 would display the IDN
in some font encoding (not neccessary UTF-8). When copy occurs, the dumb
clipboard will recieve it in font encoding and then paste it as-it-is to the
A2.

A2, occuring to the specification of IDNA, would transcode the font encoding
it recieved from the paste to Unicode, then Nameprep it then apply Punycode
which will gives us the exactly the same IDN as before. It would also
display the IDN correctly.

Therefore, resolving works, display works.

Case 2: Copy from IDNA Application (A1) to non-IDNA Application (A2)

A1 is going to receive IDN in ACE format and would display the IDN correctly
to the user.

In order to display the IDN correctly to the user, A1 would display the IDN
in some font encoding (not neccessary UTF-8). When copy occurs, the dumb
clipboard will recieve it in font encoding and then paste it as-it-is to the
A2.

A2 would take the font encoding and likely either to do name-check and fail
or send-as-it-is. Either way, resolving fails, display works on A1 but not
A2.

Case 3: Copy from non-IDNA Application (A1) to IDNA Application (A2)

A1 is going to receive IDN in ACE format but would not display the IDN
correctly to the user, ie, it would display ACE to the user.

When copy occurs, the dumb clipboard will recieve it in ACE, and then paste
it as-it-is to A2.

A2, occuring to the specification of IDNA, would transcode the ACE it
recieved from the paste to Unicode, then Nameprep it then apply Punycode
which will gives us the exactly the same ACE as before. It would also
display the IDN properly (altho A1 wouldnt).

Therefore, resolving works, display works on A2 but not A1.

Case 4: Copy from non-IDNA Application (A1) to non-IDNA Application (A2)

A1 is going to receive IDN in ACE format but would not display the IDN
correctly to the user, ie, it would display ACE to the user.

When copy occurs, the dumb clipboard will recieve it in ACE, and then paste
it as-it-is to A2.

A2 would take the ACE, thinking it is some valid domain name, continue
send-it-as-it-is. It will also not display correctly to the user.

Therefore, resolving works, display fail for both A1 & A2.

Summary:

Case 1: resolving works, display works.
Case 2: resolving fails, display works on A1 but not A2.
Case 3: resolving works, display works on A2 but not A1.
Case 4: resolving works, display fail for both A1 & A2.

Is there anything else I missed?

-James Seng