diff options
author | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-20 01:47:14 +0000 |
---|---|---|
committer | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-20 01:47:14 +0000 |
commit | f1d5de49a4677e2d8b90d8e404e40871443d78db (patch) | |
tree | b1fec11efaa1c134d9fde816b8b1c26d59deaac5 /content/renderer/render_widget.cc | |
parent | f0bc67919a773a2238160a74faeeeefbcb9d71e9 (diff) | |
download | chromium_src-f1d5de49a4677e2d8b90d8e404e40871443d78db.zip chromium_src-f1d5de49a4677e2d8b90d8e404e40871443d78db.tar.gz chromium_src-f1d5de49a4677e2d8b90d8e404e40871443d78db.tar.bz2 |
Notify WebWidget when its compositor surface is ready to use
Before the browser UI thread has a chance to initialize the native window system
surface binding (which is different on each platform) any attempt to initialize
the compositor will fail in a way that appears fatal to WebKit. To avoid hitting
this, we set a bit when we receive an IPC sent by the browser UI thread after
it gets a chance to set up the native windowing stuff - RenderWidget::CompleteInit().
This bit delays RenderWidget-driven frame scheduling, but when WebKit is scheduling
frames (for example with the threaded compositor active) we also have to let
WebKit know so it can start rendering.
BUG=123356
TEST=See bug
TBR=darin
Review URL: http://codereview.chromium.org/10095021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133118 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/render_widget.cc')
-rw-r--r-- | content/renderer/render_widget.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc index c4de4d2..4aa576c 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc @@ -186,6 +186,10 @@ void RenderWidget::CompleteInit(gfx::NativeViewId parent_hwnd) { host_window_ = parent_hwnd; host_window_set_ = true; +#if WEBWIDGET_HAS_SETCOMPOSITORSURFACEREADY + if (webwidget_) + webwidget_->setCompositorSurfaceReady(); +#endif DoDeferredUpdate(); Send(new ViewHostMsg_RenderViewReady(routing_id_)); |