Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / net / chrome_sdch_policy.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_NET_CHROME_SDCH_POLICY_H_
6 #define CHROME_BROWSER_NET_CHROME_SDCH_POLICY_H_
7
8 #include <string>
9
10 #include "net/base/sdch_observer.h"
11 #include "net/url_request/sdch_dictionary_fetcher.h"
12
13 class GURL;
14
15 namespace net {
16 class SdchManager;
17 class URLRequestContext;
18 }
19
20 // Implementation of chrome embedder policy for SDCH.  Handles fetches.
21 // TODO(rdsmith): Implement dictionary prioritization.
22 class ChromeSdchPolicy : public net::SdchObserver {
23  public:
24   // Consumer must guarantee that |sdch_manager| and |context| outlive
25   // this object.
26   ChromeSdchPolicy(net::SdchManager* sdch_manager,
27                    net::URLRequestContext* context);
28   ~ChromeSdchPolicy() override;
29
30   void OnDictionaryFetched(const std::string& dictionary_text,
31                            const GURL& dictionary_url);
32
33   // SdchObserver implementation.
34   void OnGetDictionary(net::SdchManager* manager,
35                        const GURL& request_url,
36                        const GURL& dictionary_url) override;
37   void OnClearDictionaries(net::SdchManager* manager) override;
38
39  private:
40   net::SdchManager* manager_;
41   net::SdchDictionaryFetcher fetcher_;
42 };
43
44 #endif  // CHROME_BROWSER_NET_CHROME_SDCH_POLICY_H_