Index: chrome/browser/ui/zoom/chrome_zoom_level_prefs.h |
diff --git a/chrome/browser/ui/zoom/chrome_zoom_level_prefs.h b/chrome/browser/ui/zoom/chrome_zoom_level_prefs.h |
index 4799e23f1ccbadbca9c41d970a89f55e60bbeb4d..bae6c38156f61a27ed0f60effefcf7dd87112e98 100644 |
--- a/chrome/browser/ui/zoom/chrome_zoom_level_prefs.h |
+++ b/chrome/browser/ui/zoom/chrome_zoom_level_prefs.h |
@@ -11,12 +11,10 @@ |
#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
#include "base/observer_list.h" |
-#include "components/prefs/json_pref_store.h" |
-#include "components/prefs/pref_change_registrar.h" |
+#include "chrome/browser/ui/zoom/chrome_zoom_prefs_helper.h" |
#include "components/prefs/pref_service.h" |
-#include "components/prefs/pref_store.h" |
+#include "components/zoom/zoom_prefs_delegate.h" |
#include "content/public/browser/host_zoom_map.h" |
-#include "content/public/browser/zoom_level_delegate.h" |
namespace base { |
class DictionaryValue; |
@@ -26,20 +24,23 @@ namespace zoom { |
class ZoomEventManager; |
} |
-// A class to manage per-partition default and per-host zoom levels in Chrome's |
-// preference system. It implements an interface between the content/ zoom |
-// levels in HostZoomMap and Chrome's preference system. All changes |
-// to the per-partition default zoom levels from chrome/ flow through this |
+// A class to manage per-partition default and per-host zoom levels as well as |
+// the zoom scope pref in Chrome's preference system. It implements an |
+// interface to Chrome's preference system for the content/ zoom levels in |
+// HostZoomMap and the zoom scope in ZoomController. All changes to the |
+// per-partition default zoom levels and scope from chrome/ flow through this |
// class. Any changes to per-host levels are updated when HostZoomMap calls |
// OnZoomLevelChanged. |
-class ChromeZoomLevelPrefs : public content::ZoomLevelDelegate { |
+class ChromeZoomLevelPrefs : public zoom::ZoomPrefsDelegate { |
public: |
typedef base::CallbackList<void(void)>::Subscription |
DefaultZoomLevelSubscription; |
- // Initialize the pref_service and the partition_key via the constructor, |
- // as these concepts won't be available in the content base class |
- // ZoomLevelDelegate, which will define the InitHostZoomMap interface. |
+ // Initialize our ChromeZoomPrefsHelper with pref_service and the partition |
+ // information via this constructor, as these concepts won't be available in |
+ // the content base class ZoomLevelDelegate (which will define the |
+ // InitHostZoomMap interface) nor in the components class ZoomPrefsDelegate |
+ // (which will define the interface for the zoom scope pref). |
// |pref_service_| must outlive this class. |
ChromeZoomLevelPrefs( |
PrefService* pref_service, |
@@ -55,25 +56,31 @@ class ChromeZoomLevelPrefs : public content::ZoomLevelDelegate { |
std::unique_ptr<DefaultZoomLevelSubscription> |
RegisterDefaultZoomLevelCallback(const base::Closure& callback); |
+ void SetZoomScopeIsPerOriginPref(bool is_per_origin); |
+ |
void ExtractPerHostZoomLevels( |
const base::DictionaryValue* host_zoom_dictionary, |
bool sanitize_partition_host_zoom_levels); |
- // content::ZoomLevelDelegate |
+ // zoom::ZoomPrefsDelegate |
void InitHostZoomMap(content::HostZoomMap* host_zoom_map) override; |
+ bool GetZoomScopeIsPerOriginPref() const override; |
+ std::unique_ptr<DefaultZoomScopeSubscription> |
+ RegisterDefaultZoomScopeCallback(const base::Closure& callback) override; |
+ |
private: |
// This is a callback function that receives notifications from HostZoomMap |
// when per-host zoom levels change. It is used to update the per-host |
// zoom levels (if any) managed by this class (for its associated partition). |
void OnZoomLevelChanged(const content::HostZoomMap::ZoomLevelChange& change); |
- PrefService* pref_service_; |
+ ChromeZoomPrefsHelper partitioned_prefs_; |
base::WeakPtr<zoom::ZoomEventManager> zoom_event_manager_; |
content::HostZoomMap* host_zoom_map_; |
std::unique_ptr<content::HostZoomMap::Subscription> zoom_subscription_; |
- std::string partition_key_; |
base::CallbackList<void(void)> default_zoom_changed_callbacks_; |
+ base::CallbackList<void(void)> default_scope_changed_callbacks_; |
DISALLOW_COPY_AND_ASSIGN(ChromeZoomLevelPrefs); |
}; |