Index: mojo/shell/mojo_url_resolver.cc |
diff --git a/mojo/shell/mojo_url_resolver.cc b/mojo/shell/mojo_url_resolver.cc |
index 63a8b570330b1650bd4dd4bc9f94abf78b3fcd32..9591b1df142b76cb8321f59aa216e8fab47e559c 100644 |
--- a/mojo/shell/mojo_url_resolver.cc |
+++ b/mojo/shell/mojo_url_resolver.cc |
@@ -9,18 +9,19 @@ |
#include "base/logging.h" |
#include "base/path_service.h" |
#include "net/base/filename_util.h" |
+#include "url/url_util.h" |
namespace mojo { |
namespace shell { |
namespace { |
-std::string MakeSharedLibraryName(const std::string& file_name) { |
+std::string MakeSharedLibraryName(const std::string& host_name) { |
#if defined(OS_WIN) |
- return file_name + ".dll"; |
+ return host_name + ".dll"; |
#elif defined(OS_LINUX) |
- return "lib" + file_name + ".so"; |
+ return "lib" + host_name + ".so"; |
#elif defined(OS_MACOSX) |
- return "lib" + file_name + ".dylib"; |
+ return "lib" + host_name + ".dylib"; |
#else |
NOTREACHED() << "dynamic loading of services not supported"; |
return std::string(); |
@@ -30,6 +31,8 @@ std::string MakeSharedLibraryName(const std::string& file_name) { |
} // namespace |
MojoURLResolver::MojoURLResolver() { |
+ // Needed to treat first component of mojo URLs as host, not path. |
+ url::AddStandardScheme("mojo"); |
} |
MojoURLResolver::~MojoURLResolver() { |
@@ -49,7 +52,7 @@ GURL MojoURLResolver::Resolve(const GURL& mojo_url) const { |
if (it != url_map_.end()) |
return it->second; |
- std::string lib = MakeSharedLibraryName(mojo_url.ExtractFileName()); |
+ std::string lib = MakeSharedLibraryName(mojo_url.host()); |
if (local_file_set_.find(mojo_url) != local_file_set_.end()) { |
// Resolve to a local file URL. |