| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index 3cb0fa5b61c5ff17508f50275e43abe3aa958727..fc58534fff9bf1edd296adfeabd408643e1982b0 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -74,6 +74,7 @@ RenderWidget::RenderWidget(WebKit::WebPopupType popup_type)
|
| webwidget_(NULL),
|
| opener_id_(MSG_ROUTING_NONE),
|
| host_window_(0),
|
| + host_window_set_(false),
|
| current_paint_buf_(NULL),
|
| next_paint_flags_(0),
|
| filtered_time_per_frame_(0.0f),
|
| @@ -174,6 +175,9 @@ void RenderWidget::CompleteInit(gfx::NativeViewId parent_hwnd) {
|
| DCHECK(routing_id_ != MSG_ROUTING_NONE);
|
|
|
| host_window_ = parent_hwnd;
|
| + host_window_set_ = true;
|
| +
|
| + DoDeferredUpdate();
|
|
|
| Send(new ViewHostMsg_RenderViewReady(routing_id_));
|
| }
|
| @@ -740,6 +744,11 @@ void RenderWidget::DoDeferredUpdate() {
|
|
|
| if (!webwidget_)
|
| return;
|
| +
|
| + if (!host_window_set_) {
|
| + TRACE_EVENT0("renderer", "EarlyOut_NoHostWindow");
|
| + return;
|
| + }
|
| if (update_reply_pending_) {
|
| TRACE_EVENT0("renderer", "EarlyOut_UpdateReplyPending");
|
| return;
|
| @@ -758,6 +767,9 @@ void RenderWidget::DoDeferredUpdate() {
|
| return;
|
| }
|
|
|
| + if (is_accelerated_compositing_active_)
|
| + using_asynchronous_swapbuffers_ = SupportsAsynchronousSwapBuffers();
|
| +
|
| // Tracking of frame rate jitter
|
| base::TimeTicks frame_begin_ticks = base::TimeTicks::Now();
|
| AnimateIfNeeded();
|
| @@ -1017,10 +1029,6 @@ void RenderWidget::didActivateCompositor(int compositor_identifier) {
|
| is_accelerated_compositing_active_ = true;
|
| Send(new ViewHostMsg_DidActivateAcceleratedCompositing(
|
| routing_id_, is_accelerated_compositing_active_));
|
| -
|
| - // Note: asynchronous swapbuffer support currently only matters if
|
| - // compositing scheduling happens on the RenderWidget.
|
| - using_asynchronous_swapbuffers_ = SupportsAsynchronousSwapBuffers();
|
| }
|
|
|
| void RenderWidget::didDeactivateCompositor() {
|
| @@ -1511,7 +1519,7 @@ bool RenderWidget::CanComposeInline() {
|
|
|
| WebScreenInfo RenderWidget::screenInfo() {
|
| WebScreenInfo results;
|
| - if (host_window_)
|
| + if (host_window_set_)
|
| Send(new ViewHostMsg_GetScreenInfo(routing_id_, host_window_, &results));
|
| else {
|
| DLOG(WARNING) << "Unable to retrieve screen information, no host window";
|
|
|