Hi Yuta, I suspect it is simpler to change DownloadShelfContextMenu::IsItemCommandEnabled() and enable its "open" and "show in folder" items only when the downloaded file exists as shown in my mock code <http://codereview.chromium.org/113805>. (Even though this mock code is not tested thoroughly and may cause side-effects, please feel free to copy and use it.)
Regards, Hironori Bono E-mail: hb...@chromium.org On Sat, May 23, 2009 at 10:47 AM, Yuta Kitamura <yu...@google.com> wrote: > 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: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---