#include "chrome/browser/ui/hung_renderer/hung_renderer_core.h"
#include "base/i18n/rtl.h"
#include "base/ranges/algorithm.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/ui/tab_contents/core_tab_helper.h"
#include "chrome/browser/ui/tab_contents/tab_contents_iterator.h"
#include "chrome/grit/generated_resources.h"
#include "components/url_formatter/url_formatter.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/web_contents.h"
#include "ui/base/l10n/l10n_util.h"
#include "url/gurl.h"
namespace {
content::RenderFrameHost* FindFirstRenderFrameHostMatchingProcess(
content::WebContents* web_contents,
content::RenderProcessHost* hung_process) { … }
bool IsWebContentsHung(content::WebContents* web_contents,
content::RenderProcessHost* hung_process) { … }
GURL GetURLOfAnyHungFrame(content::WebContents* web_contents,
content::RenderProcessHost* hung_process) { … }
}
std::vector<content::WebContents*> GetHungWebContentsList(
content::WebContents* hung_web_contents,
content::RenderProcessHost* hung_process) { … }
std::u16string GetHungWebContentsTitle(
content::WebContents* affected_web_contents,
content::RenderProcessHost* hung_process) { … }