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

Side by Side Diff: chrome/browser/extensions/api/declarative_content/content_condition.cc

Issue 16703018: Rewrite scoped_ptr<T>(NULL) to use the default ctor in chrome/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/declarative_content/content_condition.h" 5 #include "chrome/browser/extensions/api/declarative_content/content_condition.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/extensions/api/declarative_content/content_constants.h" 9 #include "chrome/browser/extensions/api/declarative_content/content_constants.h"
10 #include "extensions/common/matcher/url_matcher_factory.h" 10 #include "extensions/common/matcher/url_matcher_factory.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 } 62 }
63 63
64 // static 64 // static
65 scoped_ptr<ContentCondition> ContentCondition::Create( 65 scoped_ptr<ContentCondition> ContentCondition::Create(
66 URLMatcherConditionFactory* url_matcher_condition_factory, 66 URLMatcherConditionFactory* url_matcher_condition_factory,
67 const base::Value& condition, 67 const base::Value& condition,
68 std::string* error) { 68 std::string* error) {
69 const base::DictionaryValue* condition_dict = NULL; 69 const base::DictionaryValue* condition_dict = NULL;
70 if (!condition.GetAsDictionary(&condition_dict)) { 70 if (!condition.GetAsDictionary(&condition_dict)) {
71 *error = kExpectedDictionary; 71 *error = kExpectedDictionary;
72 return scoped_ptr<ContentCondition>(NULL); 72 return scoped_ptr<ContentCondition>();
73 } 73 }
74 74
75 // Verify that we are dealing with a Condition whose type we understand. 75 // Verify that we are dealing with a Condition whose type we understand.
76 std::string instance_type; 76 std::string instance_type;
77 if (!condition_dict->GetString(keys::kInstanceType, &instance_type)) { 77 if (!condition_dict->GetString(keys::kInstanceType, &instance_type)) {
78 *error = kConditionWithoutInstanceType; 78 *error = kConditionWithoutInstanceType;
79 return scoped_ptr<ContentCondition>(NULL); 79 return scoped_ptr<ContentCondition>();
80 } 80 }
81 if (instance_type != keys::kPageStateMatcherType) { 81 if (instance_type != keys::kPageStateMatcherType) {
82 *error = kExpectedOtherConditionType; 82 *error = kExpectedOtherConditionType;
83 return scoped_ptr<ContentCondition>(NULL); 83 return scoped_ptr<ContentCondition>();
84 } 84 }
85 85
86 scoped_refptr<URLMatcherConditionSet> url_matcher_condition_set; 86 scoped_refptr<URLMatcherConditionSet> url_matcher_condition_set;
87 std::vector<std::string> css_rules; 87 std::vector<std::string> css_rules;
88 88
89 for (base::DictionaryValue::Iterator iter(*condition_dict); 89 for (base::DictionaryValue::Iterator iter(*condition_dict);
90 !iter.IsAtEnd(); iter.Advance()) { 90 !iter.IsAtEnd(); iter.Advance()) {
91 const std::string& condition_attribute_name = iter.key(); 91 const std::string& condition_attribute_name = iter.key();
92 const Value& condition_attribute_value = iter.value(); 92 const Value& condition_attribute_value = iter.value();
93 if (condition_attribute_name == keys::kInstanceType) { 93 if (condition_attribute_name == keys::kInstanceType) {
(...skipping 22 matching lines...) Expand all
116 } 116 }
117 } else { 117 } else {
118 *error = base::StringPrintf(kInvalidTypeOfParamter, 118 *error = base::StringPrintf(kInvalidTypeOfParamter,
119 condition_attribute_name.c_str()); 119 condition_attribute_name.c_str());
120 } 120 }
121 } else { 121 } else {
122 *error = base::StringPrintf(kUnknownConditionAttribute, 122 *error = base::StringPrintf(kUnknownConditionAttribute,
123 condition_attribute_name.c_str()); 123 condition_attribute_name.c_str());
124 } 124 }
125 if (!error->empty()) 125 if (!error->empty())
126 return scoped_ptr<ContentCondition>(NULL); 126 return scoped_ptr<ContentCondition>();
127 } 127 }
128 128
129 if (!url_matcher_condition_set.get()) { 129 if (!url_matcher_condition_set.get()) {
130 URLMatcherConditionSet::Conditions url_matcher_conditions; 130 URLMatcherConditionSet::Conditions url_matcher_conditions;
131 url_matcher_conditions.insert( 131 url_matcher_conditions.insert(
132 url_matcher_condition_factory->CreateHostPrefixCondition( 132 url_matcher_condition_factory->CreateHostPrefixCondition(
133 std::string())); 133 std::string()));
134 url_matcher_condition_set = 134 url_matcher_condition_set =
135 new URLMatcherConditionSet(++g_next_id, url_matcher_conditions); 135 new URLMatcherConditionSet(++g_next_id, url_matcher_conditions);
136 } 136 }
137 return scoped_ptr<ContentCondition>( 137 return scoped_ptr<ContentCondition>(
138 new ContentCondition(url_matcher_condition_set, css_rules)); 138 new ContentCondition(url_matcher_condition_set, css_rules));
139 } 139 }
140 140
141 } // namespace extensions 141 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698