Closed Bug 375277 Opened 17 years ago Closed 17 years ago

pipe '|' character not considered part of url, breaks plaintext linkifying

Categories

(MailNews Core :: Backend, defect)

x86
All
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: patric, Unassigned)

Details

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.0; sv-SE; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
Build Identifier: version 1.5.0.10 (20070221)

I do play chess via an webpage that sends my move to the mailadress of my opponent player and vice vers. The move shows up as a link in the mail that I can use to go to the webpage to see and make my move.
Thunderbird does only take part of the link as a link ending in errors at the server of the webpage. Here comes an examle of a link:
http://eschack.com/e/C?anc0bpglijkmtvx-U|XWG-ZD5AMNORS-/797568/w/

Thunderbird only take the firstpart as a link, http://eschack.com/e/C?anc0bpglijkmtvx-U
One of my opponents uses Outlook Express which accept the hole line as a link and there by it works.

Reproducible: Always

Steps to Reproduce:
1.Mail the link http://eschack.com/e/C?anc0bpglijkmtvx-U|XWG-ZD5AMNORS-/797568/w/ to your self.
2.get the mail with Thunderbird.
3.Try clicking on the link and thunderbird will only take parts of the link as a link.
Actual Results:  
the server on the webpage reply with errors...

Expected Results:  
It should open a page with the chessboard.
Try pasting the hole link in a webbrowser.
mean whole line, entire line.
sorry
confirmed tbird linux trunk 2007-03-22-14Z, url is only linkified up to, not including, the '|'. (unlike in bugzilla...)

even if it did work, you'd probably run into firefox's bug 263701 anyway :(
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Windows 2000 → All
Summary: Thunderbird ver.1.5.0.10 does not take hole line as a link when clicked on → pipe '|' character not considered part of url, breaks plaintext linkifying
Assignee: mscott → nobody
Component: General → MailNews: Backend
Product: Thunderbird → Core
QA Contact: general → backend
Per RFC 2396, '|' is not a legal character in a URL.  You should be filing a bug with eschack.com, not with us.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → INVALID
But it does work if I copy the line and paste it in to forefox!!
Firefox, lol
> But it does work if I copy the line and paste it in to firefox!!

when you paste an URL into firefox's location bar, it does a lot of fixing up which normally doesn't otherwise happen.

for example: if you paste an url with a space in it, firefox's location bar will automatically convert the space to %20, even though spaces are not valid in urls.

the pipe character gets the same treatment.
The citation of Mike Cowperthwaite is not quite the proper one. There is no claim in rfc 2396 on URIs that the | character must be encoded. It says the opposite, that the characters are unreserved by the URI scheme:
<<
2.3. Unreserved Characters

   Data characters that are allowed in a URI but do not have a reserved
   purpose are called unreserved.  These include upper and lower case
   letters, decimal digits, and a limited set of punctuation marks and
   symbols.

      unreserved  = alphanum | mark

      mark        = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"

   Unreserved characters can be escaped without changing the semantics
   of the URI, but this should not be done unless the URI is being used
   in a context that does not allow the unescaped character to appear.

...

 unreserved    = alphanum | mark
      mark          = "-" | "_" | "." | "!" | "~" | "*" | "'" |
                      "(" | ")"
>>

The restriction is in rfc1738, on urls:

<<
Other characters are unsafe because
   gateways and other transport agents are known to sometimes modify
   such characters. These characters are "{", "}", "|", "\", "^", "~",
   "[", "]", and "`".

   All unsafe characters must always be encoded within a URL.

>>

-----
Mozilla needn't assume that the | character meant the URI was ended, all things being equal (likely, they are not though -- ). Perhaps it could be changed not to assume that in mails. But the converse is also the case: the maker of the uri in the mail couldn't have assumed that mozilla wouldn't do something unexpected in processing the URI (just making it clickable, I guess), since the character is unsafe. It should have been escaped in the uri as the email was formed.

----

I don't see why mozilla's behaviour shouldn't change in this case, so that the entire URL, despite the unescaped |, is made clickable? Perhaps the current restriction is unique in plain text email handling in order to prevent strings of addresses, such as email addresses, separated by vertical bars from being strung together as one big addresses -- not what was intended. Maybe it could distinguish better between such cases.
>       mark        = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"

there's no "|" there. it is excluded in rfc 2396 2.4.3 in the 'unwise' set:

   unwise      = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"
Depending upon the context of the URL, pipe terminates the URL or does not.
In text that is not quoted, pipe terminates the URL.
In text that is quoted, pipe does not terminate the URL.
I'm including a screen shot that shows this. 
Shows that the handling of a pipe symbol in a URL is inconsistent and depends upon the context. In unquoted text the pipe terminates the URL, while in quoted text the pipe does not terminate the URL.
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: