Plumb default zoom level change events to zoom icon in location bar.
At present, a change in the default zoom level does not immediately
update the zoom icon in the location bar. E.g. if we change the zoom
level of chrome://settings to 90% (causing the zoom icon to display a
'-' symbol), then change the default zoom level to be 75%, the icon
should switch to show '+'.
This CL adds an event subscription to the ZoomEventManager in order
to receive notifications about default zoom level changes.
BUG=451349
Review URL: https://codereview.chromium.org/897513003
Cr-Commit-Position: refs/heads/master@{#314568}
diff --git a/components/ui/zoom/zoom_event_manager.cc b/components/ui/zoom/zoom_event_manager.cc
index 72906271..f841123 100644
--- a/components/ui/zoom/zoom_event_manager.cc
+++ b/components/ui/zoom/zoom_event_manager.cc
@@ -4,6 +4,7 @@
#include "components/ui/zoom/zoom_event_manager.h"
+#include "components/ui/zoom/zoom_event_manager_observer.h"
#include "content/public/browser/browser_context.h"
namespace {
@@ -37,4 +38,19 @@
return zoom_level_changed_callbacks_.Add(callback);
}
+void ZoomEventManager::OnDefaultZoomLevelChanged() {
+ FOR_EACH_OBSERVER(ZoomEventManagerObserver, observers_,
+ OnDefaultZoomLevelChanged());
+}
+
+void ZoomEventManager::AddZoomEventManagerObserver(
+ ZoomEventManagerObserver* observer) {
+ observers_.AddObserver(observer);
+}
+
+void ZoomEventManager::RemoveZoomEventManagerObserver(
+ ZoomEventManagerObserver* observer) {
+ observers_.RemoveObserver(observer);
+}
+
} // namespace ui_zoom