summaryrefslogtreecommitdiffstats
path: root/chrome/browser/platform_util_linux.cc
diff options
context:
space:
mode:
authormdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-11 20:58:49 +0000
committermdm@chromium.org <mdm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-11 20:58:49 +0000
commite9ce67a136015a9c0994876e1c18afb7ee610794 (patch)
tree373d4a2d8b22b7f1cd2e4e65b0db10d0a8ffc845 /chrome/browser/platform_util_linux.cc
parent485f27a30266ede18bce02eded2fb82460125a39 (diff)
downloadchromium_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.cc19
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