| Index: chrome/browser/platform_util_linux.cc
|
| ===================================================================
|
| --- chrome/browser/platform_util_linux.cc (revision 108954)
|
| +++ chrome/browser/platform_util_linux.cc (working copy)
|
| @@ -6,12 +6,16 @@
|
|
|
| #include <gtk/gtk.h>
|
|
|
| +#include "base/bind.h"
|
| #include "base/file_util.h"
|
| #include "base/process_util.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "content/common/process_watcher.h"
|
| +#include "content/public/browser/browser_thread.h"
|
| #include "googleurl/src/gurl.h"
|
|
|
| +using content::BrowserThread;
|
| +
|
| namespace {
|
|
|
| void XDGUtil(const std::string& util, const std::string& arg) {
|
| @@ -50,14 +54,10 @@
|
| XDGUtil("xdg-email", email);
|
| }
|
|
|
| -} // namespace
|
| -
|
| -namespace platform_util {
|
| -
|
| // TODO(estade): It would be nice to be able to select the file in the file
|
| // manager, but that probably requires extending xdg-open. For now just
|
| // show the folder.
|
| -void ShowItemInFolder(const FilePath& full_path) {
|
| +void ShowItemInFolderOnFileThread(const FilePath& full_path) {
|
| FilePath dir = full_path.DirName();
|
| if (!file_util::DirectoryExists(dir))
|
| return;
|
| @@ -65,8 +65,20 @@
|
| XDGOpen(dir.value());
|
| }
|
|
|
| +} // namespace
|
| +
|
| +namespace platform_util {
|
| +
|
| +void ShowItemInFolder(const FilePath& full_path) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
|
| + base::Bind(&ShowItemInFolderOnFileThread, full_path));
|
| +}
|
| +
|
| void OpenItem(const FilePath& full_path) {
|
| - XDGOpen(full_path.value());
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
|
| + base::Bind(&XDGOpen, full_path.value()));
|
| }
|
|
|
| void OpenExternal(const GURL& url) {
|
|
|