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

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac.mm

Issue 388803003: [Mac] Replace SetOverlayView with AllowOtherViews. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/render_widget_host_view_mac.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index dbd387441210ac256eb003eb4ae88f1f1ec8638a..8229632fee91d404bb51bfb9bef8a34f0c09cc03 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -507,9 +507,9 @@ RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget)
backing_store_scale_factor_(1),
is_loading_(false),
is_paused_for_resize_or_repaint_(false),
+ allow_pause_for_resize_or_repaint_(true),
weak_factory_(this),
fullscreen_parent_host_view_(NULL),
- overlay_view_weak_factory_(this),
software_frame_weak_ptr_factory_(this) {
software_frame_manager_.reset(new SoftwareFrameManager(
software_frame_weak_ptr_factory_.GetWeakPtr()));
@@ -562,6 +562,10 @@ void RenderWidgetHostViewMac::SetAllowOverlappingViews(bool overlapping) {
// TODO(ccameron): Remove callers of this function.
}
+void RenderWidgetHostViewMac::SetAllowPauseForResizeOrRepaint(bool allow) {
+ allow_pause_for_resize_or_repaint_ = allow;
+}
+
///////////////////////////////////////////////////////////////////////////////
// RenderWidgetHostViewMac, RenderWidgetHostView implementation:
@@ -1592,22 +1596,6 @@ void RenderWidgetHostViewMac::DestroyCompositingStateOnError() {
// repeatedly.
}
-void RenderWidgetHostViewMac::SetOverlayView(
- RenderWidgetHostViewMac* overlay, const gfx::Point& offset) {
- if (overlay_view_)
- overlay_view_->underlay_view_.reset();
-
- overlay_view_ = overlay->overlay_view_weak_factory_.GetWeakPtr();
- overlay_view_->underlay_view_ = overlay_view_weak_factory_.GetWeakPtr();
-}
-
-void RenderWidgetHostViewMac::RemoveOverlayView() {
- if (overlay_view_) {
- overlay_view_->underlay_view_.reset();
- overlay_view_.reset();
- }
-}
-
bool RenderWidgetHostViewMac::GetLineBreakIndex(
const std::vector<gfx::Rect>& bounds,
const gfx::Range& range,
@@ -2219,10 +2207,9 @@ void RenderWidgetHostViewMac::PauseForPendingResizeOrRepaintsAndDraw() {
if (!render_widget_host_ || render_widget_host_->is_hidden())
return;
- // Pausing for the overlay/underlay view prevents the other one from receiving
- // frames. This may lead to large delays, causing overlaps.
- // See crbug.com/352020.
- if (underlay_view_ || overlay_view_)
+ // Pausing for one view prevents others from receiving frames.
+ // This may lead to large delays, causing overlaps. See crbug.com/352020.
+ if (!allow_pause_for_resize_or_repaint_)
return;
// Ensure that all frames are acked before waiting for a frame to come in.

Powered by Google App Engine
This is Rietveld 408576698