Closed Bug 305977 Opened 19 years ago Closed 8 years ago

.hqx files should not be automatically decoded on non-Mac platforms

Categories

(Core :: Networking, defect)

x86
All
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: dopefishjustin, Unassigned)

References

()

Details

(Whiteboard: DUPEME)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6

The above URL is a download page for old free Macintosh games. The files are
encoded in BinHex format (.hqx), which is designed to allow them to be
downloaded on a PC, transferred to a Mac (or Mac emulator), and then decoded
with the resource and data forks of the files intact, which would otherwise not
be possible because PC filesystems don't generally support forks.

This system works fine using Internet Explorer. Firefox, however, in a fit of
perversity, recognizes that the files are BinHex encoded and automatically
decodes them for you when you download them. I'm sure this is very convenient if
you're browsing on a Macintosh, since you don't need to then decode the file
yourself. However, on a PC, this decoding gives you a binary file that is
completely useless--it's a Mac program, so you can't run it natively, and it's
been stripped of its fork information, so you can't transfer it to a Mac or even
an emulator. What's more, there is no indication to the user that this decoding
is occurring and the file is left with its original .hqx filename instead of its
decoded name, so opening it with a PC program that groks .hqx (like StuffIt or
HFVExplorer) gives you a "corrupt file" error message and you can't figure out
what's going on unless you actually view the file contents and see that it's
binary and not 7-bit BinHex data.

Bug 162171 comment 11 shows that this is being done intentionally, and suggests
that it's not actually being done on the Mac port at all, which would make it
completely useless. I suppose the idea is that platform-neutral data files might
be BinHex encoded, in which case decoding them on the PC would be useful, but in
practice, Macintosh software is the only thing I ever see in .hqx format,
because it's the only thing that _needs_ BinHexing (BinHex does not compress
files but actually inflates them). And in any case the automatic decoder doesn't
change the filename so decoded data files would not be viewable on the PC
without further user action anyway.

Reproducible: Always

Steps to Reproduce:
1. Go to http://www.euronet.nl/users/mvdk/variousgames.html using a PC
2. Right click on a game (say, Glider 3.1) and choose "Save Link As"
3. Choose a location and/or wait for the download to complete

Actual Results:  
A decoded .hqx file is created that contains unusable binary data.

Expected Results:  
An unaltered .hqx file is created that contains the original BinHex header and
7-bit BinHex data that can then be transferred to a Mac, as is done by Internet
Explorer and wget.

Bug 162171 is related to this; a number of the comments there complain about
this "feature" and others mention where in the code the decompression is
performed. Bug 236773 could be thought of as a special case of this bug.
fwiw, I've seen plenty of PDF files, word documents, etc in binhex format. 
Usually as email attachments to an email sent from a Mac.
Whiteboard: DUPEME
I think it's reasonable to treat e-mail differently from browsing since some
sort of 7-bit encoding is necessary for e-mail but not for HTTP or FTP, so the
types of files that get encoded are going to differ.
What about browsing an EML file?  Or an MHTML-like format?  Those would have
exactly the same issues as mail.
Assignee: darin → nobody
QA Contact: benc → networking
Status: UNCONFIRMED → NEW
Ever confirmed: true
Any work on this? Is there at least a way to turn it off through about:config or whatever?
Not through about:config.  You could probably create an extension that turns this behavior off.
I could, if I could code at that level and had the time and leisure. Thanks for the info, though. Fortunately IE works correctly in this situation.
(In reply to Boris Zbarsky (:bz) from comment #1)
> fwiw, I've seen plenty of PDF files, word documents, etc in binhex format. 
> Usually as email attachments to an email sent from a Mac.
Even so, extensions should be .pdf or .doc (instead of .pdf.hqx or .doc.hqx) because those files are already unbinhexed by the stream converter.
Workaround:
1. view-source:http://*****/****.hqx
2. File (or Firefox menu) > Save.
view-source scheme can bypass stream converters.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.