Closed Bug 73106 Opened 23 years ago Closed 23 years ago

Change posing of download progress for embedding.

Categories

(Core Graveyard :: File Handling, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED
Future

People

(Reporter: trudelle, Assigned: law)

References

()

Details

(Keywords: embed)

Attachments

(3 files)

Need to change how this dialog is invoked so it can be overridden by embedding 
clients.  Some details below, more at URL above; danm will be happy to help and 
answer questions.

UI Posed by Gecko (Up Calls)
============================
These are calls to window.open, in one form or another, which are relevant to 
embedding. They're split into calls and callers, where a call is considered to 
be a base-level call to window.open which should be API-ized like we're 
discussing, and a caller is something which currently uses window.open but 
should use one of these new APIs when they're created.

I've tried to categorize these sensibly... Each category implies a UI-posing 
component with methods for each item marked "CALL" in that category. Items 
marked "CALLER" in a given category may imply a new method in that component 
(eg. the print dialog stuff), or may just be a caller of some other extant 
method in a different component (eg. the uri loader opening a new window).

Download Progress:
CALL: /xpfe/components/xfer/src/nsStreamXferOp.cpp#102
  chrome://global/content/downloadProgress.xul
Adding mozilla0.9 keyword, dependency
Blocks: 71837
Keywords: mozilla0.9
No longer blocks: 71837
Blocks: 65233
Apologies for all the bug spam. For the detailed overview of this task, see
danm's document:

  http://www.mozilla.org/xpfe/embedding-dialogs.html

See my first cut at a component-wise categorization:

  http://bugzilla.mozilla.org/showattachment.cgi?attach_id=27972

And if you want to laugh, see also my brainless incomplete IDL for these components:

  http://bugzilla.mozilla.org/showattachment.cgi?attach_id=28175

dr
Keywords: embed
Targetting mozilla0.9 and adding "nsbeta1+" so it appears on my radar.
Keywords: nsbeta1+
Target Milestone: --- → mozilla0.9
I'm not getting to this dialog till next round...
Target Milestone: mozilla0.9 → mozilla0.9.1
OK, moving back to mozilla0.9 'cause these are "embedding" bugs.
Target Milestone: mozilla0.9.1 → mozilla1.2
Target Milestone: mozilla1.2 → mozilla0.9.2
damnit, mozilla0.9!
Target Milestone: mozilla0.9.2 → mozilla0.9
Setting date in status whiteboard.
Whiteboard: Apr 24
Bill, you can move this to 0.9.1, unless you have other need for it in 0.9.
We changed our minds; targetting 0.9.1 now.
Target Milestone: mozilla0.9 → mozilla0.9.1
Overlaps with bug 65770
Whiteboard: Apr 24 → eta 5/11 .5 days
Blocks: 74012
nav triage: dont think this is holding any product release, it shd be targeted 
to the mozilla1.0 architecture freeze. moving as such. 
Target Milestone: mozilla0.9.1 → mozilla1.0
Vishy, this is an *embedding* bug, why are you triaging it, and delaying it past
all known embedding deadlines?  cc vishy, marek
I attached a new "progress dialog" component (first patch), and, changes to the 
xfer component (file-save-as, save-link-as code) that changes it to use this 
component.

The progress dialog is implemented using one of the existing progress dialogs 
so the implementation is a little thin.  It just creates some JS glue objects 
that bind the new interface to the old implementation.

What's missing is the change to the other client of the progress dialog: the 
uriloader/exthandler code.  Either it needs to change to use the stream 
listener from the xfer component (desirable, because that gets it error 
handling; undesirable because it's more work), or, it needs to be wired up to 
the new interface/component (so that embedders can hook in).  The latter 
probably isn't too hard (it's sort of the inverse of the glue layer in that 
component now).

This code isn't ideal, but probably accomplishes the objective.
Peter- sorry about that. I moved it out of mozilla0.9.1 as it was not a netscape 
beta stopper. Pls work with Bill to get the fix we need for embedding. 
This bug seems to be depressingly stalled. Apart from the null plugin issue,
this is the last non-compliant dialog left, and it's looking as if the null
plugin will be fixed in such a way as to use the prompt service so embedders
will get it for free. 

I don't know what other embedders feel about this, but for galeon it's a very
frustrating bug. Due to the way the external helper service is setup, even
though it's technically non-compliant, there isn't a problem because 
ShowProgressDialog lives in nsIHelperAppLauncherDialog, but nsStreamXferOp's
usage cannot be overridden without this landing. So, our users are placed in
the confusing situation of seeing our gnome progress dialog if the download
goes through the external helper service and the xul dialog when it goes 
through the stream transfer service.

What's the new embedding api finalisation target seeing as 0.9.2 has come and
gone?
I think we should try applying the patches I've attached and see if that gets
things working better.  I'll work on applying them to my current source tree and
verifying that it works for me (bringing up the same xul progress dialog as we
get via the uriloader).  I'd also like to make sure that it works OK with your
"override" of that dialog.

I'll post an update (and updated patch if necessary) later today.
I've attached the updated patch (no substantive changes).  This appears to 
still work for me.

The other patch attached previously (the one labelled "New progress dialog 
stuff" is unchanged.
I've successfully applied the patches and mozilla works as it should. I'm going
to start looking at constructing our GNOME impl of the interface as soon as I 
can. Have to think about the best way to reuse our existing nsIWebProgressListener.
Heh, this implementation is pretty crazy. :-)

I'm tempted to run screaming for the trees and hope that adam lock's new
nsIWebBrowserPersist lands. It uses nsIWebProgressListener in the same way that
nsIHelperAppLauncher does. We can use it's save function instead of going
through the stream transfer manager.

I'd hate to see what the c++ version of this ( ie: what our code would be )
would look like. :-)
Blocks: 98995
spam: over to File Handling.
Component: XP Apps: GUI Features → File Handling
->mozilla0.9.8

See also bug 102556.
Target Milestone: mozilla1.0 → mozilla0.9.8
Depends on: 27609
All these download related items are moving out; delayed due to overhaul of 
downloading and many regressions in this area.
Target Milestone: mozilla0.9.8 → mozilla0.9.9
Status: NEW → ASSIGNED
Target Milestone: mozilla0.9.9 → ---
Whiteboard: eta 5/11 .5 days
Target Milestone: --- → mozilla1.0
Spam: Setting target milestone for all these to Future.

Please note that most, if not all, will be fixed in the course of the work I'm 
doing for bug 27609.  That fact is noted in the "depends on" field for each of 
these bugs (I think; go ahead and remedy that if you like).

I just don't have time to deal with the wrath that comes with having too many 
bugs.
Target Milestone: mozilla1.0 → Future
New nsIProgressDialog interface is now in place.  Embedders, have at it.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
over to embed qa [load-balancing]...
QA Contact: sairuh → mdunn
Clean up verification of dated code change bus
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: