Closed Bug 79837 Opened 23 years ago Closed 23 years ago

Downloading dialog not correctly filled in sometimes [+ Set Default button broken]

Categories

(SeaMonkey :: UI Design, defect, P2)

PowerPC
Mac System 8.5
defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.9.2

People

(Reporter: sfraser_bugs, Assigned: paulkchen)

References

Details

(Whiteboard: fix in hand)

Attachments

(2 files)

When downloading a ".sit" file, sometimes I see that the downloading dialog does 
not get correctly filled in. The dialog says

"You have chosen to download a file of type: "#1" [#2] from #3", and no radio 
buttons in the dialog are chosen by default.

This works fine on another machine, so I suspect some kind of machine-specific 
issue, perhaps related to Internet Config (though I do have .sit mappings in IC).
Paul, I suspect that there's an exception occuring inside the onload handler for
the dialog which is preventing the content from being initialized.  I don't have
any idea why that would be, though...
It looks like this.mLauncher.MIMEInfo.MIMEType is bad
Ah, I think I know what's happening.

I think we're getting the first matching entry for ".sit" out of Internet Config,  
which has an empty MIME type string, so the GetMIMEType call on nsMIMEInfoImpl is 
returning NS_ERROR_NOT_INITIALIZED.

So we need to fix 2 things here:
1. Make the download dialog JS robust to errors returned here.
2. Make the IC code iterate through *all* MIME entries which match the file 
extension, and find the "best" one (where the best one is the one with most info, 
e.g. non-null MIME type).
Note: this same issue causes the 'Set Default' button to not work, giving a JS 
error:

JavaScript error: 
 line 0: uncaught exception: [Exception... "Component returned failure code: 
0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIMIMEInfo.MIMEType]"  nsresult: 
"0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: Lion:Mozilla 
trees:Tree:src:mozilla:dist:viewer_debug:Components:nsHelperAppDlg.js :: 
anonymous :: line 448"  data: no]
I think the patch in bug 78943 would help.  That ensures that the MIMEInfo
object's MIMEType matches the actual content's MIMEType as reported by the
server (which, worst case would be something like application/unknown-content,
or something like that).  I'm not sure that would cover all cases, though.
Probably nsMIMEInfoImpl should default to something reasonable.

