| Index: net/base/sdch_manager.h
|
| diff --git a/net/base/sdch_manager.h b/net/base/sdch_manager.h
|
| index 0948b4c71782764569ee988726320a371752a263..c83d3a41ce59263466b7928eda2b3788bfde5ccb 100644
|
| --- a/net/base/sdch_manager.h
|
| +++ b/net/base/sdch_manager.h
|
| @@ -59,11 +59,6 @@ class NET_EXPORT SdchManager {
|
| typedef std::map<std::string, scoped_refptr<base::RefCountedData<Dictionary>>>
|
| DictionaryMap;
|
|
|
| - // Use the following static limits to block DOS attacks until we implement
|
| - // a cached dictionary evicition strategy.
|
| - static const size_t kMaxDictionarySize;
|
| - static const size_t kMaxDictionaryCount;
|
| -
|
| class NET_EXPORT_PRIVATE Dictionary {
|
| public:
|
| // Construct a vc-diff usable dictionary from the dictionary_text starting
|
| @@ -72,6 +67,7 @@ class NET_EXPORT SdchManager {
|
| Dictionary(const std::string& dictionary_text,
|
| size_t offset,
|
| const std::string& client_hash,
|
| + const std::string& server_hash,
|
| const GURL& url,
|
| const std::string& domain,
|
| const std::string& path,
|
| @@ -85,6 +81,7 @@ class NET_EXPORT SdchManager {
|
|
|
| const GURL& url() const { return url_; }
|
| const std::string& client_hash() const { return client_hash_; }
|
| + const std::string& server_hash() const { return server_hash_; }
|
| const std::string& domain() const { return domain_; }
|
| const std::string& path() const { return path_; }
|
| const base::Time& expiration() const { return expiration_; }
|
| @@ -128,6 +125,10 @@ class NET_EXPORT SdchManager {
|
| // it has a specific dictionary pre-cached.
|
| std::string client_hash_;
|
|
|
| + // Part of the hash of text_ that the server uses to identify the
|
| + // dictionary it wants used for decoding.
|
| + std::string server_hash_;
|
| +
|
| // The GURL that arrived with the text_ in a URL request to specify where
|
| // this dictionary may be used.
|
| const GURL url_;
|
| @@ -233,6 +234,10 @@ class NET_EXPORT SdchManager {
|
| SdchProblemCode OnGetDictionary(const GURL& request_url,
|
| const GURL& dictionary_url);
|
|
|
| + // Send out appropriate events notifying observers that a dictionary
|
| + // was successfully used to decode a request.
|
| + void OnDictionaryUsed(const std::string& server_hash);
|
| +
|
| // Get a handle to the available dictionaries that might be used
|
| // for encoding responses for the given URL. The return set will not
|
| // include expired dictionaries. If no dictionaries
|
| @@ -270,10 +275,16 @@ class NET_EXPORT SdchManager {
|
| // dictionaries. This addition will fail if addition is illegal
|
| // (data in the dictionary is not acceptable from the
|
| // dictionary_url; dictionary already added, etc.).
|
| + // If |server_hash| is non-null, returns the server hash that may be
|
| + // used as an argument to GetDictionarySetByHash.
|
| // Returns SDCH_OK if the addition was successfull, and corresponding error
|
| // code otherwise.
|
| SdchProblemCode AddSdchDictionary(const std::string& dictionary_text,
|
| - const GURL& dictionary_url);
|
| + const GURL& dictionary_url,
|
| + std::string* server_hash_p);
|
| +
|
| + // Remove an SDCH dictionary
|
| + SdchProblemCode RemoveSdchDictionary(const std::string& server_hash);
|
|
|
| // Registration for events generated by the SDCH subsystem.
|
| void AddObserver(SdchObserver* observer);
|
|
|