| Index: content/public/test/browser_test_utils.cc
|
| diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc
|
| index c7223936ce9481609d2a46a75f5d359812cbbbd1..4193bfba9bc54fbc601a32e68f4a880f968197c1 100644
|
| --- a/content/public/test/browser_test_utils.cc
|
| +++ b/content/public/test/browser_test_utils.cc
|
| @@ -959,4 +959,75 @@ bool WebContentsAddedObserver::RenderViewCreatedCalled() {
|
| return false;
|
| }
|
|
|
| +RenderViewHostDeletedObserver::RenderViewHostDeletedObserver(
|
| + RenderViewHost* rvh)
|
| + : WebContentsObserver(WebContents::FromRenderViewHost(rvh)),
|
| + process_id_(rvh->GetProcess()->GetID()),
|
| + routing_id_(rvh->GetRoutingID()),
|
| + deleted_(false) {
|
| +}
|
| +
|
| +RenderViewHostDeletedObserver::~RenderViewHostDeletedObserver() {
|
| +}
|
| +
|
| +void RenderViewHostDeletedObserver::RenderViewDeleted(
|
| + RenderViewHost* render_view_host) {
|
| + if (render_view_host->GetProcess()->GetID() == process_id_ &&
|
| + render_view_host->GetRoutingID() == routing_id_) {
|
| + deleted_ = true;
|
| +
|
| + if (runner_.get()) {
|
| + runner_->Quit();
|
| + runner_.reset(nullptr);
|
| + }
|
| + }
|
| +}
|
| +
|
| +bool RenderViewHostDeletedObserver::deleted() {
|
| + return deleted_;
|
| +}
|
| +
|
| +void RenderViewHostDeletedObserver::WaitUntilDeleted() {
|
| + if (deleted_)
|
| + return;
|
| +
|
| + runner_.reset(new base::RunLoop());
|
| + runner_->Run();
|
| +}
|
| +
|
| +RenderFrameHostDeletedObserver::RenderFrameHostDeletedObserver(
|
| + RenderFrameHost* rfh)
|
| + : WebContentsObserver(WebContents::FromRenderFrameHost(rfh)),
|
| + process_id_(rfh->GetProcess()->GetID()),
|
| + routing_id_(rfh->GetRoutingID()),
|
| + deleted_(false) {
|
| +}
|
| +
|
| +RenderFrameHostDeletedObserver::~RenderFrameHostDeletedObserver() {
|
| +}
|
| +
|
| +void RenderFrameHostDeletedObserver::RenderFrameDeleted(
|
| + RenderFrameHost* render_frame_host) {
|
| + if (render_frame_host->GetProcess()->GetID() == process_id_ &&
|
| + render_frame_host->GetRoutingID() == routing_id_) {
|
| + deleted_ = true;
|
| +
|
| + if (runner_.get())
|
| + runner_->Quit();
|
| + }
|
| +}
|
| +
|
| +bool RenderFrameHostDeletedObserver::deleted() {
|
| + return deleted_;
|
| +}
|
| +
|
| +void RenderFrameHostDeletedObserver::WaitUntilDeleted() {
|
| + if (deleted_)
|
| + return;
|
| +
|
| + runner_.reset(new base::RunLoop());
|
| + runner_->Run();
|
| + runner_.reset(nullptr);
|
| +}
|
| +
|
| } // namespace content
|
|
|