That still leaves the problem of making sure we pick the "best" match from IC.
I'll let Paul deal with that issue.
Keywords: nsbeta1nsbeta1+
Priority: -- → P2
Target Milestone: --- → mozilla0.9.2
interesting. sometimes when i fill out the myEbay login page
[http://cgi1.ebay.com/aw-cgi/eBayISAPI.dll?MyEbayLogin] --or, sometimes trying
to load that page-- i get the helper app dialog which says "You have chosen to
download a file of type: "#1" [#2] from #3".

has anyone else encountered this, either when filling out/going to a login page,
or in situations where you thought you weren't explicityly downloading
something? just wondering...
I get this error when a page doesn't send a content-type header back - I
originally saw this when actually connecting to http://ftp.mozilla.org:21
(verified using netcat)

sairuh - theres another bug on ebay not working, and that may be related.
bradley, found it: bug 80544 [i had fallen off the list there].
Keywords: nsCatFoodnsCatFood+
Whiteboard: estimate 2 days, eta 6/15
reproduced this on mac [modern theme, fwiw], using 2001.06.06.03-branch comm
bits.

1. went to http://law.mcom.com/download.html [sorry about the internal site].
2. in the "pretty big file (7M)" section, single-clicked on the "via http" link.

result: in the downloading/helper app dialog, none of the radiobuttons are
selected, and none of the fields are prefilled. the description at the top reads

   You have chosen to download a file of type: "#1" [#2] from #3
almost forgot: the link i clicked points to an .exe file, bigger.exe.
feh, forgetful me: the last two comments above are referring to the *mac* build.

i'm wondering if this is mac-only? pls let me know if anyone else has seen this
on other platforms. i also tested on winNT and linux, and didn't see "#1" [#2]
from #3 issue described here.

test results:
------------
a. using the same test case [described in my last two comments] on winNT,
2001.06.06.11-branch comm bits: when i don't have a helper app defined for
application/octet-stream, i simply get the File Save dialog [file picker] for
bigger.exe. expected behavior, iirc.

b. on winNT 2001.06.06.11-branch comm bits when i *do* have a helper app defined
for application/octet-stream: the download/helper app dialog does appear. i have
it set to save to disk by default [sure enough, the radiobutton for "Use default
action..." is selected, and its textfield is prefilled with "Save to disk"]. the
description at the top reads:

  You have chosen to download a file of type: "application/octet-stream"
  [application/octet-stream] from http://law.mcom.com

again, expected behavior.

c. on linux 2001.06.06.04-branch comm bits, when i don't have a helper app
defined for application/octet-stream, i get a similar dialog to (b): "Use
default action..." is selected, and its textfield is prefilled with "Save to
disk". however, the description at the top is somewhat different:

  You have chosen to download a file of type: "application/octet-stream"
  from http://law.mcom.com

methinks this is expected behavior.

d. on linux again, similar to (c) but this time i do define a helper app to deal
with application/octet-stream files with .exe extensions [i just set it to save
to disk, for simplicity]. the radiobutton and textfield settings are the same as
(c), but the description is a bit different:

  You have chosen to download a file of type: "Exe octet-stream files"
  [application/octet-stream] from http://law.mcom.com

again, this seems expected behavior to me.
Read up about why you get the "#1 [#2] from #3" stuff on Mac in some situations 
only (empty MIME type string in Internet Config).
a couple mores things i noticed while testing this on mac --however, i'm not
sure if it's due to this bug:

* even though none of the radiobuttons are selected, they all appear active
[will attach screenshot].

* clicking the Set Default button does not bring up the helper app editor
--whether or not i've selected the "Use default action..." radiobutton, for that
matter.
more observations [apologies for the noise, but i'm doing this to help narrow
down/define good test cases]:

* also see this bug [again, mac-only] when doing a ftp download of an .exe file,
eg, ftp://ftp.mozilla.org/pub/mozilla/nightly/ --go into a dir that has an .exe,
then single-click it to see this.

* workaround for the Set Default issue here: instead, define the helper app via
the Helper Applications panel in the Preferences dialog. encountered some
strangeness not being able to remove the helper app, but will file that
separately.
my brain is off: the Set Default button is covered here. /me re-read's sfraser's
2001-05-09 15:49 comment. is that worthy of a separate bug?
I don't think so; it's the same underlying problem.
okay, good to know!

anyhow, the bug for not being able to [easily] remove the
application/octet-stream entry from the Helper App pref panel is bug 84395.
Summary: Downloading dialog not correctly filled in sometimes → Downloading dialog not correctly filled in sometimes [+ Set Default button broken]
Ok, I've got a fix for .exe that Sairuh mentioned. I put in code to turn off
mime type matching for unknown and octet stream types, so we then fall back on
file extension mapping. But, doh, we don't get that from uriloader. So the fix
is to turn it off when the file extension passed in is non null.

I also created code to try and find the "best" fit IC entry, but so far, I don't
have a test case that exercises the code.
Ok, just attached fix. Only disable the mime check if the file extension passed 
in is non null. I did add code to find the best match IC entry, but I can't find 
a test case to test out the code. Therefore, I will fix the obvious bug above 
using this bug and open a new bug about returning an empty mime type.
Whiteboard: estimate 2 days, eta 6/15 → fix in hand
New bug filed for empty mime type string is bug 84543
Whiteboard: fix in hand → estimate 2 days, eta 6/15
changing status whiteboard to fix in hand
Whiteboard: estimate 2 days, eta 6/15 → fix in hand
Just to clarify, the reason we disable mime checking for unknown and octet
stream is mainly for the case where we get octet-stream for a ".bin" file. On
the mac, we don't want to label that as some generic binary file, we really want
to make that file a macbinary file and run it through stuffit expander. Of
course, if we don't have the file extension, we can't tell what the content type
is anyway, thus the reason for the patch.
Blocks: 84395
adding alecf to cc list for possible sr
sr=alecf
a= asa@mozilla.org for checkin to the trunk.
(on behalf of drivers)
Blocks: 83989
fixed checked into trunk
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
thx for the fix, pchen! vrfying...

some tests using 2001.06.19.08 comm bits on Mac OS 9.0x:

a. no helper app defined, click .exe file from both http and ftp listings [from
bill's test page].

results:
Description says: You have chosen a file of type: "Untyped Binary Data"
[application/octet-stream] from <path>.


b. no helper app defined, click .bin file from both http and ftp listings [from
http://barebones.com/products/bbedit/bbedit-demo.html].

http results:
Description says: You have chosen a file of type: "Untyped Binary Data"
[application/octet-stream] from <path>.

ftp results:
Description says: You have chosen a file of type: "MacBinary"
[application/x-macbinary] from <path>.


c. no helper app defined, click .sit file from both http and ftp listings [from
http://www.smfr.org/mtnw/downloading.html].

http results [used lull.org link]:
Description says: You have chose a file of type: "StuffIt 5.5 Archive"
[application/x-stuffit] from <path>.

ftp results [used accesscom.com link]:
Description says: You have chose a file of type: "StuffIt 5.5 Archive"
[application/x-stuffit] from <path>.


d. checking radiobuttons and Set Default button: radiobutton aren't all enabled,
and clicking Set Default brings up the New Type dialog.

important note: the actual mime type reported here in these tests are dependent
on how the given servers have been configured to serve out the content [hence
the variation in mimetypes seen].
Status: RESOLVED → VERIFIED
Product: Core → Mozilla Application Suite
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: