Commit 956631d4 authored by Karan Bhatia's avatar Karan Bhatia Committed by Commit Bot

Media Router: Delete MediaRouterActionPlatformDelegate.

r591131 unified code to close the overflow menu from the ui/layer, deleting
MediaRouterActionPlatformDelegate::CloseOverflowMenuIfOpen, removing the need
for a delegate. This CL removes the delegate interface and its implementations.
It should have no behavior change.

BUG=None

Change-Id: I54bba038673c6fbba2b84aa17ad63f4c9ed7e229
Reviewed-on: https://chromium-review.googlesource.com/1229776Reviewed-by: default avatarElly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: default avatarDerek Cheng <imcheng@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592945}
parent 0c4f6f33
......@@ -386,8 +386,6 @@ jumbo_split_static_library("ui") {
"cocoa/toolbar/app_toolbar_button_cell.mm",
"cocoa/toolbar/back_forward_menu_controller.h",
"cocoa/toolbar/back_forward_menu_controller.mm",
"cocoa/toolbar/media_router_action_platform_delegate_cocoa.h",
"cocoa/toolbar/media_router_action_platform_delegate_cocoa.mm",
"cocoa/toolbar/reload_button_cocoa.h",
"cocoa/toolbar/reload_button_cocoa.mm",
"cocoa/toolbar/toolbar_button_cocoa.h",
......@@ -1406,7 +1404,6 @@ jumbo_split_static_library("ui") {
"toolbar/media_router_action.h",
"toolbar/media_router_action_controller.cc",
"toolbar/media_router_action_controller.h",
"toolbar/media_router_action_platform_delegate.h",
"toolbar/media_router_contextual_menu.cc",
"toolbar/media_router_contextual_menu.h",
"toolbar/recent_tabs_sub_menu_model.cc",
......@@ -3127,8 +3124,6 @@ jumbo_split_static_library("ui") {
"views/toolbar/extension_toolbar_menu_view.h",
"views/toolbar/home_button.cc",
"views/toolbar/home_button.h",
"views/toolbar/media_router_action_platform_delegate_views.cc",
"views/toolbar/media_router_action_platform_delegate_views.h",
"views/toolbar/reload_button.cc",
"views/toolbar/reload_button.h",
"views/toolbar/toolbar_action_view.cc",
......
// 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.
#ifndef CHROME_BROWSER_UI_COCOA_TOOLBAR_MEDIA_ROUTER_ACTION_PLATFORM_DELEGATE_COCOA_H_
#define CHROME_BROWSER_UI_COCOA_TOOLBAR_MEDIA_ROUTER_ACTION_PLATFORM_DELEGATE_COCOA_H_
#include "base/macros.h"
#include "chrome/browser/ui/toolbar/media_router_action_platform_delegate.h"
// The Cocoa platform delegate for the Media Router component action.
class MediaRouterActionPlatformDelegateCocoa :
public MediaRouterActionPlatformDelegate {
public:
explicit MediaRouterActionPlatformDelegateCocoa(Browser* browser);
~MediaRouterActionPlatformDelegateCocoa() override;
private:
// The corresponding browser.
Browser* browser_;
DISALLOW_COPY_AND_ASSIGN(MediaRouterActionPlatformDelegateCocoa);
};
#endif // CHROME_BROWSER_UI_COCOA_TOOLBAR_MEDIA_ROUTER_ACTION_PLATFORM_DELEGATE_COCOA_H_
// 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 "chrome/browser/ui/cocoa/toolbar/media_router_action_platform_delegate_cocoa.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "ui/base/ui_features.h"
// static
std::unique_ptr<MediaRouterActionPlatformDelegate>
MediaRouterActionPlatformDelegate::CreateCocoa(Browser* browser) {
return base::WrapUnique(new MediaRouterActionPlatformDelegateCocoa(browser));
}
#if !BUILDFLAG(MAC_VIEWS_BROWSER)
std::unique_ptr<MediaRouterActionPlatformDelegate>
MediaRouterActionPlatformDelegate::Create(Browser* browser) {
return CreateCocoa(browser);
}
#endif
MediaRouterActionPlatformDelegateCocoa::MediaRouterActionPlatformDelegateCocoa(
Browser* browser)
: MediaRouterActionPlatformDelegate(),
browser_(browser) {
DCHECK(browser_);
}
MediaRouterActionPlatformDelegateCocoa::
~MediaRouterActionPlatformDelegateCocoa() {
}
......@@ -19,7 +19,6 @@
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/toolbar/component_toolbar_actions_factory.h"
#include "chrome/browser/ui/toolbar/media_router_action_controller.h"
#include "chrome/browser/ui/toolbar/media_router_action_platform_delegate.h"
#include "chrome/browser/ui/toolbar/toolbar_action_view_delegate.h"
#include "chrome/common/media_router/issue.h"
#include "chrome/common/media_router/media_route.h"
......@@ -54,9 +53,9 @@ MediaRouterAction::MediaRouterAction(Browser* browser,
delegate_(nullptr),
browser_(browser),
toolbar_actions_bar_(toolbar_actions_bar),
platform_delegate_(MediaRouterActionPlatformDelegate::Create(browser)),
tab_strip_model_observer_(this),
toolbar_actions_bar_observer_(this),
skip_close_overflow_menu_for_testing_(false),
weak_ptr_factory_(this) {
DCHECK(browser_);
DCHECK(toolbar_actions_bar_);
......@@ -181,7 +180,7 @@ bool MediaRouterAction::ExecuteAction(bool by_user) {
}
GetMediaRouterDialogController()->ShowMediaRouterDialog();
if (GetPlatformDelegate()) {
if (!skip_close_overflow_menu_for_testing_) {
// TODO(karandeepb): Instead of checking the return value of
// CloseOverflowMenuIfOpen, just check
// ToolbarActionsBar::IsActionVisibleOnMainBar.
......@@ -286,10 +285,6 @@ MediaRouterAction::GetMediaRouterDialogController() {
web_contents);
}
MediaRouterActionPlatformDelegate* MediaRouterAction::GetPlatformDelegate() {
return platform_delegate_.get();
}
void MediaRouterAction::MaybeUpdateIcon() {
const gfx::VectorIcon& new_icon = GetCurrentIcon();
......
......@@ -20,7 +20,6 @@
#include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h"
class Browser;
class MediaRouterActionPlatformDelegate;
class TabStripModel;
namespace gfx {
......@@ -86,6 +85,10 @@ class MediaRouterAction : public ToolbarActionViewController,
void OnDialogHidden();
void OnDialogShown();
void set_skip_close_overflow_menu_for_testing(bool val) {
skip_close_overflow_menu_for_testing_ = val;
}
private:
// Registers |this| with the MediaRouterDialogControllerImplBase associated
// with |delegate_|'s current WebContents if |this| is not shown in overflow
......@@ -105,9 +108,6 @@ class MediaRouterAction : public ToolbarActionViewController,
virtual media_router::MediaRouterDialogControllerImplBase*
GetMediaRouterDialogController();
// Overridden by tests.
virtual MediaRouterActionPlatformDelegate* GetPlatformDelegate();
// Checks if the current icon of MediaRouterAction has changed. If so,
// updates |current_icon_|.
void MaybeUpdateIcon();
......@@ -136,9 +136,6 @@ class MediaRouterAction : public ToolbarActionViewController,
Browser* const browser_;
ToolbarActionsBar* const toolbar_actions_bar_;
// The delegate to handle platform-specific implementations.
std::unique_ptr<MediaRouterActionPlatformDelegate> platform_delegate_;
std::unique_ptr<MediaRouterContextualMenu> contextual_menu_;
ScopedObserver<TabStripModel, TabStripModelObserver>
......@@ -146,6 +143,8 @@ class MediaRouterAction : public ToolbarActionViewController,
ScopedObserver<ToolbarActionsBar, ToolbarActionsBarObserver>
toolbar_actions_bar_observer_;
bool skip_close_overflow_menu_for_testing_;
base::WeakPtrFactory<MediaRouterAction> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(MediaRouterAction);
......
// 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.
#ifndef CHROME_BROWSER_UI_TOOLBAR_MEDIA_ROUTER_ACTION_PLATFORM_DELEGATE_H_
#define CHROME_BROWSER_UI_TOOLBAR_MEDIA_ROUTER_ACTION_PLATFORM_DELEGATE_H_
#include <memory>
#include "build/build_config.h"
class Browser;
// TODO(karandeepb): Delete this class.
class MediaRouterActionPlatformDelegate {
public:
MediaRouterActionPlatformDelegate() {}
virtual ~MediaRouterActionPlatformDelegate() {}
// Returns a created MediaRouterActionPlatformDelegate. This is defined in the
// platform-specific implementation for the class.
static std::unique_ptr<MediaRouterActionPlatformDelegate> Create(
Browser* browser);
#if defined(OS_MACOSX)
// Temporary shim for Polychrome. See bottom of first comment in
// https://crbug.com/80495 for details.
static std::unique_ptr<MediaRouterActionPlatformDelegate> CreateCocoa(
Browser* browser);
#endif
};
#endif // CHROME_BROWSER_UI_TOOLBAR_MEDIA_ROUTER_ACTION_PLATFORM_DELEGATE_H_
......@@ -50,9 +50,7 @@ class TestMediaRouterAction : public MediaRouterAction {
public:
TestMediaRouterAction(Browser* browser,
ToolbarActionsBar* toolbar_actions_bar)
: MediaRouterAction(browser, toolbar_actions_bar),
controller_(nullptr),
platform_delegate_(nullptr) {}
: MediaRouterAction(browser, toolbar_actions_bar), controller_(nullptr) {}
~TestMediaRouterAction() override {}
// MediaRouterAction:
......@@ -79,12 +77,8 @@ class TestMediaRouterAction : public MediaRouterAction {
override {
return controller_;
}
MediaRouterActionPlatformDelegate* GetPlatformDelegate() override {
return platform_delegate_;
}
MediaRouterDialogControllerWebUIImpl* controller_;
MediaRouterActionPlatformDelegate* platform_delegate_;
};
class MediaRouterActionUnitTest : public MediaRouterWebUITest {
......@@ -330,6 +324,9 @@ TEST_F(MediaRouterActionUnitTest, IconPressedState) {
.WillOnce(testing::Return(initiator));
action()->SetDelegate(mock_delegate.get());
// Skip closing the overflow menu in tests.
action()->set_skip_close_overflow_menu_for_testing(true);
EXPECT_CALL(*mock_delegate, OnPopupShown(true)).Times(1);
action()->ExecuteAction(true);
EXPECT_TRUE(dialog_controller->IsShowingMediaRouterDialog());
......
// 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 "chrome/browser/ui/views/toolbar/media_router_action_platform_delegate_views.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "build/build_config.h"
#include "chrome/browser/ui/views_mode_controller.h"
// static
std::unique_ptr<MediaRouterActionPlatformDelegate>
MediaRouterActionPlatformDelegate::Create(Browser* browser) {
#if defined(OS_MACOSX)
if (views_mode_controller::IsViewsBrowserCocoa())
return CreateCocoa(browser);
#endif
return base::WrapUnique(new MediaRouterActionPlatformDelegateViews(browser));
}
MediaRouterActionPlatformDelegateViews::MediaRouterActionPlatformDelegateViews(
Browser* browser)
: MediaRouterActionPlatformDelegate(),
browser_(browser) {
DCHECK(browser_);
}
MediaRouterActionPlatformDelegateViews::
~MediaRouterActionPlatformDelegateViews() {
}
// 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.
#ifndef CHROME_BROWSER_UI_VIEWS_TOOLBAR_MEDIA_ROUTER_ACTION_PLATFORM_DELEGATE_VIEWS_H_
#define CHROME_BROWSER_UI_VIEWS_TOOLBAR_MEDIA_ROUTER_ACTION_PLATFORM_DELEGATE_VIEWS_H_
#include "base/macros.h"
#include "chrome/browser/ui/toolbar/media_router_action_platform_delegate.h"
// The Views platform delegate for the Media Router component action.
class MediaRouterActionPlatformDelegateViews :
public MediaRouterActionPlatformDelegate {
public:
explicit MediaRouterActionPlatformDelegateViews(Browser* browser);
~MediaRouterActionPlatformDelegateViews() override;
private:
// The corresponding browser.
Browser* const browser_;
DISALLOW_COPY_AND_ASSIGN(MediaRouterActionPlatformDelegateViews);
};
#endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_MEDIA_ROUTER_ACTION_PLATFORM_DELEGATE_VIEWS_H_
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