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

Side by Side Diff: components/url_matcher/url_matcher.h

Issue 1004593005: base::RefCounted now DCHECKs when referenced from multiple threads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix lots of tests using UnsafeRefCounted. Created 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef COMPONENTS_URL_MATCHER_URL_MATCHER_H_ 5 #ifndef COMPONENTS_URL_MATCHER_URL_MATCHER_H_
6 #define COMPONENTS_URL_MATCHER_URL_MATCHER_H_ 6 #define COMPONENTS_URL_MATCHER_URL_MATCHER_H_
7 7
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 static Range CreateRange(int port); 296 static Range CreateRange(int port);
297 297
298 private: 298 private:
299 std::vector<Range> ranges_; 299 std::vector<Range> ranges_;
300 300
301 DISALLOW_COPY_AND_ASSIGN(URLMatcherPortFilter); 301 DISALLOW_COPY_AND_ASSIGN(URLMatcherPortFilter);
302 }; 302 };
303 303
304 // This class represents a set of conditions that all need to match on a 304 // This class represents a set of conditions that all need to match on a
305 // given URL in order to be considered a match. 305 // given URL in order to be considered a match.
306 // TODO(mgiuca): Avoid using UnsafeRefCounted. http://crbug.com/469952.
306 class URL_MATCHER_EXPORT URLMatcherConditionSet 307 class URL_MATCHER_EXPORT URLMatcherConditionSet
307 : public base::RefCounted<URLMatcherConditionSet> { 308 : public base::UnsafeRefCounted<URLMatcherConditionSet> {
308 public: 309 public:
309 typedef int ID; 310 typedef int ID;
310 typedef std::set<URLMatcherCondition> Conditions; 311 typedef std::set<URLMatcherCondition> Conditions;
311 typedef std::set<URLQueryElementMatcherCondition> QueryConditions; 312 typedef std::set<URLQueryElementMatcherCondition> QueryConditions;
312 typedef std::vector<scoped_refptr<URLMatcherConditionSet> > Vector; 313 typedef std::vector<scoped_refptr<URLMatcherConditionSet> > Vector;
313 314
314 // Matches if all conditions in |conditions| are fulfilled. 315 // Matches if all conditions in |conditions| are fulfilled.
315 URLMatcherConditionSet(ID id, const Conditions& conditions); 316 URLMatcherConditionSet(ID id, const Conditions& conditions);
316 317
317 // Matches if all conditions in |conditions|, |scheme_filter| and 318 // Matches if all conditions in |conditions|, |scheme_filter| and
(...skipping 18 matching lines...) Expand all
336 const QueryConditions& query_conditions() const { return query_conditions_; } 337 const QueryConditions& query_conditions() const { return query_conditions_; }
337 338
338 bool IsMatch(const std::set<StringPattern::ID>& matching_patterns, 339 bool IsMatch(const std::set<StringPattern::ID>& matching_patterns,
339 const GURL& url) const; 340 const GURL& url) const;
340 341
341 bool IsMatch(const std::set<StringPattern::ID>& matching_patterns, 342 bool IsMatch(const std::set<StringPattern::ID>& matching_patterns,
342 const GURL& url, 343 const GURL& url,
343 const std::string& url_for_component_searches) const; 344 const std::string& url_for_component_searches) const;
344 345
345 private: 346 private:
346 friend class base::RefCounted<URLMatcherConditionSet>; 347 friend class base::UnsafeRefCounted<URLMatcherConditionSet>;
347 ~URLMatcherConditionSet(); 348 ~URLMatcherConditionSet();
348 ID id_; 349 ID id_;
349 Conditions conditions_; 350 Conditions conditions_;
350 QueryConditions query_conditions_; 351 QueryConditions query_conditions_;
351 scoped_ptr<URLMatcherSchemeFilter> scheme_filter_; 352 scoped_ptr<URLMatcherSchemeFilter> scheme_filter_;
352 scoped_ptr<URLMatcherPortFilter> port_filter_; 353 scoped_ptr<URLMatcherPortFilter> port_filter_;
353 354
354 DISALLOW_COPY_AND_ASSIGN(URLMatcherConditionSet); 355 DISALLOW_COPY_AND_ASSIGN(URLMatcherConditionSet);
355 }; 356 };
356 357
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 RegexSetMatcher origin_and_path_regex_set_matcher_; 418 RegexSetMatcher origin_and_path_regex_set_matcher_;
418 std::set<const StringPattern*> registered_full_url_patterns_; 419 std::set<const StringPattern*> registered_full_url_patterns_;
419 std::set<const StringPattern*> registered_url_component_patterns_; 420 std::set<const StringPattern*> registered_url_component_patterns_;
420 421
421 DISALLOW_COPY_AND_ASSIGN(URLMatcher); 422 DISALLOW_COPY_AND_ASSIGN(URLMatcher);
422 }; 423 };
423 424
424 } // namespace url_matcher 425 } // namespace url_matcher
425 426
426 #endif // COMPONENTS_URL_MATCHER_URL_MATCHER_H_ 427 #endif // COMPONENTS_URL_MATCHER_URL_MATCHER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698