Upstream version 10.38.220.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / guest_view / web_view / web_view_guest.cc
index 88c1184..9d233f1 100644 (file)
@@ -331,6 +331,16 @@ void WebViewGuest::DidAttachToEmbedder() {
     // lifetime of the new guest is no longer managed by the opener guest.
     GetOpener()->pending_new_windows_.erase(this);
   }
+
+  ZoomController* zoom_controller = ZoomController::FromWebContents(
+      embedder_web_contents());
+  if (!zoom_controller)
+    return;
+  // Listen to the embedder's zoom changes.
+  zoom_controller->AddObserver(this);
+  // Set the guest's initial zoom level to be equal to the embedder's.
+  ZoomController::FromWebContents(guest_web_contents())->
+      SetZoomLevel(zoom_controller->GetZoomLevel());
 }
 
 void WebViewGuest::DidInitialize() {
@@ -1260,4 +1270,10 @@ void WebViewGuest::OnWebViewNewWindowResponse(
     guest->Destroy();
 }
 
+void WebViewGuest::OnZoomChanged(
+    const ZoomController::ZoomChangedEventData& data) {
+  ZoomController::FromWebContents(guest_web_contents())->
+      SetZoomLevel(data.new_zoom_level);
+}
+
 }  // namespace extensions