// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/ui/zoom/chrome_zoom_level_otr_delegate.h" #include "base/bind.h" #include "components/ui/zoom/zoom_event_manager.h" namespace chrome { ChromeZoomLevelOTRDelegate::ChromeZoomLevelOTRDelegate( base::WeakPtr zoom_event_manager) : zoom_event_manager_(zoom_event_manager), host_zoom_map_(nullptr) { } ChromeZoomLevelOTRDelegate::~ChromeZoomLevelOTRDelegate() { } void ChromeZoomLevelOTRDelegate::InitHostZoomMap( content::HostZoomMap* host_zoom_map) { // This init function must be called only once. DCHECK(!host_zoom_map_); DCHECK(host_zoom_map); host_zoom_map_ = host_zoom_map; zoom_subscription_ = host_zoom_map_->AddZoomLevelChangedCallback(base::Bind( &ChromeZoomLevelOTRDelegate::OnZoomLevelChanged, base::Unretained(this))); } void ChromeZoomLevelOTRDelegate::OnZoomLevelChanged( const content::HostZoomMap::ZoomLevelChange& change) { // If there's a manager to aggregate ZoomLevelChanged events, pass this event // along. Since we already hold a subscription to our associated HostZoomMap, // we don't need to create a separate subscription for this. if (zoom_event_manager_) zoom_event_manager_->OnZoomLevelChanged(change); } } // namespace chrome