Hi all,
I've been researching on DownloadManager for a day in order to to fix the
issue 3551 <http://crbug.com/3551>. I want to hear some advice from people
who know Chrome's design well.

The problem of this issue is like the
following: DownloadManager::OpenDownloadInShell() posts a task that opens a
file using the shell (ShellExecute()) to the file thread. Because this task
does not return any response (i.e. whether open was successful or not) back
to the UI thread, DownloadItem cannot receive the result of open and the
browser UI cannot display it either.

So, I want to add the functionality of receiving the result of opening a
file to DownloadItem. My current idea of implementation is:

1. Let DownloadItem be RefCountedThreadSafe, and rewrite use of
"DownloadItem*" to "scoped_refptr<DownloadItem>".
2. Add the interface of receiving the result of OpenDownloadInShell to
DownloadItem. Modify DownloadFileManager::OnOpenDownloadInShell to pass the
result to it.
3. Modify UI (DownloadItemView) to reflect these changes.
4. Write tests.

My question is:
- How do you think about the whole idea? Am I going the right way?
- Step 1: Is it okay to do this? Will this change give the negative effect
of the browser's speed?
- Step 3: How should the UI look like?
- Step 4: How to do it? Is there a good reference in the existing tests?
(Sorry but I'm not very experienced on testing...)

How do you think? Any idea and suggestion is welcome!

Thanks,
Yuta

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: [email protected] 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to