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 9a19c54bd0238698b8a38370e6015b4d7d577fd0..98593a5f950114b0568a31d654bb3a05a274fcf5 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm |
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm |
@@ -395,10 +395,10 @@ namespace content { |
// DelegatedFrameHost, public: |
ui::Compositor* RenderWidgetHostViewMac::GetCompositor() const { |
- // When |browser_compositor_view_| is suspended or destroyed, the connection |
+ // When |browser_compositor_| is suspended or destroyed, the connection |
// between its ui::Compositor and |delegated_frame_host_| has been severed. |
if (browser_compositor_state_ == BrowserCompositorActive) |
- return browser_compositor_view_->GetCompositor(); |
+ return browser_compositor_->compositor(); |
return NULL; |
} |
@@ -440,9 +440,13 @@ DelegatedFrameHost* RenderWidgetHostViewMac::GetDelegatedFrameHost() const { |
} |
//////////////////////////////////////////////////////////////////////////////// |
-// BrowserCompositorViewMacClient, public: |
+// AcceleratedWidgetMacNSView, public: |
-bool RenderWidgetHostViewMac::BrowserCompositorViewShouldAckImmediately() |
+NSView* RenderWidgetHostViewMac::AcceleratedWidgetGetNSView() const { |
+ return cocoa_view_; |
+} |
+ |
+bool RenderWidgetHostViewMac::AcceleratedWidgetShouldIgnoreBackpressure() |
const { |
// If vsync is disabled, then always draw and ack frames immediately. |
static bool is_vsync_disabled = |
@@ -484,7 +488,7 @@ bool RenderWidgetHostViewMac::BrowserCompositorViewShouldAckImmediately() |
return false; |
} |
-void RenderWidgetHostViewMac::BrowserCompositorViewFrameSwapped( |
+void RenderWidgetHostViewMac::AcceleratedWidgetSwapCompleted( |
const std::vector<ui::LatencyInfo>& all_latency_info) { |
if (!render_widget_host_) |
return; |
@@ -495,6 +499,11 @@ void RenderWidgetHostViewMac::BrowserCompositorViewFrameSwapped( |
} |
} |
+void RenderWidgetHostViewMac::AcceleratedWidgetHitError() { |
+ // Request a new frame be drawn. |
+ browser_compositor_->compositor()->ScheduleFullRedraw(); |
+} |
+ |
/////////////////////////////////////////////////////////////////////////////// |
// RenderWidgetHostViewBase, public: |
@@ -513,8 +522,8 @@ RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget, |
text_input_type_(ui::TEXT_INPUT_TYPE_NONE), |
can_compose_inline_(true), |
browser_compositor_state_(BrowserCompositorDestroyed), |
- browser_compositor_view_placeholder_( |
- new BrowserCompositorViewPlaceholderMac), |
+ browser_compositor_placeholder_( |
+ new BrowserCompositorMacPlaceholder), |
tapted
2014/11/20 05:38:54
nit: pull up?
ccameron
2014/11/20 21:33:51
Done.
|
is_loading_(false), |
allow_pause_for_resize_or_repaint_(true), |
is_guest_view_hack_(is_guest_view_hack), |
@@ -588,8 +597,11 @@ void RenderWidgetHostViewMac::EnsureBrowserCompositorView() { |
// Create the view, to transition from Destroyed -> Suspended. |
if (browser_compositor_state_ == BrowserCompositorDestroyed) { |
- browser_compositor_view_.reset( |
- new BrowserCompositorViewMac(this, cocoa_view_, root_layer_.get())); |
+ BrowserCompositorMac::AcquireCompositor(&browser_compositor_); |
+ browser_compositor_->compositor()->SetRootLayer( |
+ root_layer_.get()); |
+ browser_compositor_->accelerated_widget_mac()->SetClient(this); |
+ browser_compositor_->compositor()->SetVisible(true); |
browser_compositor_state_ = BrowserCompositorSuspended; |
} |
@@ -624,7 +636,11 @@ void RenderWidgetHostViewMac::DestroyBrowserCompositorView() { |
// Destroy the BrowserCompositorView to transition Suspended -> Destroyed. |
if (browser_compositor_state_ == BrowserCompositorSuspended) { |
- browser_compositor_view_.reset(); |
+ browser_compositor_->accelerated_widget_mac()->ResetClient(); |
+ browser_compositor_->compositor()->SetVisible(false); |
+ browser_compositor_->compositor()->SetScaleAndSize(1.0, gfx::Size(0, 0)); |
+ browser_compositor_->compositor()->SetRootLayer(NULL); |
+ BrowserCompositorMac::ReleaseCompositor(&browser_compositor_); |
browser_compositor_state_ = BrowserCompositorDestroyed; |
} |
} |
@@ -1400,8 +1416,10 @@ bool RenderWidgetHostViewMac::GetCachedFirstRectForCharacterRange( |
bool RenderWidgetHostViewMac::HasAcceleratedSurface( |
const gfx::Size& desired_size) { |
- if (browser_compositor_view_) |
- return browser_compositor_view_->HasFrameOfSize(desired_size); |
+ if (browser_compositor_) { |
+ return browser_compositor_->accelerated_widget_mac()->HasFrameOfSize( |
+ desired_size); |
+ } |
return false; |
} |
@@ -1423,7 +1441,7 @@ void RenderWidgetHostViewMac::OnSwapCompositorFrame( |
root_layer_->SetBounds(gfx::Rect(dip_size)); |
if (!render_widget_host_->is_hidden()) { |
EnsureBrowserCompositorView(); |
- browser_compositor_view_->GetCompositor()->SetScaleAndSize( |
+ browser_compositor_->compositor()->SetScaleAndSize( |
scale_factor, pixel_size); |
} |
@@ -1520,7 +1538,7 @@ void RenderWidgetHostViewMac::ShutdownBrowserCompositor() { |
DestroyBrowserCompositorView(); |
delegated_frame_host_.reset(); |
root_layer_.reset(); |
- browser_compositor_view_placeholder_.reset(); |
+ browser_compositor_placeholder_.reset(); |
} |
void RenderWidgetHostViewMac::SetActive(bool active) { |
@@ -1646,11 +1664,11 @@ void RenderWidgetHostViewMac::PauseForPendingResizeOrRepaintsAndDraw() { |
return; |
// Wait for a frame of the right size to come in. |
- if (browser_compositor_view_) |
- browser_compositor_view_->BeginPumpingFrames(); |
+ if (browser_compositor_) |
+ browser_compositor_->accelerated_widget_mac()->BeginPumpingFrames(); |
render_widget_host_->PauseForPendingResizeOrRepaints(); |
- if (browser_compositor_view_) |
- browser_compositor_view_->EndPumpingFrames(); |
+ if (browser_compositor_) |
+ browser_compositor_->accelerated_widget_mac()->EndPumpingFrames(); |
} |
SkColorType RenderWidgetHostViewMac::PreferredReadbackFormat() { |