Index: mojo/services/package_manager/package_manager.cc |
diff --git a/mojo/services/package_manager/package_manager.cc b/mojo/services/package_manager/package_manager.cc |
index ccc12021a300cc4de314186ab3d0774ec3ab816a..1ec443aae198ae4a15c2bfe9add63859e2fc3106 100644 |
--- a/mojo/services/package_manager/package_manager.cc |
+++ b/mojo/services/package_manager/package_manager.cc |
@@ -151,6 +151,8 @@ void PackageManager::ResolveMojoURL(const mojo::String& mojo_url, |
if (alias_iter != mojo_url_aliases_.end()) { |
resolved_url = GURL(alias_iter->second.first); |
qualifier = alias_iter->second.second; |
+ } else { |
+ qualifier = resolved_url.host(); |
} |
EnsureURLInCatalog(resolved_url, qualifier, callback); |
@@ -193,13 +195,15 @@ void PackageManager::CompleteResolveMojoURL( |
file_url = system_package_dir_.Resolve(resolved_url.host() + extension); |
} |
- // TODO(beng): Use the actual capability filter from |info|! |
mojo::shell::mojom::CapabilityFilterPtr filter( |
mojo::shell::mojom::CapabilityFilter::New()); |
- mojo::Array<mojo::String> all_interfaces; |
- all_interfaces.push_back("*"); |
- filter->filter.insert("*", std::move(all_interfaces)); |
- |
+ filter->filter = mojo::Map<mojo::String, mojo::Array<mojo::String>>(); |
+ for (const auto& entry : info_iter->second.base_filter) { |
+ mojo::Array<mojo::String> interfaces; |
+ for (auto interface_name : entry.second) |
+ interfaces.push_back(interface_name); |
+ filter->filter.insert(entry.first, std::move(interfaces)); |
+ } |
callback.Run(resolved_url.spec(), qualifier, std::move(filter), |
file_url.spec()); |
} |