// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_EXTENT_H_ #define CHROME_COMMON_EXTENSIONS_EXTENSION_EXTENT_H_ #pragma once #include <vector> class GURL; class URLPattern; // Represents the set of URLs an extension uses for web content. class ExtensionExtent { public: typedef std::vector<URLPattern> PatternList; ExtensionExtent(); ExtensionExtent(const ExtensionExtent& rhs); ~ExtensionExtent(); ExtensionExtent& operator=(const ExtensionExtent& rhs); bool is_empty() const; const PatternList& patterns() const { return patterns_; } void AddPattern(const URLPattern& pattern); void ClearPaths(); // Test if the extent contains a URL. bool ContainsURL(const GURL& url) const; // Returns true if there is a single URL that would be in two extents. bool OverlapsWith(const ExtensionExtent& other) const; private: // The list of URL patterns that comprise the extent. PatternList patterns_; }; #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_EXTENT_H_