Closed Bug 139248 Opened 23 years ago Closed 23 years ago

Issues with the font download dialog in mailnews

Categories

(MailNews Core :: Internationalization, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED
mozilla1.0

People

(Reporter: mscott, Assigned: smontagu)

References

()

Details

(Keywords: intl, Whiteboard: [adt2 rtm])

Attachments

(3 files, 3 obsolete files)

Using Build ID: 2002042206, win2k. I have some concerns about the new font download dialog that is now coming up on windows when we encounter content with a font the user does not have. This dialog has signficant UE impact for the usability of our mail client. I don't believe mailnews UE was consulted before it landed so I'm going to cc Jennifer on this bug too. Frank, do you have a spec you can point us to for how the font dialog should behave? Can you post the spec? It would give us a good starting point for discussion. I'm going to list in this bug a set of issues / comments about the dialog. Let's have some discussion about them and then I can spin off separate bugs for each issue we think we need to pursue. Please see the forthcoming attached screen shot to see what the dialog looks like today. 1) When the dialog comes up, we get a windows title bar with a content area of zero height, this flashes on the screen then gets replaced by the font dialog. None of our other xul dialogs do this, I wonder if we are doing something wrong that's causing this smaller thing to flash onto the screen. This issue is also partially talked about in Bug #128368 2) Circumstances in which we see the dialog I suspect this dialog makes a lot of sense for web pages when the user chooses to view a web page which we don't have a font for. I think it makes sense to bring up a dialog showing them how to get the font to view that page. I don't think it makes as much sense for mailnews. A mailnews user gets unsolicated e-mail that they don't have control over. Clicking the message to delete it should not cause our application to bring up this dialog. I get tons of I18N spam with international characters in them that I don't want to read. Yet trying to delete them them brings up this dialog. I think the model for mail (user isn't in control of the content) is very different then the model for web browsing (user controls content). As such, I'd really like to see this dialog disabled inside of mailnews. To complicate matters for e-mail, we get *many* false positives for seeing this dialog. ASCII messages are frequently sent and received with non ascii charsets listed in the email headers. This leads to the user seeing this dialog when the message just contains ascii text. Now just to read some ascii messages, I have to go through this dialog. Assuming I'm in the minority on that decision, here are some concerns I have about the dialog itself: 3) No window title in the dialog telling you what this dialog is all about. All our dialogs have window titles. I'm not sure why this one doesn't. 4) The dialog isn't sized correctly. There's a bunch of white space at the bottom of the dialog. Are we using a fixed height here instead of letting the dialog intrinsicly resize the width and height based on the content? 5) The cancel button is not in the correct place for a standard dialog. Are we using the cancel button from the dialog overlay file? That'll make sure your cancel button is positioned correctly. 6) Why do we have a cancel button at all? I'm not choosing to back out of an action. The dialog simply provides information telling me to go do something. Seems like an OK button should be used to dismiss the dialog not a cancel button. 7) Why do we tell the user how to go download the new font? Instead of a cancel button we should say "Do you want us to take you to the system font installer?" If the user hits okay, then launch the windows: control panel / regional settings / language panel. Since this is a windows only dialog, it's easy to use the windows shell APIs to automatically launch the windows language panel. We should do this for the user and not just tell them how to do it in a dialog. I think this is a pretty important point. Showing an informative alert which doesn't actually do anything for you every time you click on a message with a foreign character set seems non helpful. 8) If we are going to show this dialog every time I click on an email that has a font I don't have, then we need a check box pref for "never show this dialog again". We use this technique across the product for these kinds of dialogs (Ctrl-enter to send, submitting insecure data, etc). This dialog shouldn't be treated any differently. I should be able to turn it off so I don't see it ever again. I think that sums up the list I put together. Feel free to chime in with other suggestions.
nominating. The results of our discussions may have some impact on the beta in order to provide a good user experience for e-mail.
Keywords: nsbeta1
Forgot a comment: 9) the dialog times out and goes away after a while. i.e. if I let it come up and don't dismiss it myself, I suddenly see it disappear on it's own.
Whoa! I just discovered that this window isn't even a xul dialog. It's an html web page hosted on: http://www.mozilla.org/projects/intl/fonts/win/en/package_zh-CN.html which is made to "look" like a dialog. =( This really needs to be a skinnable XUL dialog if it's going to be coming up in mail so we can address the issues I raised above. I'm curious why we are using an html window for this right now? Seems kinda weird.
It is not a html, it is a xul. http://www.mozilla.org/projects/intl/fonts/win/en/package_zh-CN.xul *** This bug has been marked as a duplicate of 128368 ***
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → DUPLICATE
Re-opening. Frank, I'm not sure I understand why you think this is a dup of 128368. If you read my bug description here, I have a set of 10 separate issues pertaining to the font dialog which I wanted to discuss in this bug. Only one of them is partially related to 128368 and I referenced it in that comment. Please read through my initial list of comments. Thanks!
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
I placed the URL for the Font Downdload engineering specs in the URL field. This is more of an engineering spec. There should be a section or a separate document discussing various aspects of User Exprience part.
>I don't believe mailnews UE was consulted before it landed so I'm going to cc Jennifer on this bug too. What happen is the following: a. we have font download for the Gecko layout engines in N6.2. The font download is generic for Gecko layout engine instead of browser. Therefore , the font download show up when ever the Gecko layout engine detect that a Japanese/Chinese/Korean page is shown, regardless it is from browser, mail or composer. The UI specification is documented in http://client/international/html/6_5/fontdownload_req.htm . sorry, the document is still netscape internal) b. in N6.2 time, there are a mail bug which block the language information pass to the Gecko layout engine. Therefore the mail won't bring up the font download dialogbox. ji@netscape.com file a bug against that when she test the font download feature, and we decide to later that bug (see http://bugscape.mcom.com/show_bug.cgi?id=5393 >------- Additional Comments From ji@netscape.com 2001-05-25 16:29:21 >---- > >Roy and I just tried the build with the property file on a system w/o >korean >fonts. It works for browser, but not for mail. For example, if you >have a korean >mail in your mailbox, when mail window comes up, it doesn't pop up >the font >download dialog window. And after it fails to pop up, and then you >switch to >browser to view a korean page, it doesn't pop up for browser either. > >BTW, it should come up once you open the mail folder before you >actually select >the mail, since the thread pane already shows the subject of the >korean mail. ..... >------- Additional Comments From ftang@netscape.com 2001-05-25 >17:01:06 ---- > >1. the specification say nothing about mail. so it should not >consider a bug. >(Do we want to ask user download a font while they got spam mail by >those >Chinese web sites?) >------- Additional Comments From ji@netscape.com 2001-05-25 17:21:30 >---- > >Filed bug 82815 for mail. also http://bugzilla.mozilla.org/show_bug.cgi?id=82815 >Font download dialog has been implemented for browser, we need this >for Mail as >well. Besically when the user has a mail in his/her mailbox which >needs extra >fonts to view the mail, the font download dialog should be poped up. >------- Additional Comment #3 From Jaime Rodriguez, Jr. 2001-05-29 >11:31 ------- > >Marking as nsbeta1 and requesting for M0.9.2. >------- Additional Comment #9 From Frank Tang 2001-06-28 15:21 >------- > >future >Can you post the spec? see link above >1) When the dialog comes up, we get a windows title bar with > a content area of zero height, this flashes on the screen then >gets replaced by the font dialog. look at the code in http://lxr.mozilla.org/seamonkey/source/xpfe/components/intl/nsFontPackageHandler.cpp anything wrong with the following ? 88 rv = windowWatch->OpenWindow(nsnull, absUrl, 89 "_blank", 90 "chrome,centerscreen,titlebar,resizable", 91 nsnull, 92 getter_AddRefs(dialog)); >A mailnews user gets unsolicated e-mail that they don't have control over. I agree with you. See my 2001-05-25 comment in bugscape bug 5393 >Clicking the message to delete it should not cause our application to bring up this dialog. I don't think it will bring up the font download box, if you right click on thread pane and delete it. >Yet trying to delete them them brings up this dialog. I got similar thing from those X rates spam mail. they open window by using JavaScript when you view them. This is not worst than that one, right? Everything have two sides, when you and me don't want to see the content for korean spam mail. Some Japanese business man may want to see the Japanese email their relative send them with their US build. >ASCII messages are frequently sent and received with non >ascii charsets listed in the email headers. I do not agree with this one. I don't think average users received non ASCII charset listed in the email header with ASCII only message. >3) No window title in the dialog telling you what this dialog is all >about. All our dialogs have window titles. I'm not sure why this one >doesn't. Not sure what happen there. Must be a bug. We do specify the title of the window in the xul . We also specifiy titlebar in the OpenWindow call. >4) The dialog isn't sized correctly. There's a bunch of white space >at the >bottom of the dialog. Are we using a fixed height here instead of >letting the >dialog intrinsicly resize the width and height based on the content? read http://client/international/html/6_5/fontdownload_req.htm There are a lot of space in the screenshot of that specification. >5) The cancel button is not in the correct place for a >standard dialog. Are we using the cancel button from the dialog >overlay file? That'll make sure your cancel button is positioned >correctly. No. First of all, there are two different look and feel will show up now. Depend on you are running on Win2K/WinXP or other Windows. For other windows, it will give you a button to click to download a font package to install. for win2k/winxp it won't since that package won't work on win2k/winxp. It will ask the user to open "Control Panel:Regional Setting" to install the font package >6) Why do we have a cancel button at all? I'm not choosing to back >out of an action. The dialog simply provides information telling me >to go do something. Seems like an OK button should be used to dismiss > the dialog not a cancel button. Make sense, will change >7) Why do we tell the user how to go download the new font? > Instead of a cancel button we should say "Do you want us to take > you to the system font installer?" If the user hits okay, then >launch the windows: control panel / regional settings / language >panel. Since this is a windows only dialog, it's easy to use the >windows shell APIs to automatically launch the windows language >panel. As I describe above. The font package currently we point to can only be used by uses on Win95/98/ME/NT4 but not WinXP nor Win2K. We found that out after we ship N6.2 so we change the sever side javascript to close the window if they are running on WinXP and Win2K. Somehow people still don't like that "show a pop up and close it" effect. So I change the server side javascript code to tell winxp win2k users how to install the font from control panel . Once they install it, they won't see the font download dialog box again. Is that easy for a xul stored on the server side to launch the windows: control panel / regional settings / language >panel? I don't think so. >8) If we are going to show this dialog every time I click on an email >that has a >font I don't have, then we need a check box pref for "never show this >dialog >again". No, it won't. it will only show you one per langauge group per session. So if you launch and don't exit, it will show at most 4 times, one time when it first hit a Korean page, one time when it first hit the Japanese page, one one time when it first hit the traditional chinese page, and one time when it first hit the simplified chinese page. If you quit, then it will give the users a chance to do it again. I guess, I can add some cookie code in the server side to do that. But that probably will still have the flashing effect since I need to download the server side xul / js to run that cookie code. >We use this technique across the product for these kinds of dialogs not really, we don't have such thing for the netscape.com pop up ad, right ? :) Neither for the blank mail page we load before user select the message in the mail/news window, right :) Neither for the Print dialog box which the only thing I will do is to click the "OK"
Status: REOPENED → ASSIGNED
*** Bug 142535 has been marked as a duplicate of this bug. ***
I think at the least mscott's point #8 needs to be fixed for rtm. Getting asked about this once per session is too much for people who are hitting this because of spam. As Peter mention's in a recently duped bug, this makes Spam that much worse. Adding adt2 which I hope will be followed by an nsbeta1+.
Whiteboard: [adt2 rtm]
IMO, this could significantly affect adoption of Mail for people trying out the beta. Since it was not part of any spec approved by the UI designer for Mail, why shouldn't it just be backed out until it passes review?
peter- read http://client/international/html/6_5/fontdownload_req.htm it is a spec in 6.2 for gecko engine. not for browesr nor mail. >Since it was not part of any spec approved by the UI designer That spec was approved by ue team. Ask jaimejr. He run that spec thorugh last year. It does not affect mail because some other bug blocking that happen. After that bug got fixed this feature show up. see my comment
>8) If we are going to show this dialog every time I click on an email that has >a font I don't have, then we need a check box pref for "never show this >dialog again". Agree, reassign to yokoyama and mark it as nsbeta1+. Pleaset add that pref in per language group based in MachV only code (in nsFontPackageHandler) which won't impact embeding customer's font package handler. Also make sure use differen pref for japanese, Korena, simplified chinese and traditional chinese. mscott- any sample code about the "never show" dialog box we can copy ?
Assignee: ftang → yokoyama
Status: ASSIGNED → NEW
Keywords: nsbeta1nsbeta1+
was it approved by the mail UE team? It's great that you have a spec against the gecko engine but by adding it to gecko we added some very non pleasant side effects to mail which I don't think were considered. I'm pretty sure mail UE didn't know about this until after we started seeing this dialog come up for so many messages....
Frank, what was the bug fix that caused this to start working for mail? I tried going through the check in logs since December and I couldn't find the change that made this start showing up. I was curious to see why it wasn't showing up before. Thanks!
This dialog is new to me and I agree it could use some tweaking. Some suggestions if it is decided this dialog is necessary for Mail as well as Browser: 1. Deleting a mail message should not cause this dialog to appear. Only Opening the message should prompt the dialog if necessary. 2. Try to eliminate the "false positives" for seeing this dialog. Maybe non ASCII charsets in the email headers could be ignored and just the text in the body could be considered? (From mscott: messages are frequently sent and received with non ascii charsets listed in the email headers. This leads to the user seeing this dialog when the message just contains ascii text.) 3. Dialog needs a title. I'd recommend the product name (Netscape/Mozilla) so the user knows who is displaying this dialog. 4. Dialog should be sized correctly and button location should be appropriate to OS. 5. If you're just providing info to the user on how to do this, "OK" button is more appropriate than "Cancel". But, it would be better if the dialog instead gave the user the option to get the necessary language pack. Something like "In order to properly display this <message/web page> the <Lang_Pack_Name> language pack is needed. Would you like to download this now?" "Yes/No". Since we know exactly what language pack is nec, is it possible to just go the correct download site and start the download? 6. Agree a "Do not show this dialog again" checkbox would be useful.
>Frank, what was the bug fix that caused this to start working for mail? mscott: nhotta should be able to point you to the patch. He said it's something to do with passing the language attribute to gfx. nhotta?
Status: NEW → ASSIGNED
bug 102623 - added a lang attribute so that the right font can be selected for the message view
mscott: >was it approved by the mail UE team? As I understand, the spec is produced by the UE team before n6.2 and the mail impact is not a plan efforts but by a fix of a bug. Ask jaimejr, we simply implement what jaimejr hand over to us from UE team. The side effect of triggering in mail is not planned, but discussed during that time. We didn't have major change after n6.2 (except alecf and yokoyama move that code around but without major algorithm change. the triggering part is a side effect.) Let's focus, what is the absoulte necessary part for rtm ? I guess it is the "never show me again" part, right ?
Blocks: 141008
There is a browser bug 86525 which is requesting "never show me again" option too. I guess we can kill two birds with one stone.
IMO, when the checkbox is added, the alert should be changed to no longer disappear on its own. This will give people the chance to read it, decide how to handle it, and disable it if they so choose. This is especially true if we offer them the ability to download the correct font from the alert, which I think would be an enormous improvement over telling them to dig around in prefs.
Target Milestone: --- → mozilla1.0
Introduce a new "intl.fontdownload.enabled" Pref setting for enable/disable the fontdwnld dlgbx. We used to use the browser's "browser.display.use_document_fonts" to control; but we now should use generic setting for all the app. ("browser.xxxx" is browser specific.) I need help from UI people to add the checkmark in the Pref dlg. nhotta may be able to help for mail/news? smontagu may be able to help for browser? I also need help from ftang to change the behavior of the fontdownload dlgbox (ie. alert should no longer disappear on its own and add little wordings where the pref setting for this). Though I am bit surprised of this behavior. I wasn't aware of having this kind of _intelligent_ behavior.
Roy, is there anyway to disable the dialog for mail windows? I spent a couple days trying to investiage that but didn't get very far. The font selection code is so far below all the usual layers that I had no way of knowing what kind of window we were dealing with. I believe the code where we decide to bring up this dialog lies underneath the native nsWindow code.
>The font selection code is so far below all the usual layers that I had no way >of knowing what kind of window we were dealing with You are correct. The font detection part is deep inside gfx. (see the patch in #22) Unfortunately, there is no way of knowing which window we are dealing with. >is there anyway to disable the dialog for mail windows? Sorry, but only way I can think of is to use the Pref setting.
over to smontagu for load balancing
Assignee: yokoyama → smontagu
Status: ASSIGNED → NEW
chat with putterman and jaimejr about this issue in adt. putterman favor us to turn this feature off for mail only. mscott- can you help us to figure out how can we tell in nsIFontMetrics::Init that such request is coming from mail display ? or maybe we should turn this off for UTF-8 and UTF-16 display. Since mail is passing UTF-8 to the gecko, that will stop it.
Attached patch Don't offer to download in mail (obsolete) — Splinter Review
This is a bit clumsy, but seems to work. Will changes be needed to the mac build system, or does nsFontPackageService not get built there?
+ rv = domDocument->GetDocumentElement(getter_AddRefs(domElement)); + NS_ENSURE_SUCCESS(rv, rv); + + rv = domElement->GetAttribute(NS_LITERAL_STRING("windowtype"), windowType); GetDocumentElement, it may return success when domElement is null (see comments in bug 144735).
Are we ok with making nsLocale.dll depend on dom and appshell? ( btw, we have 'string' included in makefile.win and makefile.in)
ftang and I thought it was better to make intl/locale depend on dom and appshell than doing the same to gfx.
Attachment #83630 - Attachment is obsolete: true
By the way, it is possible to fool this patch by clicking on a Japanese mail message and immediately moving a navigator window in front of the mail window, or vice versa by entering a Japanese URL in the location bar and moving a mail window in front of the navigator window while it loads.
should we have this dependency in locale or xpfe/components/intl/nsFontPackageHandler.cpp ?
From the point of view of the dependency itself, I think it would be better in xpfe/components/intl, but that would introduce a complication. At the moment |nsFontPackageService::CallDownload| sets |aOutState| to |eDownload| before calling |nsFontPackageHandler::NeedFontPackage|, which will prevent it from calling again. So, if a user opens a Japanese mail message and then opens a Japanese web page later in the same session, the font download dialog will not appear for the web page. A way round that would be to change the patch to return NS_ERROR_FAILURE when called from a mail window, and only reset |aOutState| if |nsFontPackageHandler::NeedFontPackage| returns NS_OK.
... and the trouble with *that* is that it will cause an assertion in CheckFontLangGroup in nsFontMetricsWin.cpp: res = gFontPackageProxy->NeedFontPackage(fontpackageid); NS_ASSERTION(NS_SUCCEEDED(res), "cannot notify missing font package "); which would probably be even more annoying than the download, for the section of the community who use debug builds.
Attached patch Patch v.3 (obsolete) — Splinter Review
This moves the dependency on appshell into xpfe/components/intl, and avoids the problem described in comment #34 by returning NS_ERROR_ABORT
Attachment #83783 - Attachment is obsolete: true
It was found that GlobalWindowImpl::GetDocument also returns null. I ses nsASDOMWindowEnumerator::GetNext has the same issue. Please add error checks.
nhotta, would you like to r= attachment 83927 [details] [diff] [review]?
Comment on attachment 83927 [details] [diff] [review] Patch v.4 - more error checking per nhotta's last comment r=nhotta
Attachment #83927 - Flags: review+
Comment on attachment 83927 [details] [diff] [review] Patch v.4 - more error checking per nhotta's last comment sr=mscott I know it's a hack but I can't think of a better way for us to suppress this dialog in mail. Thanks so much for doing this Simon.
Attachment #83927 - Flags: superreview+
I won't be able to check this in before Monday 5/17. If time is critical for getting this in to RC3, maybe Roy can take it back?
I can check it in for you, simon. I have one question: what will happen if Gecko embedder would like to suppress the fontdlg? I dont' think this patch addresses a generic "never show me again" (bug 86525).
this is not needed for rc3. simon is off today. roy- please help to land this into trunk first. and mark it as fixed. IQA, please verify it is fixed on the trunk and mark it as verified.
checked into the trunk.
Status: NEW → RESOLVED
Closed: 23 years ago23 years ago
Resolution: --- → FIXED
Keywords: adt1.0.0, approval, intl
can someone verify this on trunk so we can ask adt approval ?
Using windows 2k: 2002052008. This is now working for me. If I click on a message that caused the font dialog to come up, I no longer get the dialog!
Verified as fixed with 05/21 trunk build. I don't see the dialog when viewing a mail which requires extra fonts for that language, and I do see the dialog when viewing a web page which needs the extra fonts.
Status: RESOLVED → VERIFIED
adding adt1.0.0+. Please get drivers approval and then check into the 1.0 branch.
Keywords: adt1.0.0adt1.0.0+
drivers replied: denying this request for now. please re-submit this request after mozilla 1.0 has shipped.
changing to adt1.0.1+ for checkin to the 1.0 branch for the Mozilla1.0.1 milestone. Please get drivers approval before checking in.
Keywords: adt1.0.0+adt1.0.1+
Comment on attachment 83927 [details] [diff] [review] Patch v.4 - more error checking per nhotta's last comment a=scc for checkin to mozilla1.0.1
Attachment #83927 - Flags: approval+
Keywords: mozilla1.0.1+
Checked in to branch
Blocks: 146292
No longer blocks: 141008
*** Bug 161159 has been marked as a duplicate of this bug. ***
ji - can you verify this bug fix in 1.01 branch? When verified, pls replace fixed1.0.1 keyword with verified1.0.1. Thanks.
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: