Closed Bug 31754 Opened 20 years ago Closed 20 years ago

nsIFileSpecWithUI do not use wstring for human language text and not localizable.

Categories

(Core :: XUL, defect, P2)

defect

Tracking

()

VERIFIED WONTFIX

People

(Reporter: ftang, Assigned: pavlov)

References

()

Details

(Whiteboard: [NEED INFO] [nsbeta2+])

The following method in widget/public/nsIFileSpecWithUI.idl
 and it's implementation use 'string' instead of 'wstring' for human readable 
text. This make it not localizable. Please change it and it's implementation, 
and the caller to wstring (const PRUnichar*)

 61     void chooseInputFile( in string title,
 62                           in unsigned long filterMask,
 63                           in string extraFilterTitle,
 64                           in string extraFilter );
 65 
 66     void chooseOutputFile( in string windowTitle, 
 67                            in string suggestedLeafName,
 68                            in unsigned long filterMask );
 69 
 70     string chooseFile(in string title);
 71 
 72     string chooseDirectory(in string title);
Change to

 61     void chooseInputFile( in wstring title,
 62                           in unsigned long filterMask,
 63                           in wstring extraFilterTitle,
 64                           in string extraFilter );
 65 
 66     void chooseOutputFile( in wstring windowTitle, 
 67                            in wstring suggestedLeafName,
 68                            in unsigned long filterMask );
 69 
 70     string chooseFile(in wstring title);
 71 
 72     string chooseDirectory(in wstring title);
Blocks: 31288
Assignee: trudelle → pinkerton
Priority: P3 → P2
Target Milestone: M15
reassigning to pinkerton as p2 for m15
moving all defects not directly related to P0 beta2 features off to M18.
Target Milestone: M15 → M18
Blocks: 12394
I think law is working on 31246. Maybe you should give this bug to him.
I18N wants to have a Japanese beta2, reassigning to danm for M15.
Assignee: pinkerton → danm
Target Milestone: M18 → M15
Nominated for beta2.
Keywords: beta2
Target Milestone: M15 → M16
Blocks: 14744
Mass-moving all M16 non-feature bugs to M17, which we still consider to be 
part of beta2
Target Milestone: M16 → M17
Keywords: nsbeta2
[NEED INFO]  ftang, can you comment as to why this is critical for beta?  
Thanks!
Whiteboard: [NEED INFO]
Because the interface use a wrong type in the parameter passing. It use string 
instead of wstring. And what that mean is all non ASCII text pass from/to java 
script to C++ code will be damaged. Therefore, all the Japanese text pass 
through this interface will be shown as garbage. In other word, the title of the 
dialogbox will shown as garbage. 

This bug have to be fixed ASAP unless we complete obsolete nsIFileSpecWithUI by 
beta2. Interface change is hard and should be done eariler in the whole 
developement cycle. Move this bug pass M16 mean you need to change a lot of code  
which call this interface. That is what you don't want to do afte M16.
nsIFileSpecWithUI is obsolescent and remaining usage will be replaced with 
usage of nsIFilePicker.  A while back I reviewed changes pavlov was working on 
to accomplish that (but for some reason he subsequently opened a bug for me to 
do it; I'm not sure what's up with that).

Anyway, this will be fixed by beta2, one way or another.
I agree if "nsIFileSpecWithUI is obsolescent and remaining usage will be 
replaced with usage of nsIFilePicker.", then we really don't need to fix this.
However, who is assigned to do that replacement and how can we gurantee it 
happened by the ned of M17. We should file a tracking bug about replacing all 
the nsIFileSpecWithUI to nsIFilePicker and make this bug depend on that one.
[nsbeta2+]
Whiteboard: [NEED INFO] → [NEED INFO] [nsbeta2+]
Blocks: 40158
taking
Assignee: danm → pavlov
i'm resolving this as wontfix.  please see the other bugs for changing to use
nsIFilePicker.  There is simply no point in fixing bugs in interfaces that
should not be used.

from bug 3025:

  Bug 36789, "File->Save should use nsIFilePicker instead of nsFileSpecWithUI",
             nsbeta2+
  Bug 39234, "use nsIFilePicker instead of nsFileWidget in Editor", M17
  Bug 37175, "bookmark code should use nsIFilePicker and nsILocaleFile from 
             nsIFileSpec/nsIFileSpecWithUI", LATER
Earlier work was done in bug 6783, "[feature] use nsIFilePicker to replace 
             nsIFileWidget, nsIFileSpecWithUI, etc"
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → WONTFIX
verified wontfix. (Follow the trail in bug 36789[FIXED], bug 39234,
bug 37175[FIXED] for remaining fixes).
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.