Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / content_settings / chrome_content_settings_client.h
1 // Copyright (c) 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_CONTENT_SETTINGS_CHROME_CONTENT_SETTINGS_CLIENT_H_
6 #define CHROME_BROWSER_CONTENT_SETTINGS_CHROME_CONTENT_SETTINGS_CLIENT_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "chrome/browser/browsing_data/cookies_tree_model.h"
10 #include "chrome/browser/content_settings/local_shared_objects_container.h"
11 #include "components/content_settings/core/browser/content_settings_client.h"
12 #include "content/public/browser/web_contents_user_data.h"
13
14 // Chrome-specific implementation of the ContentSettingsClient interface.
15 class ChromeContentSettingsClient
16     : public content_settings::ContentSettingsClient,
17       public content::WebContentsUserData<ChromeContentSettingsClient> {
18  public:
19   ~ChromeContentSettingsClient() override;
20
21   static void CreateForWebContents(content::WebContents* contents);
22
23   // ContentSettingsClient implementation.
24   void OnCookiesRead(const GURL& url,
25                      const GURL& first_party_url,
26                      const net::CookieList& cookie_list,
27                      bool blocked_by_policy) override;
28   void OnCookieChanged(const GURL& url,
29                        const GURL& first_party_url,
30                        const std::string& cookie_line,
31                        const net::CookieOptions& options,
32                        bool blocked_by_policy) override;
33   void OnFileSystemAccessed(const GURL& url, bool blocked_by_policy) override;
34   void OnIndexedDBAccessed(const GURL& url,
35                            const base::string16& description,
36                            bool blocked_by_policy) override;
37   void OnLocalStorageAccessed(const GURL& url,
38                               bool local,
39                               bool blocked_by_policy) override;
40   void OnWebDatabaseAccessed(const GURL& url,
41                              const base::string16& name,
42                              const base::string16& display_name,
43                              bool blocked_by_policy) override;
44   const LocalSharedObjectsCounter& local_shared_objects(
45       AccessType type) const override;
46
47   // Creates a new copy of a CookiesTreeModel for all allowed (or blocked,
48   // depending on |type|) local shared objects.
49   scoped_ptr<CookiesTreeModel> CreateCookiesTreeModel(AccessType type) const;
50
51  private:
52   friend class content::WebContentsUserData<ChromeContentSettingsClient>;
53
54   explicit ChromeContentSettingsClient(content::WebContents* contents);
55
56   // Stores the blocked/allowed site data.
57   LocalSharedObjectsContainer allowed_local_shared_objects_;
58   LocalSharedObjectsContainer blocked_local_shared_objects_;
59
60   DISALLOW_COPY_AND_ASSIGN(ChromeContentSettingsClient);
61 };
62
63 #endif  // CHROME_BROWSER_CONTENT_SETTINGS_CHROME_CONTENT_SETTINGS_CLIENT_H_