Commit 1ea33547 authored by Drew Stonebraker's avatar Drew Stonebraker Committed by Commit Bot

Change BrowserWindow::CreateFindbar() to return unique_ptr

To indicate ownership.

Bug: 983197
Test: Run browser_tests browser_tests
Test: --gtest_filter=*.NoFindBarControllerOnBrowserCreate
Change-Id: I9e028d89348114ac70be7a339b1b1cfb1ffc86d6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1706780
Commit-Queue: Drew Stonebraker <stonebraker@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#678516}
parent 8ee05030
......@@ -649,9 +649,10 @@ ChromeBubbleManager* Browser::GetBubbleManager() {
FindBarController* Browser::GetFindBarController() {
if (!find_bar_controller_.get()) {
FindBar* find_bar = window_->CreateFindBar();
find_bar_controller_.reset(new FindBarController(find_bar, this));
find_bar->SetFindBarController(find_bar_controller_.get());
find_bar_controller_ =
std::make_unique<FindBarController>(window_->CreateFindBar(), this);
find_bar_controller_->find_bar()->SetFindBarController(
find_bar_controller_.get());
find_bar_controller_->ChangeWebContents(
tab_strip_model_->GetActiveWebContents());
find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect());
......
......@@ -420,7 +420,7 @@ class BrowserWindow : public ui::BaseWindow {
virtual void CutCopyPaste(int command_id) = 0;
// Construct a FindBar implementation for the |browser|.
virtual FindBar* CreateFindBar() = 0;
virtual std::unique_ptr<FindBar> CreateFindBar() = 0;
// Return the WebContentsModalDialogHost for use in positioning web contents
// modal dialogs within the browser window. This can sometimes be NULL (for
......
......@@ -93,8 +93,9 @@ class FindBrowserListObserver : public BrowserListObserver {
} // namespace
FindBarController::FindBarController(FindBar* find_bar, Browser* browser)
: find_bar_(find_bar),
FindBarController::FindBarController(std::unique_ptr<FindBar> find_bar,
Browser* browser)
: find_bar_(std::move(find_bar)),
browser_(browser),
find_bar_platform_helper_(FindBarPlatformHelper::Create(this)) {
FindBrowserListObserver::EnsureInstance();
......
......@@ -33,8 +33,7 @@ enum class FindBoxResultAction;
class FindBarController : public content::NotificationObserver,
public FindResultObserver {
public:
// FindBar takes ownership of |find_bar_view|.
FindBarController(FindBar* find_bar, Browser* browser);
FindBarController(std::unique_ptr<FindBar> find_bar, Browser* browser);
~FindBarController() override;
......
......@@ -1743,8 +1743,8 @@ void BrowserView::CutCopyPaste(int command_id) {
#endif // defined(OS_MACOSX)
}
FindBar* BrowserView::CreateFindBar() {
return new FindBarHost(this);
std::unique_ptr<FindBar> BrowserView::CreateFindBar() {
return std::make_unique<FindBarHost>(this);
}
WebContentsModalDialogHost* BrowserView::GetWebContentsModalDialogHost() {
......
......@@ -407,7 +407,7 @@ class BrowserView : public BrowserWindow,
bool HandleKeyboardEvent(
const content::NativeWebKeyboardEvent& event) override;
void CutCopyPaste(int command_id) override;
FindBar* CreateFindBar() override;
std::unique_ptr<FindBar> CreateFindBar() override;
web_modal::WebContentsModalDialogHost* GetWebContentsModalDialogHost()
override;
void ShowAvatarBubbleFromAvatarButton(
......
......@@ -6,6 +6,7 @@
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_list_observer.h"
#include "chrome/browser/ui/find_bar/find_bar.h"
#include "content/public/browser/keyboard_event_processing_result.h"
#include "ui/gfx/geometry/rect.h"
......@@ -228,7 +229,7 @@ DownloadShelf* TestBrowserWindow::GetDownloadShelf() {
return &download_shelf_;
}
FindBar* TestBrowserWindow::CreateFindBar() {
std::unique_ptr<FindBar> TestBrowserWindow::CreateFindBar() {
return NULL;
}
......
......@@ -161,7 +161,7 @@ class TestBrowserWindow : public BrowserWindow {
const base::Callback<void(bool)>& callback) override {}
void UserChangedTheme(BrowserThemeChangeType theme_change_type) override {}
void CutCopyPaste(int command_id) override {}
FindBar* CreateFindBar() override;
std::unique_ptr<FindBar> CreateFindBar() override;
web_modal::WebContentsModalDialogHost* GetWebContentsModalDialogHost()
override;
void ShowAvatarBubbleFromAvatarButton(
......
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