| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_SITE_SETTINGS_HANDLER_H_ | 5 #ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_SITE_SETTINGS_HANDLER_H_ |
| 6 #define CHROME_BROWSER_UI_WEBUI_SETTINGS_SITE_SETTINGS_HANDLER_H_ | 6 #define CHROME_BROWSER_UI_WEBUI_SETTINGS_SITE_SETTINGS_HANDLER_H_ |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/scoped_observer.h" | 10 #include "base/scoped_observer.h" |
| 11 #include "chrome/browser/storage/storage_info_fetcher.h" | 11 #include "chrome/browser/storage/storage_info_fetcher.h" |
| 12 #include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h" | 12 #include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h" |
| 13 #include "components/content_settings/core/browser/content_settings_observer.h" | 13 #include "components/content_settings/core/browser/content_settings_observer.h" |
| 14 #include "content/public/browser/host_zoom_map.h" |
| 14 #include "content/public/browser/notification_observer.h" | 15 #include "content/public/browser/notification_observer.h" |
| 15 #include "content/public/browser/notification_registrar.h" | 16 #include "content/public/browser/notification_registrar.h" |
| 16 | 17 |
| 17 class HostContentSettingsMap; | 18 class HostContentSettingsMap; |
| 18 class Profile; | 19 class Profile; |
| 19 | 20 |
| 20 namespace base { | 21 namespace base { |
| 21 class ListValue; | 22 class ListValue; |
| 22 } | 23 } |
| 23 | 24 |
| 24 namespace settings { | 25 namespace settings { |
| 25 | 26 |
| 26 // Chrome "ContentSettings" settings page UI handler. | 27 // Chrome "ContentSettings" settings page UI handler. |
| 27 class SiteSettingsHandler : public SettingsPageUIHandler, | 28 class SiteSettingsHandler : public SettingsPageUIHandler, |
| 28 public content_settings::Observer, | 29 public content_settings::Observer, |
| 29 public content::NotificationObserver { | 30 public content::NotificationObserver { |
| 30 public: | 31 public: |
| 31 explicit SiteSettingsHandler(Profile* profile); | 32 explicit SiteSettingsHandler(Profile* profile); |
| 32 ~SiteSettingsHandler() override; | 33 ~SiteSettingsHandler() override; |
| 33 | 34 |
| 34 // SettingsPageUIHandler: | 35 // SettingsPageUIHandler: |
| 35 void RegisterMessages() override; | 36 void RegisterMessages() override; |
| 36 void OnJavascriptAllowed() override; | 37 void OnJavascriptAllowed() override; |
| 37 void OnJavascriptDisallowed() override; | 38 void OnJavascriptDisallowed() override; |
| 38 | 39 |
| 39 // Usage info. | 40 // Usage info. |
| 40 void OnGetUsageInfo(const storage::UsageInfoEntries& entries); | 41 void OnGetUsageInfo(const storage::UsageInfoEntries& entries); |
| 41 void OnUsageInfoCleared(storage::QuotaStatusCode code); | 42 void OnUsageInfoCleared(storage::QuotaStatusCode code); |
| 42 | 43 |
| 43 // content_settings::Observer: | 44 // content_settings::Observer: |
| 44 void OnContentSettingChanged(const ContentSettingsPattern& primary_pattern, | 45 void OnContentSettingChanged(const ContentSettingsPattern& primary_pattern, |
| 45 const ContentSettingsPattern& secondary_pattern, | 46 const ContentSettingsPattern& secondary_pattern, |
| 46 ContentSettingsType content_type, | 47 ContentSettingsType content_type, |
| 47 std::string resource_identifier) override; | 48 std::string resource_identifier) override; |
| 48 | 49 |
| 49 // content::NotificationObserver: | 50 // content::NotificationObserver: |
| 50 void Observe(int type, | 51 void Observe(int type, |
| 51 const content::NotificationSource& source, | 52 const content::NotificationSource& source, |
| 52 const content::NotificationDetails& details) override; | 53 const content::NotificationDetails& details) override; |
| 53 | 54 |
| 55 // content::HostZoomMap subscription. |
| 56 void OnZoomLevelChanged(const content::HostZoomMap::ZoomLevelChange& change); |
| 57 |
| 54 private: | 58 private: |
| 55 friend class SiteSettingsHandlerTest; | 59 friend class SiteSettingsHandlerTest; |
| 56 FRIEND_TEST_ALL_PREFIXES(SiteSettingsHandlerTest, GetAndSetDefault); | 60 FRIEND_TEST_ALL_PREFIXES(SiteSettingsHandlerTest, GetAndSetDefault); |
| 57 FRIEND_TEST_ALL_PREFIXES(SiteSettingsHandlerTest, Origins); | 61 FRIEND_TEST_ALL_PREFIXES(SiteSettingsHandlerTest, Origins); |
| 58 FRIEND_TEST_ALL_PREFIXES(SiteSettingsHandlerTest, Patterns); | 62 FRIEND_TEST_ALL_PREFIXES(SiteSettingsHandlerTest, Patterns); |
| 59 FRIEND_TEST_ALL_PREFIXES(SiteSettingsHandlerTest, Incognito); | 63 FRIEND_TEST_ALL_PREFIXES(SiteSettingsHandlerTest, Incognito); |
| 64 FRIEND_TEST_ALL_PREFIXES(SiteSettingsHandlerTest, ZoomLevels); |
| 60 | 65 |
| 61 // Asynchronously fetches the usage for a given origin. Replies back with | 66 // Asynchronously fetches the usage for a given origin. Replies back with |
| 62 // OnGetUsageInfo above. | 67 // OnGetUsageInfo above. |
| 63 void HandleFetchUsageTotal(const base::ListValue* args); | 68 void HandleFetchUsageTotal(const base::ListValue* args); |
| 64 | 69 |
| 65 // Deletes the storage being used for a given host. | 70 // Deletes the storage being used for a given host. |
| 66 void HandleClearUsage(const base::ListValue* args); | 71 void HandleClearUsage(const base::ListValue* args); |
| 67 | 72 |
| 68 // Handles the request for a list of all USB devices. | 73 // Handles the request for a list of all USB devices. |
| 69 void HandleFetchUsbDevices(const base::ListValue* args); | 74 void HandleFetchUsbDevices(const base::ListValue* args); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 84 | 89 |
| 85 // Returns whether a given pattern is valid. | 90 // Returns whether a given pattern is valid. |
| 86 void HandleIsPatternValid(const base::ListValue* args); | 91 void HandleIsPatternValid(const base::ListValue* args); |
| 87 | 92 |
| 88 // Looks up whether an incognito session is active. | 93 // Looks up whether an incognito session is active. |
| 89 void HandleUpdateIncognitoStatus(const base::ListValue* args); | 94 void HandleUpdateIncognitoStatus(const base::ListValue* args); |
| 90 | 95 |
| 91 // Notifies the JS side whether incognito is enabled. | 96 // Notifies the JS side whether incognito is enabled. |
| 92 void SendIncognitoStatus(Profile* profile, bool was_destroyed); | 97 void SendIncognitoStatus(Profile* profile, bool was_destroyed); |
| 93 | 98 |
| 99 // Handles the request for a list of all zoom levels. |
| 100 void HandleFetchZoomLevels(const base::ListValue* args); |
| 101 |
| 102 // Sends the zoom level list down to the web ui. |
| 103 void SendZoomLevels(); |
| 104 |
| 105 // Removes a particular zoom level for a given host. |
| 106 void HandleRemoveZoomLevel(const base::ListValue* args); |
| 107 |
| 94 Profile* profile_; | 108 Profile* profile_; |
| 95 | 109 |
| 96 content::NotificationRegistrar notification_registrar_; | 110 content::NotificationRegistrar notification_registrar_; |
| 97 | 111 |
| 112 // Keeps track of events related to zooming. |
| 113 std::unique_ptr<content::HostZoomMap::Subscription> |
| 114 host_zoom_map_subscription_; |
| 115 |
| 98 // The host for which to fetch usage. | 116 // The host for which to fetch usage. |
| 99 std::string usage_host_; | 117 std::string usage_host_; |
| 100 | 118 |
| 101 // The origin for which to clear usage. | 119 // The origin for which to clear usage. |
| 102 std::string clearing_origin_; | 120 std::string clearing_origin_; |
| 103 | 121 |
| 104 // Change observer for content settings. | 122 // Change observer for content settings. |
| 105 ScopedObserver<HostContentSettingsMap, content_settings::Observer> observer_; | 123 ScopedObserver<HostContentSettingsMap, content_settings::Observer> observer_; |
| 106 | 124 |
| 107 DISALLOW_COPY_AND_ASSIGN(SiteSettingsHandler); | 125 DISALLOW_COPY_AND_ASSIGN(SiteSettingsHandler); |
| 108 }; | 126 }; |
| 109 | 127 |
| 110 } // namespace settings | 128 } // namespace settings |
| 111 | 129 |
| 112 #endif // CHROME_BROWSER_UI_WEBUI_SETTINGS_SITE_SETTINGS_HANDLER_H_ | 130 #endif // CHROME_BROWSER_UI_WEBUI_SETTINGS_SITE_SETTINGS_HANDLER_H_ |
| OLD | NEW |