| Index: chrome/browser/extensions/api/tabs/tabs_event_router.cc
|
| diff --git a/chrome/browser/extensions/api/tabs/tabs_event_router.cc b/chrome/browser/extensions/api/tabs/tabs_event_router.cc
|
| index 4e93b4060ddfa55a858668828c5b4f6b45987495..beb0d3a07d9c4b017e86feb5dd5fbadb3cc47f00 100644
|
| --- a/chrome/browser/extensions/api/tabs/tabs_event_router.cc
|
| +++ b/chrome/browser/extensions/api/tabs/tabs_event_router.cc
|
| @@ -552,4 +552,33 @@ void TabsEventRouter::TabPinnedStateChanged(WebContents* contents, int index) {
|
| }
|
| }
|
|
|
| +void TabsEventRouter::OnZoomChangeInitiated(
|
| + content::WebContents* web_contents,
|
| + double old_zoom_level,
|
| + double new_zoom_level,
|
| + ZoomController::ZoomMode zoom_mode) {
|
| + DCHECK(web_contents);
|
| + int tab_id = ExtensionTabUtil::GetTabId(web_contents);
|
| + if (tab_id < 0)
|
| + return;
|
| +
|
| + // Prepare the zoom change information.
|
| + api::tabs::OnZoomChange::ZoomChangeInfo zoom_change_info;
|
| + zoom_change_info.tab_id = tab_id;
|
| + zoom_change_info.old_zoom_factor =
|
| + content::ZoomLevelToZoomFactor(old_zoom_level);
|
| + zoom_change_info.new_zoom_factor =
|
| + content::ZoomLevelToZoomFactor(new_zoom_level);
|
| + ZoomModeToZoomSettings(zoom_mode,
|
| + &zoom_change_info.zoom_settings);
|
| +
|
| + // Dispatch the |onZoomChange| event.
|
| + Profile* profile = Profile::FromBrowserContext(
|
| + web_contents->GetBrowserContext());
|
| + DispatchEvent(profile,
|
| + tabs::OnZoomChange::kEventName,
|
| + api::tabs::OnZoomChange::Create(zoom_change_info),
|
| + EventRouter::USER_GESTURE_UNKNOWN);
|
| +}
|
| +
|
| } // namespace extensions
|
|
|