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

Unified Diff: content/renderer/render_widget.cc

Issue 9225050: Defer render_widget draw until host window is available (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 11 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/renderer/render_widget.cc
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 6527b3b24ecc692ae14d19a6869f707f9737494b..cd6c7df6166184c16cb21fb7fa33b05031a8e7bc 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -175,6 +175,8 @@ void RenderWidget::CompleteInit(gfx::NativeViewId parent_hwnd) {
host_window_ = parent_hwnd;
+ DoDeferredUpdate();
+
Send(new ViewHostMsg_RenderViewReady(routing_id_));
}
@@ -737,6 +739,11 @@ void RenderWidget::DoDeferredUpdate() {
if (!webwidget_)
return;
+
+ if (!host_window_) {
+ TRACE_EVENT0("renderer", "EarlyOut_NoHostWindow");
+ return;
+ }
if (update_reply_pending_) {
TRACE_EVENT0("renderer", "EarlyOut_UpdateReplyPending");
return;
@@ -755,6 +762,9 @@ void RenderWidget::DoDeferredUpdate() {
return;
}
+ if (is_accelerated_compositing_active_)
piman 2012/01/30 18:10:23 is_accelerated_compositing_active_ can change valu
+ using_asynchronous_swapbuffers_ = SupportsAsynchronousSwapBuffers();
+
// Tracking of frame rate jitter
base::TimeTicks frame_begin_ticks = base::TimeTicks::Now();
AnimateIfNeeded();
@@ -1010,10 +1020,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() {
« content/renderer/render_view_impl.cc ('K') | « content/renderer/render_view_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698