Elim cr-checkbox
[chromium-blink-merge.git] / chrome / browser / ui / zoom / chrome_zoom_level_otr_delegate.h
blobea6ac9baecc38373940ff8e184801505a457b689
1 // Copyright 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.
5 #ifndef CHROME_BROWSER_UI_ZOOM_CHROME_ZOOM_LEVEL_OTR_DELEGATE_H_
6 #define CHROME_BROWSER_UI_ZOOM_CHROME_ZOOM_LEVEL_OTR_DELEGATE_H_
8 #include "base/macros.h"
9 #include "base/memory/ref_counted.h"
10 #include "base/memory/weak_ptr.h"
11 #include "content/public/browser/host_zoom_map.h"
12 #include "content/public/browser/zoom_level_delegate.h"
14 namespace ui_zoom {
15 class ZoomEventManager;
18 // This class is a light-weight version of ChromeZoomLevelPrefs and is used
19 // to connect an OTR StoragePartition's HostZoomMap to the OTR profile's
20 // ZoomEventManager.
21 class ChromeZoomLevelOTRDelegate : public content::ZoomLevelDelegate {
22 public:
23 ChromeZoomLevelOTRDelegate(
24 base::WeakPtr<ui_zoom::ZoomEventManager> zoom_event_manager);
25 ~ChromeZoomLevelOTRDelegate() override;
27 // content::ZoomLevelDelegate
28 void InitHostZoomMap(content::HostZoomMap* host_zoom_map) override;
30 private:
31 // This is a callback function that receives notifications from HostZoomMap
32 // when per-host zoom levels change. It is used to update the per-host
33 // zoom levels (if any) managed by this class (for its associated partition).
34 void OnZoomLevelChanged(const content::HostZoomMap::ZoomLevelChange& change);
36 base::WeakPtr<ui_zoom::ZoomEventManager> zoom_event_manager_;
37 content::HostZoomMap* host_zoom_map_;
38 scoped_ptr<content::HostZoomMap::Subscription> zoom_subscription_;
40 DISALLOW_COPY_AND_ASSIGN(ChromeZoomLevelOTRDelegate);
43 #endif // CHROME_BROWSER_UI_ZOOM_CHROME_ZOOM_LEVEL_OTR_DELEGATE_H_