Chromium Code Reviews| Index: extensions/common/features/complex_feature.cc |
| diff --git a/extensions/common/features/complex_feature.cc b/extensions/common/features/complex_feature.cc |
| index ae7327cf174dcce8626c06ac4c241ac73716be8c..eeb4f776a4df21ed07a1eea2d2550a89557a036c 100644 |
| --- a/extensions/common/features/complex_feature.cc |
| +++ b/extensions/common/features/complex_feature.cc |
| @@ -9,6 +9,7 @@ namespace extensions { |
| ComplexFeature::ComplexFeature(scoped_ptr<FeatureList> features) { |
| DCHECK_GT(features->size(), 0UL); |
| features_.swap(*features); |
| + no_parent_ = features_[0]->no_parent(); |
|
not at google - send to devlin
2014/05/01 20:55:06
nice catch
|
| #if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON) |
| // Verify GetContexts, IsInternal, & IsBlockedInServiceWorker are consistent |
| @@ -29,6 +30,9 @@ ComplexFeature::ComplexFeature(scoped_ptr<FeatureList> features) { |
| DCHECK(first_blocked_in_service_worker == (*it)->IsBlockedInServiceWorker()) |
| << "Complex feature must have consistent values of " |
| "blocked_in_service_worker across all sub features."; |
| + DCHECK(no_parent_ == (*it)->no_parent()) |
| + << "Complex feature must have consistent values of " |
| + "no_parent across all sub features."; |
| } |
| #endif |
| } |
| @@ -82,6 +86,16 @@ Feature::Availability ComplexFeature::IsAvailableToContext( |
| return first_availability; |
| } |
| +bool ComplexFeature::IsIdInBlacklist(const std::string& extension_id) const { |
| + for (FeatureList::const_iterator it = features_.begin(); |
| + it != features_.end(); |
| + ++it) { |
| + if ((*it)->IsIdInBlacklist(extension_id)) |
| + return true; |
| + } |
| + return false; |
| +} |
| + |
| bool ComplexFeature::IsIdInWhitelist(const std::string& extension_id) const { |
| for (FeatureList::const_iterator it = features_.begin(); |
| it != features_.end(); |