Index: content/browser/renderer_host/render_widget_host_impl.cc |
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc |
index 1c1eb3b6e9f1ba04f3b1d4bd43c86a8c6e943278..1c9f5a6f1d4f719992764e569e69e0e7c1f83211 100644 |
--- a/content/browser/renderer_host/render_widget_host_impl.cc |
+++ b/content/browser/renderer_host/render_widget_host_impl.cc |
@@ -70,6 +70,10 @@ |
#include "ui/gfx/vector2d_conversions.h" |
#include "ui/snapshot/snapshot.h" |
+#if defined(OS_MACOSX) |
+#include "content/browser/renderer_host/render_widget_resize_helper_mac.h" |
+#endif |
+ |
#if defined(OS_WIN) |
#include "content/common/plugin_constants_win.h" |
#endif |
@@ -89,12 +93,6 @@ namespace { |
bool g_check_for_pending_resize_ack = true; |
-// How long to (synchronously) wait for the renderer to respond with a |
-// PaintRect message, when our backing-store is invalid, before giving up and |
-// returning a null or incorrectly sized backing-store from GetBackingStore. |
-// This timeout impacts the "choppiness" of our window resize perf. |
-const int kPaintMsgTimeoutMS = 50; |
- |
typedef std::pair<int32, int32> RenderWidgetHostID; |
typedef base::hash_map<RenderWidgetHostID, RenderWidgetHostImpl*> |
RoutingIDWidgetMap; |
@@ -476,10 +474,6 @@ bool RenderWidgetHostImpl::OnMessageReceived(const IPC::Message &msg) { |
IPC_MESSAGE_HANDLER(ViewHostMsg_WindowlessPluginDummyWindowDestroyed, |
OnWindowlessPluginDummyWindowDestroyed) |
#endif |
-#if defined(OS_MACOSX) |
- IPC_MESSAGE_HANDLER(ViewHostMsg_CompositorSurfaceBuffersSwapped, |
- OnCompositorSurfaceBuffersSwapped) |
-#endif |
#if defined(OS_MACOSX) || defined(USE_AURA) |
IPC_MESSAGE_HANDLER(InputHostMsg_ImeCompositionRangeChanged, |
OnImeCompositionRangeChanged) |
@@ -710,6 +704,7 @@ void RenderWidgetHostImpl::UnlockBackingStore() { |
} |
#endif |
+#if defined(OS_MACOSX) |
void RenderWidgetHostImpl::PauseForPendingResizeOrRepaints() { |
TRACE_EVENT0("browser", |
"RenderWidgetHostImpl::PauseForPendingResizeOrRepaints"); |
@@ -735,6 +730,11 @@ bool RenderWidgetHostImpl::CanPauseForPendingResizeOrRepaints() { |
void RenderWidgetHostImpl::WaitForSurface() { |
TRACE_EVENT0("browser", "RenderWidgetHostImpl::WaitForSurface"); |
+ // How long to (synchronously) wait for the renderer to respond with a |
+ // new frame when our current frame doesn't exist or is the wrong size. |
+ // This timeout impacts the "choppiness" of our window resize. |
+ const int kPaintMsgTimeoutMS = 50; |
+ |
if (!view_) |
return; |
@@ -792,8 +792,7 @@ void RenderWidgetHostImpl::WaitForSurface() { |
// on a response, block for a little while to see if we can't get a response |
// before returning the old (incorrectly sized) backing store. |
IPC::Message msg; |
- if (process_->WaitForBackingStoreMsg(routing_id_, max_delay, &msg)) { |
- OnMessageReceived(msg); |
+ if (RenderWidgetResizeHelper::Get()->WaitForSingleTaskToRun(max_delay)) { |
// For auto-resized views, current_size_ determines the view_size and it |
// may have changed during the handling of an UpdateRect message. |
@@ -816,6 +815,7 @@ void RenderWidgetHostImpl::WaitForSurface() { |
max_delay = end_time - TimeTicks::Now(); |
} while (max_delay > TimeDelta::FromSeconds(0)); |
} |
+#endif |
bool RenderWidgetHostImpl::ScheduleComposite() { |
if (is_hidden_ || current_size_.IsEmpty() || repaint_ack_pending_ || |
@@ -1413,43 +1413,6 @@ void RenderWidgetHostImpl::OnRequestMove(const gfx::Rect& pos) { |
} |
} |
-#if defined(OS_MACOSX) |
-void RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwapped( |
- const ViewHostMsg_CompositorSurfaceBuffersSwapped_Params& params) { |
- // This trace event is used in |
- // chrome/browser/extensions/api/cast_streaming/performance_test.cc |
- TRACE_EVENT0("renderer_host", |
- "RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwapped"); |
- // This trace event is used in |
- // chrome/browser/extensions/api/cast_streaming/performance_test.cc |
- UNSHIPPED_TRACE_EVENT0("test_fps", |
- TRACE_DISABLED_BY_DEFAULT("OnSwapCompositorFrame")); |
- if (!ui::LatencyInfo::Verify(params.latency_info, |
- "ViewHostMsg_CompositorSurfaceBuffersSwapped")) |
- return; |
- if (!view_) { |
- AcceleratedSurfaceMsg_BufferPresented_Params ack_params; |
- ack_params.sync_point = 0; |
- RenderWidgetHostImpl::AcknowledgeBufferPresent(params.route_id, |
- params.gpu_process_host_id, |
- ack_params); |
- return; |
- } |
- GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params gpu_params; |
- gpu_params.surface_id = params.surface_id; |
- gpu_params.surface_handle = params.surface_handle; |
- gpu_params.route_id = params.route_id; |
- gpu_params.size = params.size; |
- gpu_params.scale_factor = params.scale_factor; |
- gpu_params.latency_info = params.latency_info; |
- for (size_t i = 0; i < gpu_params.latency_info.size(); i++) |
- AddLatencyInfoComponentIds(&gpu_params.latency_info[i]); |
- view_->AcceleratedSurfaceBuffersSwapped(gpu_params, |
- params.gpu_process_host_id); |
- view_->DidReceiveRendererFrame(); |
-} |
-#endif // OS_MACOSX |
- |
bool RenderWidgetHostImpl::OnSwapCompositorFrame( |
const IPC::Message& message) { |
// This trace event is used in |