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

Change WebUI::SetController() to take a unique_ptr.

Change-Id: Id296f888fc40eb2758c6fc9827024e2871082b37
Reviewed-on: https://chromium-review.googlesource.com/1087398Reviewed-by: default avatarDmitry Gozman <dgozman@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565093}
parent 716b43ff
...@@ -270,7 +270,7 @@ class PrintPreviewHandlerTest : public testing::Test { ...@@ -270,7 +270,7 @@ class PrintPreviewHandlerTest : public testing::Test {
web_ui(), std::move(preview_handler)); web_ui(), std::move(preview_handler));
preview_ui->SetInitiatorTitle( preview_ui->SetInitiatorTitle(
base::ASCIIToUTF16(printing::kDummyInitiatorName)); base::ASCIIToUTF16(printing::kDummyInitiatorName));
web_ui()->SetController(preview_ui.release()); web_ui()->SetController(std::move(preview_ui));
} }
~PrintPreviewHandlerTest() override { ~PrintPreviewHandlerTest() override {
......
...@@ -113,6 +113,7 @@ ...@@ -113,6 +113,7 @@
#include "content/public/browser/storage_partition.h" #include "content/public/browser/storage_partition.h"
#include "content/public/browser/web_contents_binding_set.h" #include "content/public/browser/web_contents_binding_set.h"
#include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_delegate.h"
#include "content/public/browser/web_ui_controller.h"
#include "content/public/common/bindings_policy.h" #include "content/public/common/bindings_policy.h"
#include "content/public/common/browser_side_navigation_policy.h" #include "content/public/common/browser_side_navigation_policy.h"
#include "content/public/common/child_process_host.h" #include "content/public/common/child_process_host.h"
...@@ -6074,12 +6075,12 @@ void WebContentsImpl::OnUserInteraction(const blink::WebInputEvent::Type type) { ...@@ -6074,12 +6075,12 @@ void WebContentsImpl::OnUserInteraction(const blink::WebInputEvent::Type type) {
std::unique_ptr<WebUIImpl> WebContentsImpl::CreateWebUI(const GURL& url) { std::unique_ptr<WebUIImpl> WebContentsImpl::CreateWebUI(const GURL& url) {
std::unique_ptr<WebUIImpl> web_ui = std::make_unique<WebUIImpl>(this); std::unique_ptr<WebUIImpl> web_ui = std::make_unique<WebUIImpl>(this);
WebUIController* controller = std::unique_ptr<WebUIController> controller(
WebUIControllerFactoryRegistry::GetInstance() WebUIControllerFactoryRegistry::GetInstance()
->CreateWebUIControllerForURL(web_ui.get(), url); ->CreateWebUIControllerForURL(web_ui.get(), url));
if (controller) { if (controller) {
web_ui->AddMessageHandler(std::make_unique<GenericHandler>()); web_ui->AddMessageHandler(std::make_unique<GenericHandler>());
web_ui->SetController(controller); web_ui->SetController(std::move(controller));
return web_ui; return web_ui;
} }
......
...@@ -177,8 +177,9 @@ WebUIController* WebUIImpl::GetController() const { ...@@ -177,8 +177,9 @@ WebUIController* WebUIImpl::GetController() const {
return controller_.get(); return controller_.get();
} }
void WebUIImpl::SetController(WebUIController* controller) { void WebUIImpl::SetController(std::unique_ptr<WebUIController> controller) {
controller_.reset(controller); DCHECK(controller);
controller_ = std::move(controller);
} }
bool WebUIImpl::CanCallJavascript() { bool WebUIImpl::CanCallJavascript() {
......
...@@ -45,7 +45,7 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, ...@@ -45,7 +45,7 @@ class CONTENT_EXPORT WebUIImpl : public WebUI,
// WebUI implementation: // WebUI implementation:
WebContents* GetWebContents() const override; WebContents* GetWebContents() const override;
WebUIController* GetController() const override; WebUIController* GetController() const override;
void SetController(WebUIController* controller) override; void SetController(std::unique_ptr<WebUIController> controller) override;
float GetDeviceScaleFactor() const override; float GetDeviceScaleFactor() const override;
const base::string16& GetOverriddenTitle() const override; const base::string16& GetOverriddenTitle() const override;
void OverrideTitle(const base::string16& title) override; void OverrideTitle(const base::string16& title) override;
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#ifndef CONTENT_PUBLIC_BROWSER_WEB_UI_H_ #ifndef CONTENT_PUBLIC_BROWSER_WEB_UI_H_
#define CONTENT_PUBLIC_BROWSER_WEB_UI_H_ #define CONTENT_PUBLIC_BROWSER_WEB_UI_H_
#include <memory>
#include <string>
#include <vector> #include <vector>
#include "base/callback.h" #include "base/callback.h"
...@@ -49,7 +51,7 @@ class CONTENT_EXPORT WebUI { ...@@ -49,7 +51,7 @@ class CONTENT_EXPORT WebUI {
virtual WebContents* GetWebContents() const = 0; virtual WebContents* GetWebContents() const = 0;
virtual WebUIController* GetController() const = 0; virtual WebUIController* GetController() const = 0;
virtual void SetController(WebUIController* controller) = 0; virtual void SetController(std::unique_ptr<WebUIController> controller) = 0;
// Returns the device scale factor of the monitor that the renderer is on. // Returns the device scale factor of the monitor that the renderer is on.
// Whenever possible, WebUI should push resources with this scale factor to // Whenever possible, WebUI should push resources with this scale factor to
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
#include "content/public/test/test_web_ui.h" #include "content/public/test/test_web_ui.h"
#include <utility>
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "content/public/browser/web_ui_controller.h" #include "content/public/browser/web_ui_controller.h"
...@@ -30,8 +32,8 @@ WebUIController* TestWebUI::GetController() const { ...@@ -30,8 +32,8 @@ WebUIController* TestWebUI::GetController() const {
return controller_.get(); return controller_.get();
} }
void TestWebUI::SetController(WebUIController* controller) { void TestWebUI::SetController(std::unique_ptr<WebUIController> controller) {
controller_.reset(controller); controller_ = std::move(controller);
} }
float TestWebUI::GetDeviceScaleFactor() const { float TestWebUI::GetDeviceScaleFactor() const {
......
...@@ -28,7 +28,7 @@ class TestWebUI : public WebUI { ...@@ -28,7 +28,7 @@ class TestWebUI : public WebUI {
// WebUI overrides. // WebUI overrides.
WebContents* GetWebContents() const override; WebContents* GetWebContents() const override;
WebUIController* GetController() const override; WebUIController* GetController() const override;
void SetController(WebUIController* controller) override; void SetController(std::unique_ptr<WebUIController> controller) override;
float GetDeviceScaleFactor() const override; float GetDeviceScaleFactor() const override;
const base::string16& GetOverriddenTitle() const override; const base::string16& GetOverriddenTitle() const override;
void OverrideTitle(const base::string16& title) override {} void OverrideTitle(const base::string16& title) override {}
......
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