| 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 edf2fb31aef8055e3fd6dae9e0625f268a2687da..5c7f238ad4540106b52550380bc03e7766674277 100644
|
| --- a/chrome/browser/extensions/api/tabs/tabs_event_router.cc
|
| +++ b/chrome/browser/extensions/api/tabs/tabs_event_router.cc
|
| @@ -554,4 +554,31 @@ void TabsEventRouter::TabPinnedStateChanged(WebContents* contents, int index) {
|
| }
|
| }
|
|
|
| +void TabsEventRouter::OnZoomChangeInitiated(content::WebContents* web_contents,
|
| + double old_zoom_level,
|
| + double new_zoom_level,
|
| + 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
|
|
|