diff options
author | mdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-11 20:58:49 +0000 |
---|---|---|
committer | mdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-11 20:58:49 +0000 |
commit | e9ce67a136015a9c0994876e1c18afb7ee610794 (patch) | |
tree | 373d4a2d8b22b7f1cd2e4e65b0db10d0a8ffc845 /chrome/browser/platform_util_linux.cc | |
parent | 485f27a30266ede18bce02eded2fb82460125a39 (diff) | |
download | chromium_src-e9ce67a136015a9c0994876e1c18afb7ee610794.zip chromium_src-e9ce67a136015a9c0994876e1c18afb7ee610794.tar.gz chromium_src-e9ce67a136015a9c0994876e1c18afb7ee610794.tar.bz2 |
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
Diffstat (limited to 'chrome/browser/platform_util_linux.cc')
-rw-r--r-- | chrome/browser/platform_util_linux.cc | 19 |
1 files changed, 15 insertions, 4 deletions
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<std::string> 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 |