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 -~----------~----~----~----~------~----~------~--~---
