blob: cdb88db6401f6eb2a60e92ea7fb53ee58c493872 [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
avi8945fc92017-05-02 16:03:237#include "base/memory/ptr_util.h"
juncaia64f769c22016-06-04 00:55:328#include "components/zoom/zoom_event_manager_observer.h"
[email protected]63d1f9b2014-07-05 19:09:039#include "content/public/browser/browser_context.h"
10
11namespace {
12static const char kBrowserZoomEventManager[] = "browser_zoom_event_manager";
13}
14
juncaia64f769c22016-06-04 00:55:3215namespace zoom {
wjmaclean7f63c6b2014-12-09 14:59:5516
[email protected]63d1f9b2014-07-05 19:09:0317ZoomEventManager* ZoomEventManager::GetForBrowserContext(
18 content::BrowserContext* context) {
avi8945fc92017-05-02 16:03:2319 if (!context->GetUserData(kBrowserZoomEventManager)) {
20 context->SetUserData(kBrowserZoomEventManager,
21 base::MakeUnique<ZoomEventManager>());
22 }
[email protected]63d1f9b2014-07-05 19:09:0323 return static_cast<ZoomEventManager*>(
24 context->GetUserData(kBrowserZoomEventManager));
25}
26
juncaia64f769c22016-06-04 00:55:3227ZoomEventManager::ZoomEventManager() : weak_ptr_factory_(this) {}
[email protected]63d1f9b2014-07-05 19:09:0328
juncaia64f769c22016-06-04 00:55:3229ZoomEventManager::~ZoomEventManager() {}
[email protected]63d1f9b2014-07-05 19:09:0330
31void ZoomEventManager::OnZoomLevelChanged(
32 const content::HostZoomMap::ZoomLevelChange& change) {
33 zoom_level_changed_callbacks_.Notify(change);
34}
35
dcheng3f767dc32016-04-25 22:54:2236std::unique_ptr<content::HostZoomMap::Subscription>
[email protected]63d1f9b2014-07-05 19:09:0337ZoomEventManager::AddZoomLevelChangedCallback(
38 const content::HostZoomMap::ZoomLevelChangedCallback& callback) {
39 return zoom_level_changed_callbacks_.Add(callback);
40}
wjmaclean7f63c6b2014-12-09 14:59:5541
wjmaclean70081cb2015-02-04 16:14:2242void ZoomEventManager::OnDefaultZoomLevelChanged() {
ericwilligersff2af332016-10-19 00:16:5043 for (auto& observer : observers_)
44 observer.OnDefaultZoomLevelChanged();
wjmaclean70081cb2015-02-04 16:14:2245}
46
47void ZoomEventManager::AddZoomEventManagerObserver(
48 ZoomEventManagerObserver* observer) {
49 observers_.AddObserver(observer);
50}
51
52void ZoomEventManager::RemoveZoomEventManagerObserver(
53 ZoomEventManagerObserver* observer) {
54 observers_.RemoveObserver(observer);
55}
56
juncaia64f769c22016-06-04 00:55:3257} // namespace zoom