| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "content/public/test/test_web_contents_factory.h" |
| |
| #include "base/run_loop.h" |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/test/test_renderer_host.h" |
| #include "content/public/test/web_contents_tester.h" |
| |
| namespace content { |
| |
| TestWebContentsFactory::TestWebContentsFactory() |
| : rvh_enabler_(new content::RenderViewHostTestEnabler()) { |
| } |
| |
| TestWebContentsFactory::~TestWebContentsFactory() { |
| // We explicitly clear the vector to force destruction of any created web |
| // contents so that we can properly handle their cleanup (running posted |
| // tasks, etc). |
| web_contents_.clear(); |
| // Let any posted tasks for web contents deletion run. |
| base::RunLoop().RunUntilIdle(); |
| rvh_enabler_.reset(); |
| // Let any posted tasks for RenderProcess/ViewHost deletion run. |
| base::RunLoop().RunUntilIdle(); |
| } |
| |
| WebContents* TestWebContentsFactory::CreateWebContents( |
| BrowserContext* context) { |
| web_contents_.push_back( |
| WebContentsTester::CreateTestWebContents(context, nullptr)); |
| DCHECK(web_contents_.back()); |
| return web_contents_.back(); |
| } |
| |
| } // namespace content |