Index: shell/url_resolver.cc |
diff --git a/shell/url_resolver.cc b/shell/url_resolver.cc |
index b4b4ebee5163bb254c5abf69c3d44fd34475d072..eafcc0ab8db801f210f48ed5ceb793a9fb0e021a 100644 |
--- a/shell/url_resolver.cc |
+++ b/shell/url_resolver.cc |
@@ -7,6 +7,7 @@ |
#include "base/base_paths.h" |
#include "base/files/file_path.h" |
#include "base/logging.h" |
+#include "shell/application_manager/query_util.h" |
#include "shell/filename_util.h" |
#include "shell/switches.h" |
#include "url/url_util.h" |
@@ -64,7 +65,8 @@ void URLResolver::AddOriginMapping(const GURL& origin, const GURL& base_url) { |
} |
GURL URLResolver::ApplyMappings(const GURL& url) const { |
- GURL mapped_url(url); |
+ std::string query; |
+ GURL mapped_url = GetBaseURLAndQuery(url, &query); |
for (;;) { |
const auto& url_it = url_map_.find(mapped_url); |
if (url_it != url_map_.end()) { |
@@ -80,6 +82,8 @@ GURL URLResolver::ApplyMappings(const GURL& url) const { |
mapped_url.spec().substr(origin.spec().length())); |
} |
+ if (query.length()) |
+ mapped_url = GURL(mapped_url.spec() + query); |
return mapped_url; |
} |
@@ -96,11 +100,9 @@ GURL URLResolver::ResolveMojoURL(const GURL& mojo_url) const { |
return mojo_url; |
} else { |
// It's still a mojo: URL, use the default mapping scheme. |
- std::string suffix = ""; |
- if (mojo_url.has_query()) { |
- suffix = "?" + mojo_url.query(); |
- } |
- std::string lib = mojo_url.host() + ".mojo" + suffix; |
+ std::string query; |
+ GURL base_url = GetBaseURLAndQuery(mojo_url, &query); |
+ std::string lib = base_url.host() + ".mojo" + query; |
return mojo_base_url_.Resolve(lib); |
} |
} |