From e9ce67a136015a9c0994876e1c18afb7ee610794 Mon Sep 17 00:00:00 2001 From: "mdm@chromium.org" Date: Thu, 11 Nov 2010 20:58:49 +0000 Subject: Linux: use xdg-email instead of xdg-open to handle mailto: URLs. BUG=61942 TEST=set $MAILER and click on mailto: links when not using gnome/kde, it should open the mailer Review URL: http://codereview.chromium.org/4769003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65849 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/platform_util_linux.cc | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'chrome/browser/platform_util_linux.cc') diff --git a/chrome/browser/platform_util_linux.cc b/chrome/browser/platform_util_linux.cc index 7f4627c..514e438 100644 --- a/chrome/browser/platform_util_linux.cc +++ b/chrome/browser/platform_util_linux.cc @@ -14,10 +14,10 @@ namespace { -void XDGOpen(const std::string& path) { +void XDGUtil(const std::string& util, const std::string& arg) { std::vector argv; - argv.push_back("xdg-open"); - argv.push_back(path); + argv.push_back(util); + argv.push_back(arg); base::environment_vector env; // xdg-open can fall back on mailcap which eventually might plumb through @@ -41,6 +41,14 @@ void XDGOpen(const std::string& path) { ProcessWatcher::EnsureProcessGetsReaped(handle); } +void XDGOpen(const std::string& path) { + XDGUtil("xdg-open", path); +} + +void XDGEmail(const std::string& email) { + XDGUtil("xdg-email", email); +} + } // namespace namespace platform_util { @@ -61,7 +69,10 @@ void OpenItem(const FilePath& full_path) { } void OpenExternal(const GURL& url) { - XDGOpen(url.spec()); + if (url.SchemeIs("mailto")) + XDGEmail(url.spec()); + else + XDGOpen(url.spec()); } } // namespace platform_util -- cgit v1.1