Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc

Issue 598163003: <webview>: Zooming the embedder should zoom the guest by the same level. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed spacing Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 5
6 #include "chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h" 6 #include "chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h"
7 7
8 #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" 8 #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
9 #include "chrome/browser/favicon/favicon_tab_helper.h" 9 #include "chrome/browser/favicon/favicon_tab_helper.h"
10 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h" 10 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 content::BrowserThread::IO, 116 content::BrowserThread::IO,
117 FROM_HERE, 117 FROM_HERE,
118 base::Bind( 118 base::Bind(
119 &RemoveWebViewEventListenersOnIOThread, 119 &RemoveWebViewEventListenersOnIOThread,
120 web_view_guest()->browser_context(), 120 web_view_guest()->browser_context(),
121 web_view_guest()->embedder_extension_id(), 121 web_view_guest()->embedder_extension_id(),
122 web_view_guest()->embedder_render_process_id(), 122 web_view_guest()->embedder_render_process_id(),
123 web_view_guest()->view_instance_id())); 123 web_view_guest()->view_instance_id()));
124 } 124 }
125 125
126 void ChromeWebViewGuestDelegate::OnDidAttachToEmbedder() {
127 // TODO(fsamuel): This code should be implemented in GuestViewBase once the
128 // ZoomController moves to the extensions module.
129 ZoomController* zoom_controller = ZoomController::FromWebContents(
130 web_view_guest()->embedder_web_contents());
131 if (!zoom_controller)
132 return;
133 // Listen to the embedder's zoom changes.
134 zoom_controller->AddObserver(this);
135 // Set the guest's initial zoom level to be equal to the embedder's.
136 ZoomController::FromWebContents(guest_web_contents())->
137 SetZoomLevel(zoom_controller->GetZoomLevel());
138 }
139
126 void ChromeWebViewGuestDelegate::OnDidCommitProvisionalLoadForFrame( 140 void ChromeWebViewGuestDelegate::OnDidCommitProvisionalLoadForFrame(
127 bool is_main_frame) { 141 bool is_main_frame) {
128 // Update the current zoom factor for the new page. 142 // Update the current zoom factor for the new page.
129 ZoomController* zoom_controller = 143 ZoomController* zoom_controller =
130 ZoomController::FromWebContents(guest_web_contents()); 144 ZoomController::FromWebContents(guest_web_contents());
131 DCHECK(zoom_controller); 145 DCHECK(zoom_controller);
132 current_zoom_factor_ = zoom_controller->GetZoomLevel(); 146 current_zoom_factor_ = zoom_controller->GetZoomLevel();
133 if (is_main_frame) 147 if (is_main_frame)
134 chromevox_injected_ = false; 148 chromevox_injected_ = false;
135 } 149 }
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 accessibility_subscription_.reset(); 245 accessibility_subscription_.reset();
232 } else if (details.notification_type == 246 } else if (details.notification_type ==
233 chromeos::ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK) { 247 chromeos::ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK) {
234 if (details.enabled) 248 if (details.enabled)
235 InjectChromeVoxIfNeeded(guest_web_contents()->GetRenderViewHost()); 249 InjectChromeVoxIfNeeded(guest_web_contents()->GetRenderViewHost());
236 else 250 else
237 chromevox_injected_ = false; 251 chromevox_injected_ = false;
238 } 252 }
239 } 253 }
240 #endif 254 #endif
255
256 void ChromeWebViewGuestDelegate::OnZoomChanged(
257 const ZoomController::ZoomChangedEventData& data) {
258 ZoomController::FromWebContents(guest_web_contents())->
259 SetZoomLevel(data.new_zoom_level);
260 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698