| Index: cc/trees/proxy_main.cc
|
| diff --git a/cc/trees/proxy_main.cc b/cc/trees/proxy_main.cc
|
| index de79051d4b38e3395e219f1054e431150859bd37..ceb94415b7644988cb785549a71f82e21abb4b21 100644
|
| --- a/cc/trees/proxy_main.cc
|
| +++ b/cc/trees/proxy_main.cc
|
| @@ -265,7 +265,17 @@ void ProxyMain::BeginMainFrame(
|
| base::Unretained(proxy_impl_.get()), &completion,
|
| layer_tree_host_, begin_main_frame_start_time,
|
| hold_commit_for_activation));
|
| - completion.Wait();
|
| + // TODO(sunnyps): Remove this code once crbug.com/668892 is fixed.
|
| + // content/common/content_constants_internal.cc defines hung renderer delay
|
| + // as 30s so choose something less than that but still sufficiently long.
|
| + static constexpr base::TimeDelta kDumpDelay =
|
| + base::TimeDelta::FromSeconds(20);
|
| + if (!completion.TimedWait(kDumpDelay)) {
|
| + ImplThreadTaskRunner()->PostTask(
|
| + FROM_HERE, base::Bind(&ProxyImpl::DumpForBeginMainFrameHang,
|
| + base::Unretained(proxy_impl_.get())));
|
| + completion.Wait();
|
| + }
|
| }
|
|
|
| current_pipeline_stage_ = NO_PIPELINE_STAGE;
|
|
|