// 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