Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Unified Diff: chrome/browser/ui/zoom/chrome_zoom_level_otr_delegate.h

Issue 2630583002: Add setting to isolate zoom changes by default. (Closed)
Patch Set: ... and tell closure_compiler. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698