zoom_event_manager.cc 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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.
  4. #include "components/zoom/zoom_event_manager.h"
  5. #include <memory>
  6. #include "base/observer_list.h"
  7. #include "components/zoom/zoom_event_manager_observer.h"
  8. #include "content/public/browser/browser_context.h"
  9. namespace {
  10. static const char kBrowserZoomEventManager[] = "browser_zoom_event_manager";
  11. }
  12. namespace zoom {
  13. ZoomEventManager* ZoomEventManager::GetForBrowserContext(
  14. content::BrowserContext* context) {
  15. if (!context->GetUserData(kBrowserZoomEventManager)) {
  16. context->SetUserData(kBrowserZoomEventManager,
  17. std::make_unique<ZoomEventManager>());
  18. }
  19. return static_cast<ZoomEventManager*>(
  20. context->GetUserData(kBrowserZoomEventManager));
  21. }
  22. ZoomEventManager::ZoomEventManager() {}
  23. ZoomEventManager::~ZoomEventManager() {}
  24. void ZoomEventManager::OnZoomLevelChanged(
  25. const content::HostZoomMap::ZoomLevelChange& change) {
  26. zoom_level_changed_callbacks_.Notify(change);
  27. }
  28. base::CallbackListSubscription ZoomEventManager::AddZoomLevelChangedCallback(
  29. content::HostZoomMap::ZoomLevelChangedCallback callback) {
  30. return zoom_level_changed_callbacks_.Add(std::move(callback));
  31. }
  32. void ZoomEventManager::OnDefaultZoomLevelChanged() {
  33. for (auto& observer : observers_)
  34. observer.OnDefaultZoomLevelChanged();
  35. }
  36. void ZoomEventManager::AddObserver(ZoomEventManagerObserver* observer) {
  37. observers_.AddObserver(observer);
  38. }
  39. void ZoomEventManager::RemoveObserver(ZoomEventManagerObserver* observer) {
  40. observers_.RemoveObserver(observer);
  41. }
  42. } // namespace zoom