Index: chrome/browser/ui/zoom/chrome_zoom_level_otr_delegate.h |
diff --git a/chrome/browser/ui/zoom/chrome_zoom_level_otr_delegate.h b/chrome/browser/ui/zoom/chrome_zoom_level_otr_delegate.h |
index 5ea6ff8f800bb02007dccadb90564d30fb9f38c2..84738963de63e33266941d8b90515f0bbe751d33 100644 |
--- a/chrome/browser/ui/zoom/chrome_zoom_level_otr_delegate.h |
+++ b/chrome/browser/ui/zoom/chrome_zoom_level_otr_delegate.h |
@@ -5,11 +5,15 @@ |
#ifndef CHROME_BROWSER_UI_ZOOM_CHROME_ZOOM_LEVEL_OTR_DELEGATE_H_ |
#define CHROME_BROWSER_UI_ZOOM_CHROME_ZOOM_LEVEL_OTR_DELEGATE_H_ |
+#include "base/files/file_path.h" |
#include "base/macros.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
+#include "chrome/browser/ui/zoom/chrome_zoom_prefs_helper.h" |
+#include "components/prefs/pref_change_registrar.h" |
+#include "components/prefs/pref_service.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 zoom { |
class ZoomEventManager; |
@@ -17,25 +21,38 @@ class ZoomEventManager; |
// This class is a light-weight version of ChromeZoomLevelPrefs and is used |
// to connect an OTR StoragePartition's HostZoomMap to the OTR profile's |
-// ZoomEventManager. |
-class ChromeZoomLevelOTRDelegate : public content::ZoomLevelDelegate { |
+// ZoomEventManager and to provide the parent profile's default zoom scope. |
+class ChromeZoomLevelOTRDelegate : public zoom::ZoomPrefsDelegate { |
public: |
ChromeZoomLevelOTRDelegate( |
+ PrefService* pref_service, |
+ const base::FilePath& profile_path, |
+ const base::FilePath& partition_path, |
base::WeakPtr<zoom::ZoomEventManager> zoom_event_manager); |
~ChromeZoomLevelOTRDelegate() override; |
- // 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); |
+ void OnParentScopeChanged(); |
+ |
+ ChromeZoomPrefsHelper partitioned_prefs_; |
base::WeakPtr<zoom::ZoomEventManager> zoom_event_manager_; |
content::HostZoomMap* host_zoom_map_; |
std::unique_ptr<content::HostZoomMap::Subscription> zoom_subscription_; |
+ base::CallbackList<void(void)> default_scope_changed_callbacks_; |
+ bool last_scope_was_per_origin_; |
+ PrefChangeRegistrar pref_registrar_; |
DISALLOW_COPY_AND_ASSIGN(ChromeZoomLevelOTRDelegate); |
}; |