| Index: chrome/common/extensions/url_pattern.h
 | 
| ===================================================================
 | 
| --- chrome/common/extensions/url_pattern.h	(revision 54542)
 | 
| +++ chrome/common/extensions/url_pattern.h	(working copy)
 | 
| @@ -5,6 +5,7 @@
 | 
|  #define CHROME_COMMON_EXTENSIONS_URL_PATTERN_H_
 | 
|  #pragma once
 | 
|  
 | 
| +#include <functional>
 | 
|  #include <string>
 | 
|  #include <vector>
 | 
|  
 | 
| @@ -164,6 +165,21 @@
 | 
|    // equivalent to this instance.
 | 
|    std::vector<URLPattern> ConvertToExplicitSchemes() const;
 | 
|  
 | 
| +  static bool EffectiveHostCompare(const URLPattern& a, const URLPattern& b) {
 | 
| +    if (a.match_all_urls_ && b.match_all_urls_)
 | 
| +      return false;
 | 
| +    return a.host_.compare(b.host_) < 0;
 | 
| +  };
 | 
| +
 | 
| +  // Used for origin comparisons in a std::set.
 | 
| +  class EffectiveHostCompareFunctor :
 | 
| +      public std::binary_function<URLPattern, URLPattern, bool> {
 | 
| +  public:
 | 
| +    bool operator()(const URLPattern& a, const URLPattern& b) const {
 | 
| +      return EffectiveHostCompare(a, b);
 | 
| +    };
 | 
| +  };
 | 
| +
 | 
|   private:
 | 
|    // A bitmask containing the schemes which are considered valid for this
 | 
|    // pattern. Parse() uses this to decide whether a pattern contains a valid
 | 
| 
 |