| Index: include/AdblockPlus/ReferrerMapping.h |
| =================================================================== |
| --- a/include/AdblockPlus/ReferrerMapping.h |
| +++ b/include/AdblockPlus/ReferrerMapping.h |
| @@ -25,11 +25,36 @@ |
| namespace AdblockPlus |
| { |
| + /** |
| + * Stores a mapping between URLs and their referrers. |
| + * This can be used to build a chain of referrers for any URL |
| + * (see `BuildReferrerChain()`), which approximates the frame structure, see |
| + * FilterEngine::Matches(). |
| + */ |
| class ReferrerMapping |
| { |
| public: |
| + /** |
| + * Constructor. |
| + * @param maxCachedUrls Number of URL mappings to store. The higher the |
| + * better - clients typically cache requests, and a single cached |
| + * request will break the referrer chain. |
| + */ |
| ReferrerMapping(const int maxCachedUrls = 5000); |
| + |
| + /** |
| + * Records the refferer for a URL. |
| + * @param url Request URL. |
| + * @param referrer Request referrer. |
| + */ |
| void Add(const std::string& url, const std::string& referrer); |
| + |
| + /** |
| + * Builds a chain of referrers for the supplied URL. |
| + * This should reconstruct a document's parent frame URLs. |
| + * @param url URL to build the chain for. |
| + * @return List of URLs, starting with `url`. |
| + */ |
| std::vector<std::string> BuildReferrerChain(const std::string& url) const; |
| private: |