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

Side by Side Diff: content/browser/frame_host/cross_process_frame_connector.cc

Issue 1592573002: Fixing WebViewVisibilityTests for OOPIF-<webview>. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: BrowserPluginGuest does not Change Visibility of OOPIF-<webview> Created 4 years, 10 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 #include "content/browser/frame_host/cross_process_frame_connector.h" 5 #include "content/browser/frame_host/cross_process_frame_connector.h"
6 6
7 #include "cc/surfaces/surface.h" 7 #include "cc/surfaces/surface.h"
8 #include "cc/surfaces/surface_manager.h" 8 #include "cc/surfaces/surface_manager.h"
9 #include "content/browser/compositor/surface_utils.h" 9 #include "content/browser/compositor/surface_utils.h"
10 #include "content/browser/frame_host/frame_tree.h" 10 #include "content/browser/frame_host/frame_tree.h"
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 void CrossProcessFrameConnector::OnFrameRectChanged( 226 void CrossProcessFrameConnector::OnFrameRectChanged(
227 const gfx::Rect& frame_rect) { 227 const gfx::Rect& frame_rect) {
228 if (!frame_rect.size().IsEmpty()) 228 if (!frame_rect.size().IsEmpty())
229 SetSize(frame_rect); 229 SetSize(frame_rect);
230 } 230 }
231 231
232 void CrossProcessFrameConnector::OnVisibilityChanged(bool visible) { 232 void CrossProcessFrameConnector::OnVisibilityChanged(bool visible) {
233 if (!view_) 233 if (!view_)
234 return; 234 return;
235 235
236 // If there is an inner WebContents, it should be notified of the change in
237 // the visibility. The Show/Hide methods will not be called if an inner
238 // WebContents exists since the corresponding WebContents will itself call
239 // Show/Hide on all the RenderWidgetHostViews (including this) one.
240 if (frame_proxy_in_parent_renderer_->frame_tree_node()
241 ->render_manager()
242 ->ForInnerDelegate()) {
243 RenderWidgetHostImpl::From(view_->GetRenderWidgetHost())
244 ->delegate()
245 ->OnRenderFrameProxyVisibilityChanged(visible);
246 return;
247 }
248
236 if (visible) 249 if (visible)
237 view_->Show(); 250 view_->Show();
238 else 251 else
239 view_->Hide(); 252 view_->Hide();
240 } 253 }
241 254
242 void CrossProcessFrameConnector::SetDeviceScaleFactor(float scale_factor) { 255 void CrossProcessFrameConnector::SetDeviceScaleFactor(float scale_factor) {
243 device_scale_factor_ = scale_factor; 256 device_scale_factor_ = scale_factor;
244 // The RenderWidgetHost is null in unit tests. 257 // The RenderWidgetHost is null in unit tests.
245 if (view_ && view_->GetRenderWidgetHost()) { 258 if (view_ && view_->GetRenderWidgetHost()) {
(...skipping 18 matching lines...) Expand all
264 // in the case of nested WebContents. 277 // in the case of nested WebContents.
265 while (top_host->frame_tree_node()->render_manager()->ForInnerDelegate()) { 278 while (top_host->frame_tree_node()->render_manager()->ForInnerDelegate()) {
266 top_host = top_host->frame_tree_node()->render_manager()-> 279 top_host = top_host->frame_tree_node()->render_manager()->
267 GetOuterDelegateNode()->frame_tree()->root()->current_frame_host(); 280 GetOuterDelegateNode()->frame_tree()->root()->current_frame_host();
268 } 281 }
269 282
270 return static_cast<RenderWidgetHostViewBase*>(top_host->GetView()); 283 return static_cast<RenderWidgetHostViewBase*>(top_host->GetView());
271 } 284 }
272 285
273 } // namespace content 286 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/browser_plugin/browser_plugin_guest.cc ('k') | content/browser/renderer_host/render_widget_host_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698