Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1050)

Unified Diff: mojo/services/package_manager/package_manager.cc

Issue 1776813002: CapabilitySpec (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@42cpi
Patch Set: . Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/services/package_manager/package_manager.h ('k') | mojo/shell/public/cpp/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 139f95a7250101763bdb5a8a12b41ed59c85146f..106a4911d106cea30e0d2a3d524c372ea14863df 100644
--- a/mojo/services/package_manager/package_manager.cc
+++ b/mojo/services/package_manager/package_manager.cc
@@ -17,9 +17,47 @@
namespace package_manager {
namespace {
-CapabilityFilter BuildCapabilityFilterFromDictionary(
+Capabilities BuildCapabilitiesFromDictionary(
const base::DictionaryValue& value) {
- CapabilityFilter filter;
+ Capabilities capabilities;
+
+ const base::DictionaryValue* provided_value = nullptr;
+ if (value.HasKey(ApplicationCatalogStore::kCapabilities_ProvidedKey)) {
+ value.GetDictionary(ApplicationCatalogStore::kCapabilities_ProvidedKey,
+ &provided_value);
+ }
+ if (provided_value) {
+ base::DictionaryValue::Iterator it(provided_value);
+ for (; !it.IsAtEnd(); it.Advance()) {
+ const base::ListValue* values = nullptr;
+ CHECK(it.value().GetAsList(&values));
+ mojo::caps::Interfaces interfaces;
+ for (auto i = values->begin(); i != values->end(); ++i) {
+ mojo::caps::Interface interface_name;
+ const base::Value* v = *i;
+ CHECK(v->GetAsString(&interface_name));
+ interfaces.insert(interface_name);
+ }
+ capabilities.provided[it.key] = interfaces;
+ }
+ }
+
+ const base::DictionaryValue* required_value = nullptr;
+ if (value.HasKey(ApplicationCatalogStore::kCapabilities_RequiredKey)) {
+ value.GetDictionary(ApplicationCatalogStore::kCapabilities_RequiredKey,
+ &required_value);
+ }
+ if (required_value) {
+ base::DictionaryValue::Iterator it(required_value);
+ for (; !it.IsAtEnd(); it.Advance()) {
+ const base::DictionaryValue*
+ }
+
+ }
+
+
+
+ /*
base::DictionaryValue::Iterator it(value);
for (; !it.IsAtEnd(); it.Advance()) {
const base::ListValue* values = nullptr;
@@ -33,7 +71,8 @@ CapabilityFilter BuildCapabilityFilterFromDictionary(
}
filter[it.key()] = interfaces;
}
- return filter;
+ */
+ return capabilities;
}
ApplicationInfo BuildApplicationInfoFromDictionary(
@@ -54,7 +93,7 @@ ApplicationInfo BuildApplicationInfoFromDictionary(
const base::DictionaryValue* capabilities = nullptr;
CHECK(value.GetDictionary(ApplicationCatalogStore::kCapabilitiesKey,
&capabilities));
- info.base_filter = BuildCapabilityFilterFromDictionary(*capabilities);
+ info.base_filter = BuildCapabilitiesFromDictionary(*capabilities);
return info;
}
@@ -94,6 +133,15 @@ const char ApplicationCatalogStore::kQualifierKey[] = "process-group";
const char ApplicationCatalogStore::kDisplayNameKey[] = "display_name";
// static
const char ApplicationCatalogStore::kCapabilitiesKey[] = "capabilities";
+// static
+const char ApplicationCatalogStore::kCapabilities_ProvidedKey[] = "provided";
+// static
+const char ApplicationCatalogStore::kCapabilities_RequiredKey[] = "required";
+// static
+const char ApplicationCatalogStore::kCapabilities_InterfacesKey[] =
+ "interfaces";
+// static
+const char ApplicationCatalogStore::kCapabilities_ClassesKey[] = "classes";
ApplicationInfo::ApplicationInfo() {}
ApplicationInfo::ApplicationInfo(const ApplicationInfo& other) = default;
« no previous file with comments | « mojo/services/package_manager/package_manager.h ('k') | mojo/shell/public/cpp/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698