Task manager doesn't show OOPIF when loading again after a crash |
||||
Issue descriptionVersion: 55.0.2845.0 OS: Windows 10 What steps will reproduce the problem? (1) Start Chrome with --site-per-process. (2) Visit http://csreis.github.io/tests/cross-site-iframe.html. (3) Click "Go cross-site (simple page)" (4) Kill the subframe process in the Task Manager. (5) Click "Go cross-site (simple page)" again. What is the expected output? A new subframe process should appear in the Task Manager. What do you see instead? No new subframe process appears until you close and reopen the Task Manager. Nick has a theory that this might be because the Task Manager listens to RenderFrameCreated, which could happen before the process has a pid.
,
Jan 5 2017
,
Jan 5 2017
,
Feb 28 2017
Issue 697135 has been merged into this issue.
,
May 3 2017
Right now task_manager::WebContentsEntry listens for RenderFrameHostChanged and RenderFrameDeleted, but doesn't listen for RenderFrameCreated (fired for the recreated processes). Listening for RenderFrameCreated doesn't immediately help, because (as nick@ says in #c1) we don't have a task id at this point (leading to task manager thinking that the new task/entry has pid=0).
,
May 3 2017
I have a draft of a fix at https://codereview.chromium.org/2857263003.
,
May 17 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f2c4f1f94d10b019363f2d8c45defe00881cb5cb commit f2c4f1f94d10b019363f2d8c45defe00881cb5cb Author: lukasza <lukasza@chromium.org> Date: Wed May 17 04:35:50 2017 Task Manager should listen to WebContentsObserver::RenderFrameCreated. Listening to WebContentsObserver::RenderFrameCreated is the only way to realize that a RenderFrameHost got recreated after a render process crash - Task Manager needs to listen to this callback to re-show frames that were re-navigated after a render process crash. A slight problem with this approach is that the PID of the render process is not necessarily known when RenderFrameCreated is called - to work around that Task Manager postpones processing of the new frame via PostTaskWhenProcessIsReady (an instance method added to RenderProcessHost in this CL). BUG= 642958 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2857263003 Cr-Commit-Position: refs/heads/master@{#472325} [modify] https://crrev.com/f2c4f1f94d10b019363f2d8c45defe00881cb5cb/chrome/browser/task_manager/providers/web_contents/web_contents_task_provider.cc [modify] https://crrev.com/f2c4f1f94d10b019363f2d8c45defe00881cb5cb/chrome/browser/task_manager/task_manager_browsertest.cc [modify] https://crrev.com/f2c4f1f94d10b019363f2d8c45defe00881cb5cb/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/f2c4f1f94d10b019363f2d8c45defe00881cb5cb/content/browser/frame_host/render_frame_host_impl.h [modify] https://crrev.com/f2c4f1f94d10b019363f2d8c45defe00881cb5cb/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/f2c4f1f94d10b019363f2d8c45defe00881cb5cb/content/browser/renderer_host/render_view_host_impl.cc [modify] https://crrev.com/f2c4f1f94d10b019363f2d8c45defe00881cb5cb/content/browser/renderer_host/render_view_host_impl.h [modify] https://crrev.com/f2c4f1f94d10b019363f2d8c45defe00881cb5cb/content/public/browser/render_frame_host.h [modify] https://crrev.com/f2c4f1f94d10b019363f2d8c45defe00881cb5cb/content/public/browser/render_process_host.h
,
May 22 2017
I've tested the repro steps - on 60.0.3104.0 (branch_base_position=473014, so it includes the fix from #c7) - with chrome://flags/#enable-site-per-process and the issue seems to be fixed. |
||||
►
Sign in to add a comment |
||||
Comment 1 by nick@chromium.org
, Aug 31 2016