blob: 39a4c63c5e43a267a78d397f5f4ff34a3f8598e2 [file] [log] [blame]
[email protected]63d1f9b2014-07-05 19:09:031// 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.
4
juncaia64f769c22016-06-04 00:55:325#include "components/zoom/zoom_event_manager.h"
[email protected]63d1f9b2014-07-05 19:09:036
Gyuyoung Kim8b084c02018-01-23 13:34:377#include <memory>
8
juncaia64f769c22016-06-04 00:55:329#include "components/zoom/zoom_event_manager_observer.h"
[email protected]63d1f9b2014-07-05 19:09:0310#include "content/public/browser/browser_context.h"
11
12namespace {
13static const char kBrowserZoomEventManager[] = "browser_zoom_event_manager";
14}
15
juncaia64f769c22016-06-04 00:55:3216namespace zoom {
wjmaclean7f63c6b2014-12-09 14:59:5517
[email protected]63d1f9b2014-07-05 19:09:0318ZoomEventManager* ZoomEventManager::GetForBrowserContext(
19 content::BrowserContext* context) {
avi8945fc92017-05-02 16:03:2320 if (!context->GetUserData(kBrowserZoomEventManager)) {
21 context->SetUserData(kBrowserZoomEventManager,
Gyuyoung Kim8b084c02018-01-23 13:34:3722 std::make_unique<ZoomEventManager>());
avi8945fc92017-05-02 16:03:2323 }
[email protected]63d1f9b2014-07-05 19:09:0324 return static_cast<ZoomEventManager*>(
25 context->GetUserData(kBrowserZoomEventManager));
26}
27
juncaia64f769c22016-06-04 00:55:3228ZoomEventManager::ZoomEventManager() : weak_ptr_factory_(this) {}
[email protected]63d1f9b2014-07-05 19:09:0329
juncaia64f769c22016-06-04 00:55:3230ZoomEventManager::~ZoomEventManager() {}
[email protected]63d1f9b2014-07-05 19:09:0331
32void ZoomEventManager::OnZoomLevelChanged(
33 const content::HostZoomMap::ZoomLevelChange& change) {
34 zoom_level_changed_callbacks_.Notify(change);
35}
36
dcheng3f767dc32016-04-25 22:54:2237std::unique_ptr<content::HostZoomMap::Subscription>
[email protected]63d1f9b2014-07-05 19:09:0338ZoomEventManager::AddZoomLevelChangedCallback(
39 const content::HostZoomMap::ZoomLevelChangedCallback& callback) {
40 return zoom_level_changed_callbacks_.Add(callback);
41}
wjmaclean7f63c6b2014-12-09 14:59:5542
wjmaclean70081cb2015-02-04 16:14:2243void ZoomEventManager::OnDefaultZoomLevelChanged() {
ericwilligersff2af332016-10-19 00:16:5044 for (auto& observer : observers_)
45 observer.OnDefaultZoomLevelChanged();
wjmaclean70081cb2015-02-04 16:14:2246}
47
Alan Cutter108c0682018-07-03 05:03:2948void ZoomEventManager::AddObserver(ZoomEventManagerObserver* observer) {
wjmaclean70081cb2015-02-04 16:14:2249 observers_.AddObserver(observer);
50}
51
Alan Cutter108c0682018-07-03 05:03:2952void ZoomEventManager::RemoveObserver(ZoomEventManagerObserver* observer) {
wjmaclean70081cb2015-02-04 16:14:2253 observers_.RemoveObserver(observer);
54}
55
juncaia64f769c22016-06-04 00:55:3256} // namespace zoom