Commit ef337163 authored by Lei Zhang's avatar Lei Zhang Committed by Commit Bot

Make WebUIProvider::NewWebUI() return a unique_ptr.

Fix overrides and remove a bunch of calls to new.

Change-Id: Icac6516cae60dfcde967540022262088dc230f74
Reviewed-on: https://chromium-review.googlesource.com/1188040Reviewed-by: default avatarTommy Li <tommycli@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585921}
parent 617db975
......@@ -300,7 +300,7 @@ DevToolsWindowBeforeUnloadObserver::DevToolsWindowBeforeUnloadObserver(
void DevToolsWindowBeforeUnloadObserver::Wait() {
if (m_fired)
return;
message_loop_runner_ = new content::MessageLoopRunner;
message_loop_runner_ = base::MakeRefCounted<content::MessageLoopRunner>();
message_loop_runner_->Run();
}
......@@ -339,8 +339,7 @@ class DevToolsBeforeUnloadTest: public DevToolsSanityTest {
base::Callback<void(void)> close_method,
bool wait_for_browser_close = true) {
OpenDevToolsWindow(kDebuggerTestPage, is_docked);
scoped_refptr<content::MessageLoopRunner> runner =
new content::MessageLoopRunner;
auto runner = base::MakeRefCounted<content::MessageLoopRunner>();
DevToolsWindowTesting::Get(window_)->
SetCloseCallback(runner->QuitClosure());
InjectBeforeUnloadListener(main_web_contents());
......@@ -728,8 +727,7 @@ IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest,
DevToolsWindow* devtools_window = OpenDevToolWindowOnWebContents(
GetInspectedTab(), false);
scoped_refptr<content::MessageLoopRunner> runner =
new content::MessageLoopRunner;
auto runner = base::MakeRefCounted<content::MessageLoopRunner>();
DevToolsWindowTesting::Get(devtools_window)->SetCloseCallback(
runner->QuitClosure());
......@@ -762,19 +760,19 @@ IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest,
LoadTestPage(kDebuggerTestPage);
std::vector<DevToolsWindow*> windows;
std::vector<content::WindowedNotificationObserver*> close_observers;
std::vector<std::unique_ptr<content::WindowedNotificationObserver>>
close_observers;
content::WebContents* inspected_web_contents = GetInspectedTab();
for (int i = 0; i < 3; ++i) {
DevToolsWindow* devtools_window = OpenDevToolWindowOnWebContents(
inspected_web_contents, i == 0);
windows.push_back(devtools_window);
content::WindowedNotificationObserver* close_observer =
new content::WindowedNotificationObserver(
content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
content::Source<content::WebContents>(
DevToolsWindowTesting::Get(devtools_window)->
main_web_contents()));
close_observers.push_back(close_observer);
close_observers.push_back(
std::make_unique<content::WindowedNotificationObserver>(
content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
content::Source<content::WebContents>(
DevToolsWindowTesting::Get(devtools_window)
->main_web_contents())));
inspected_web_contents =
DevToolsWindowTesting::Get(devtools_window)->main_web_contents();
}
......@@ -812,10 +810,8 @@ IN_PROC_BROWSER_TEST_F(DevToolsBeforeUnloadTest,
AcceptModalDialog();
close_observer.Wait();
}
for (size_t i = 0; i < close_observers.size(); ++i) {
close_observers[i]->Wait();
delete close_observers[i];
}
for (auto& close_observer : close_observers)
close_observer->Wait();
}
// Tests scripts panel showing.
......@@ -1362,8 +1358,7 @@ IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest,
DevToolsExtensionSecurityPolicyGrants) {
ASSERT_TRUE(embedded_test_server()->Start());
std::unique_ptr<extensions::TestExtensionDir> dir(
new extensions::TestExtensionDir());
auto dir = std::make_unique<extensions::TestExtensionDir>();
extensions::DictionaryBuilder manifest;
dir->WriteManifest(extensions::DictionaryBuilder()
......@@ -1752,7 +1747,7 @@ class DevToolsAutoOpenerTest : public DevToolsSanityTest {
public:
void SetUpCommandLine(base::CommandLine* command_line) override {
command_line->AppendSwitch(switches::kAutoOpenDevToolsForTabs);
observer_.reset(new DevToolsWindowCreationObserver());
observer_ = std::make_unique<DevToolsWindowCreationObserver>();
}
protected:
std::unique_ptr<DevToolsWindowCreationObserver> observer_;
......@@ -2097,12 +2092,13 @@ class MockWebUIProvider
public:
MockWebUIProvider(const std::string& source, const std::string& content)
: source_(source), content_(content) {}
~MockWebUIProvider() override = default;
content::WebUIController* NewWebUI(content::WebUI* web_ui,
const GURL& url) override {
std::unique_ptr<content::WebUIController> NewWebUI(content::WebUI* web_ui,
const GURL& url) override {
content::URLDataSource::Add(Profile::FromWebUI(web_ui),
new StaticURLDataSource(source_, content_));
return new content::WebUIController(web_ui);
return std::make_unique<content::WebUIController>(web_ui);
}
private:
......
......@@ -182,10 +182,9 @@ class TestingPeopleHandler : public PeopleHandler {
class TestWebUIProvider
: public TestChromeWebUIControllerFactory::WebUIProvider {
public:
content::WebUIController* NewWebUI(content::WebUI* web_ui,
const GURL& url) override {
content::WebUIController* controller = new content::WebUIController(web_ui);
return controller;
std::unique_ptr<content::WebUIController> NewWebUI(content::WebUI* web_ui,
const GURL& url) override {
return std::make_unique<content::WebUIController>(web_ui);
}
};
......
......@@ -112,7 +112,7 @@ ContentInfo NavigateAndGetInfo(
// Returns a new WebUI object for the WebContents from |arg0|.
ACTION(ReturnNewWebUI) {
return new content::WebUIController(arg0);
return std::make_unique<content::WebUIController>(arg0);
}
GURL GetSigninPromoURL() {
......@@ -126,8 +126,9 @@ GURL GetSigninPromoURL() {
class FooWebUIProvider
: public TestChromeWebUIControllerFactory::WebUIProvider {
public:
MOCK_METHOD2(NewWebUI, content::WebUIController*(content::WebUI* web_ui,
const GURL& url));
MOCK_METHOD2(NewWebUI,
std::unique_ptr<content::WebUIController>(content::WebUI* web_ui,
const GURL& url));
};
const char kFooWebUIURL[] = "chrome://foo/";
......@@ -140,8 +141,7 @@ bool AddToSet(std::set<content::WebContents*>* set,
std::unique_ptr<net::test_server::HttpResponse> EmptyHtmlResponseHandler(
const net::test_server::HttpRequest& request) {
std::unique_ptr<net::test_server::BasicHttpResponse> http_response(
new net::test_server::BasicHttpResponse());
auto http_response = std::make_unique<net::test_server::BasicHttpResponse>();
http_response->set_code(net::HTTP_OK);
http_response->set_content_type("text/html");
http_response->set_content(
......@@ -882,7 +882,7 @@ class InlineLoginUISafeIframeBrowserTest : public InProcessBrowserTest {
content::WebUIControllerFactory::UnregisterFactoryForTesting(
ChromeWebUIControllerFactory::GetInstance());
test_factory_.reset(new TestChromeWebUIControllerFactory);
test_factory_ = std::make_unique<TestChromeWebUIControllerFactory>();
content::WebUIControllerFactory::RegisterFactory(test_factory_.get());
test_factory_->AddFactoryOverride(
GURL(kFooWebUIURL).host(), &foo_provider_);
......
......@@ -4,7 +4,6 @@
#include "chrome/test/base/test_chrome_web_ui_controller_factory.h"
#include "base/memory/ptr_util.h"
#include "chrome/browser/profiles/profile.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui_controller.h"
......@@ -48,7 +47,7 @@ TestChromeWebUIControllerFactory::CreateWebUIControllerForURL(
const GURL& url) const {
Profile* profile = Profile::FromWebUI(web_ui);
WebUIProvider* provider = GetWebUIProvider(profile, url);
return provider ? base::WrapUnique(provider->NewWebUI(web_ui, url))
return provider ? provider->NewWebUI(web_ui, url)
: ChromeWebUIControllerFactory::CreateWebUIControllerForURL(
web_ui, url);
}
......
......@@ -5,8 +5,8 @@
#ifndef CHROME_TEST_BASE_TEST_CHROME_WEB_UI_CONTROLLER_FACTORY_H_
#define CHROME_TEST_BASE_TEST_CHROME_WEB_UI_CONTROLLER_FACTORY_H_
#include <functional>
#include <map>
#include <memory>
#include <string>
#include "base/macros.h"
......@@ -23,14 +23,15 @@ class TestChromeWebUIControllerFactory : public ChromeWebUIControllerFactory {
public:
// Create and return a new WebUI object for the |web_contents| based on the
// |url|.
virtual content::WebUIController* NewWebUI(content::WebUI* web_ui,
const GURL& url) = 0;
virtual std::unique_ptr<content::WebUIController> NewWebUI(
content::WebUI* web_ui,
const GURL& url) = 0;
protected:
virtual ~WebUIProvider();
};
typedef std::map<std::string, WebUIProvider*> FactoryOverridesMap;
using FactoryOverridesMap = std::map<std::string, WebUIProvider*>;
TestChromeWebUIControllerFactory();
~TestChromeWebUIControllerFactory() override;
......
......@@ -21,7 +21,7 @@ namespace {
// Returns a new WebUI object for the WebContents from |arg0|.
ACTION(ReturnNewWebUI) {
return new WebUIController(arg0);
return std::make_unique<WebUIController>(arg0);
}
// Mock the TestChromeWebUIControllerFactory::WebUIProvider to prove that we are
......@@ -29,8 +29,9 @@ ACTION(ReturnNewWebUI) {
class MockWebUIProvider
: public TestChromeWebUIControllerFactory::WebUIProvider {
public:
MOCK_METHOD2(NewWebUI, WebUIController*(content::WebUI* web_ui,
const GURL& url));
MOCK_METHOD2(NewWebUI,
std::unique_ptr<WebUIController>(content::WebUI* web_ui,
const GURL& url));
};
// Dummy URL location for us to override.
......@@ -46,7 +47,7 @@ class TestChromeWebUIControllerFactoryTest : public InProcessBrowserTest {
void SetUpOnMainThread() override {
content::WebUIControllerFactory::UnregisterFactoryForTesting(
ChromeWebUIControllerFactory::GetInstance());
test_factory_.reset(new TestChromeWebUIControllerFactory);
test_factory_ = std::make_unique<TestChromeWebUIControllerFactory>();
content::WebUIControllerFactory::RegisterFactory(test_factory_.get());
test_factory_->AddFactoryOverride(
GURL(kChromeTestChromeWebUIControllerFactory).host(), &mock_provider_);
......
......@@ -242,7 +242,8 @@ class PrintContentBrowserClient : public ChromeContentBrowserClient {
preload_test_fixture_(preload_test_fixture),
preload_test_name_(preload_test_name),
preview_dialog_(nullptr),
message_loop_runner_(new content::MessageLoopRunner) {}
message_loop_runner_(
base::MakeRefCounted<content::MessageLoopRunner>()) {}
void Wait() {
message_loop_runner_->Run();
......@@ -254,10 +255,9 @@ class PrintContentBrowserClient : public ChromeContentBrowserClient {
content::WebContentsViewDelegate* GetWebContentsViewDelegate(
content::WebContents* web_contents) override {
preview_dialog_ = web_contents;
observer_.reset(new WebUIJsInjectionReadyObserver(preview_dialog_,
browser_test_,
preload_test_fixture_,
preload_test_name_));
observer_ = std::make_unique<WebUIJsInjectionReadyObserver>(
preview_dialog_, browser_test_, preload_test_fixture_,
preload_test_name_);
message_loop_runner_->Quit();
return nullptr;
}
......@@ -300,7 +300,7 @@ void WebUIBrowserTest::BrowsePrintPreload(const GURL& browse_to) {
const char WebUIBrowserTest::kDummyURL[] = "chrome://DummyURL";
WebUIBrowserTest::WebUIBrowserTest()
: test_handler_(new WebUITestHandler()),
: test_handler_(std::make_unique<WebUITestHandler>()),
libraries_preloaded_(false),
override_selected_web_ui_(nullptr) {}
......@@ -358,14 +358,15 @@ class MockWebUIDataSource : public content::URLDataSource {
class MockWebUIProvider
: public TestChromeWebUIControllerFactory::WebUIProvider {
public:
MockWebUIProvider() {}
MockWebUIProvider() = default;
~MockWebUIProvider() override = default;
// Returns a new WebUI
WebUIController* NewWebUI(content::WebUI* web_ui, const GURL& url) override {
WebUIController* controller = new content::WebUIController(web_ui);
std::unique_ptr<WebUIController> NewWebUI(content::WebUI* web_ui,
const GURL& url) override {
Profile* profile = Profile::FromWebUI(web_ui);
content::URLDataSource::Add(profile, new MockWebUIDataSource());
return controller;
return std::make_unique<content::WebUIController>(web_ui);
}
private:
......@@ -395,7 +396,7 @@ void WebUIBrowserTest::SetUpOnMainThread() {
content::WebUIControllerFactory::UnregisterFactoryForTesting(
ChromeWebUIControllerFactory::GetInstance());
test_factory_.reset(new TestChromeWebUIControllerFactory);
test_factory_ = std::make_unique<TestChromeWebUIControllerFactory>();
content::WebUIControllerFactory::RegisterFactory(test_factory_.get());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment