Skip to content

Commit

Permalink
Create a MediaNotificationItem interface
Browse files Browse the repository at this point in the history
Rename MediaNotificationItem to MediaSessionNotificationItem, and create
a MediaNotificationItem interface, which will be implemented by
CastMediaNotificationItem in a later patch to show Cast sessions in
the Global Media Controls.

TBR=beccahughes@chromium.org

Bug: 987479
Change-Id: Ibeffa9d0f641850207dd0402337654381d859c4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1894414
Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
Reviewed-by: Tommy Steimel <steimel@chromium.org>
Commit-Queue: Takumi Fujimoto <takumif@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711974}
  • Loading branch information
takumif authored and Commit Bot committed Nov 2, 2019
1 parent ded061c commit 4259911
Show file tree
Hide file tree
Showing 13 changed files with 507 additions and 445 deletions.
3 changes: 2 additions & 1 deletion ash/media/media_notification_container_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "ash/media/media_notification_container_impl.h"

#include "components/media_message_center/media_notification_view.h"
#include "components/media_message_center/media_session_notification_item.h"
#include "ui/message_center/message_center.h"
#include "ui/message_center/public/cpp/message_center_constants.h"
#include "ui/message_center/views/notification_control_buttons_view.h"
Expand All @@ -28,7 +29,7 @@ constexpr int kControlButtonsContainerSideLength =

MediaNotificationContainerImpl::MediaNotificationContainerImpl(
const message_center::Notification& notification,
base::WeakPtr<media_message_center::MediaNotificationItem> item)
base::WeakPtr<media_message_center::MediaSessionNotificationItem> item)
: message_center::MessageView(notification) {
SetLayoutManager(std::make_unique<views::FillLayout>());

Expand Down
4 changes: 2 additions & 2 deletions ash/media/media_notification_container_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "ui/message_center/views/message_view.h"

namespace media_message_center {
class MediaNotificationItem;
class MediaSessionNotificationItem;
class MediaNotificationView;
} // namespace media_message_center

Expand All @@ -27,7 +27,7 @@ class ASH_EXPORT MediaNotificationContainerImpl
public:
explicit MediaNotificationContainerImpl(
const message_center::Notification& notification,
base::WeakPtr<media_message_center::MediaNotificationItem> item);
base::WeakPtr<media_message_center::MediaSessionNotificationItem> item);
~MediaNotificationContainerImpl() override;

// message_center::MessageView:
Expand Down
3 changes: 1 addition & 2 deletions ash/media/media_notification_controller_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
#include "ash/shell.h"
#include "base/bind.h"
#include "base/stl_util.h"
#include "components/media_message_center/media_notification_item.h"
#include "components/media_message_center/media_notification_util.h"
#include "services/media_session/public/mojom/constants.mojom.h"
#include "services/service_manager/public/cpp/connector.h"
Expand Down Expand Up @@ -214,7 +213,7 @@ MediaNotificationControllerImpl::GetTaskRunner() const {
std::unique_ptr<MediaNotificationContainerImpl>
MediaNotificationControllerImpl::CreateMediaNotification(
const message_center::Notification& notification) {
base::WeakPtr<media_message_center::MediaNotificationItem> item;
base::WeakPtr<media_message_center::MediaSessionNotificationItem> item;

auto it = notifications_.find(notification.id());
if (it != notifications_.end())
Expand Down
12 changes: 7 additions & 5 deletions ash/media/media_notification_controller_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include "ash/ash_export.h"
#include "base/macros.h"
#include "components/media_message_center/media_notification_controller.h"
#include "components/media_message_center/media_notification_item.h"
#include "components/media_message_center/media_session_notification_item.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "services/media_session/public/mojom/audio_focus.mojom.h"
#include "services/media_session/public/mojom/media_controller.mojom.h"
Expand Down Expand Up @@ -60,7 +60,8 @@ class ASH_EXPORT MediaNotificationControllerImpl
std::unique_ptr<MediaNotificationContainerImpl> CreateMediaNotification(
const message_center::Notification& notification);

media_message_center::MediaNotificationItem* GetItem(const std::string& id) {
media_message_center::MediaSessionNotificationItem* GetItem(
const std::string& id) {
auto it = notifications_.find(id);
DCHECK(it != notifications_.end());
return &it->second;
Expand All @@ -79,9 +80,10 @@ class ASH_EXPORT MediaNotificationControllerImpl
mojo::Receiver<media_session::mojom::AudioFocusObserver>
audio_focus_observer_receiver_{this};

// Stores a |media_message_center::MediaNotificationItem| for each media
// session keyed by its |request_id| in string format.
std::map<const std::string, media_message_center::MediaNotificationItem>
// Stores a |media_message_center::MediaSessionNotificationItem| for each
// media session keyed by its |request_id| in string format.
std::map<const std::string,
media_message_center::MediaSessionNotificationItem>
notifications_;

// Tick clock used for testing.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "components/media_message_center/media_notification_item.h"
#include "components/media_message_center/media_notification_util.h"
#include "components/media_message_center/media_session_notification_item.h"
#include "content/public/browser/media_session.h"
#include "services/media_session/public/mojom/constants.mojom.h"
#include "services/media_session/public/mojom/media_session.mojom.h"
Expand Down Expand Up @@ -46,7 +47,7 @@ bool IsWebContentsFocused(content::WebContents* web_contents) {
MediaToolbarButtonController::Session::Session(
MediaToolbarButtonController* owner,
const std::string& id,
std::unique_ptr<media_message_center::MediaNotificationItem> item,
std::unique_ptr<media_message_center::MediaSessionNotificationItem> item,
content::WebContents* web_contents)
: content::WebContentsObserver(web_contents),
owner_(owner),
Expand Down Expand Up @@ -164,7 +165,8 @@ void MediaToolbarButtonController::OnFocusGained(
std::piecewise_construct, std::forward_as_tuple(id),
std::forward_as_tuple(
this, id,
std::make_unique<media_message_center::MediaNotificationItem>(
std::make_unique<
media_message_center::MediaSessionNotificationItem>(
this, id, session->source_name.value_or(std::string()),
std::move(controller), std::move(session->session_info)),
content::MediaSession::GetWebContentsFromRequestId(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class WebContents;
} // namespace content

namespace media_message_center {
class MediaNotificationItem;
class MediaSessionNotificationItem;
} // namespace media_message_center

namespace media_router {
Expand Down Expand Up @@ -90,7 +90,8 @@ class MediaToolbarButtonController
public:
Session(MediaToolbarButtonController* owner,
const std::string& id,
std::unique_ptr<media_message_center::MediaNotificationItem> item,
std::unique_ptr<media_message_center::MediaSessionNotificationItem>
item,
content::WebContents* web_contents);
Session(const Session&) = delete;
Session& operator=(const Session&) = delete;
Expand All @@ -99,12 +100,14 @@ class MediaToolbarButtonController
// content::WebContentsObserver implementation.
void WebContentsDestroyed() override;

media_message_center::MediaNotificationItem* item() { return item_.get(); }
media_message_center::MediaSessionNotificationItem* item() {
return item_.get();
}

private:
MediaToolbarButtonController* owner_;
const std::string id_;
std::unique_ptr<media_message_center::MediaNotificationItem> item_;
std::unique_ptr<media_message_center::MediaSessionNotificationItem> item_;
};

class MediaRoutesObserver : public media_router::MediaRoutesObserver {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include "chrome/browser/ui/global_media_controls/media_toolbar_button_controller_delegate.h"
#include "components/media_message_center/media_notification_item.h"
#include "components/media_message_center/media_notification_util.h"
#include "components/media_message_center/media_session_notification_item.h"
#include "content/public/test/browser_task_environment.h"
#include "services/media_session/public/mojom/audio_focus.mojom.h"
#include "services/media_session/public/mojom/media_session.mojom.h"
Expand Down
2 changes: 2 additions & 0 deletions components/media_message_center/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ component("media_message_center") {
"media_notification_util.h",
"media_notification_view.cc",
"media_notification_view.h",
"media_session_notification_item.cc",
"media_session_notification_item.h",
]

defines = [ "IS_MEDIA_MESSAGE_CENTER_IMPL" ]
Expand Down

0 comments on commit 4259911

Please sign in to comment.