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

Unified Diff: mojo/shell/identity.cc

Issue 1354003002: Make CapabilityFilter be part of Identity (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 3 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
« mojo/shell/identity.h ('K') | « mojo/shell/identity.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/shell/identity.cc
diff --git a/mojo/shell/identity.cc b/mojo/shell/identity.cc
index b3d045094ae16f63fa3c8b11a7726b8bad9a60b5..15a2d8f023f1f00e2fd205599ad99bcc5da934c9 100644
--- a/mojo/shell/identity.cc
+++ b/mojo/shell/identity.cc
@@ -8,22 +8,58 @@
namespace mojo {
namespace shell {
+namespace {
-Identity::Identity() {}
+// It's valid to specify mojo: URLs in the filter either as mojo:foo or
+// mojo://foo/ - but we store the filter in the latter form.
+CapabilityFilter CanonicalizeFilter(const CapabilityFilter& filter) {
+ CapabilityFilter canonicalized;
+ for (CapabilityFilter::const_iterator it = filter.begin();
+ it != filter.end();
+ ++it) {
+ if (it->first == "*")
+ canonicalized[it->first] = it->second;
+ else
+ canonicalized[GURL(it->first).spec()] = it->second;
+ }
+ return canonicalized;
+}
+
+} // namespace
+
+Identity::Identity() : filter_(GetPermissiveCapabilityFilter()) {}
+
+Identity::Identity(const GURL& in_url)
+ : url(GetBaseURLAndQuery(in_url, nullptr)),
+ qualifier(url.spec()),
+ filter_(GetPermissiveCapabilityFilter()) {}
Identity::Identity(const GURL& in_url, const std::string& in_qualifier)
: url(GetBaseURLAndQuery(in_url, nullptr)),
- qualifier(in_qualifier.empty() ? url.spec() : in_qualifier) {}
+ qualifier(in_qualifier.empty() ? url.spec() : in_qualifier),
+ filter_(GetPermissiveCapabilityFilter()) {}
-// explicit
-Identity::Identity(const GURL& in_url)
- : url(GetBaseURLAndQuery(in_url, nullptr)), qualifier(url.spec()) {}
+Identity::Identity(const GURL& in_url,
+ const std::string& in_qualifier,
+ CapabilityFilter filter)
+ : url(GetBaseURLAndQuery(in_url, nullptr)),
+ qualifier(in_qualifier.empty() ? url.spec() : in_qualifier),
+ filter_(CanonicalizeFilter(filter)) {}
+
+Identity::~Identity() {}
bool Identity::operator<(const Identity& other) const {
+ // We specifically don't include filter in the equivalence check because we
+ // don't quite know how this should work yet.
+ // TODO(beng): figure out how it should work.
if (url != other.url)
return url < other.url;
return qualifier < other.qualifier;
}
+void Identity::SetFilter(const CapabilityFilter& filter) {
+ filter_ = CanonicalizeFilter(filter);
+}
+
} // namespace shell
} // namespace mojo
« mojo/shell/identity.h ('K') | « mojo/shell/identity.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698