Commit 0c45eece authored by Imranur Rahman's avatar Imranur Rahman Committed by Commit Bot

Refactoring MediaSessionAction sets in Media Message Center.

MediaSessionAction sets are guaranteed to be small.
So we are using base::flat_set instead of std::set for
MediaSessionAction sets.

Bug: 1003847
Signed-off-by: default avatarImranur Rahman <i.rahman@samsung.com>
Change-Id: I2672cd26443c62940da2c168e4563a341ea74158
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1824723
Commit-Queue: Tommy Steimel <steimel@chromium.org>
Reviewed-by: default avatarTommy Steimel <steimel@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#709495}
parent 96874cc3
......@@ -535,7 +535,7 @@ void LockScreenMediaControlsView::MediaSessionActionsChanged(
return;
enabled_actions_ =
std::set<MediaSessionAction>(actions.begin(), actions.end());
base::flat_set<MediaSessionAction>(actions.begin(), actions.end());
UpdateActionButtonsVisibility();
}
......@@ -682,11 +682,11 @@ void LockScreenMediaControlsView::FlushForTesting() {
}
void LockScreenMediaControlsView::UpdateActionButtonsVisibility() {
std::set<MediaSessionAction> ignored_actions = {
base::flat_set<MediaSessionAction> ignored_actions = {
media_message_center::GetPlayPauseIgnoredAction(
media_message_center::GetActionFromButtonTag(*play_pause_button_))};
std::set<MediaSessionAction> visible_actions =
base::flat_set<MediaSessionAction> visible_actions =
media_message_center::GetTopVisibleActions(enabled_actions_,
ignored_actions, kMaxActions);
......
......@@ -5,9 +5,8 @@
#ifndef ASH_LOGIN_UI_LOCK_SCREEN_MEDIA_CONTROLS_VIEW_H_
#define ASH_LOGIN_UI_LOCK_SCREEN_MEDIA_CONTROLS_VIEW_H_
#include <set>
#include "ash/ash_export.h"
#include "base/containers/flat_set.h"
#include "base/timer/timer.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
......@@ -237,7 +236,7 @@ class ASH_EXPORT LockScreenMediaControlsView
base::string16 accessible_name_;
// Set of enabled actions.
std::set<media_session::mojom::MediaSessionAction> enabled_actions_;
base::flat_set<media_session::mojom::MediaSessionAction> enabled_actions_;
// Contains the visible and draggable UI of the media controls.
views::View* contents_view_ = nullptr;
......
......@@ -6,6 +6,7 @@
#define ASH_MEDIA_MEDIA_NOTIFICATION_CONTAINER_IMPL_H_
#include "ash/ash_export.h"
#include "base/containers/flat_set.h"
#include "components/media_message_center/media_notification_container.h"
#include "components/media_message_center/media_notification_view.h"
#include "ui/message_center/views/message_view.h"
......@@ -43,7 +44,7 @@ class ASH_EXPORT MediaNotificationContainerImpl
const media_session::mojom::MediaSessionInfoPtr& session_info) override {}
void OnMediaSessionMetadataChanged() override {}
void OnVisibleActionsChanged(
const std::set<media_session::mojom::MediaSessionAction>& actions)
const base::flat_set<media_session::mojom::MediaSessionAction>& actions)
override {}
void OnMediaArtworkChanged(const gfx::ImageSkia& image) override {}
void OnColorsChanged(SkColor foreground, SkColor background) override {}
......
......@@ -148,7 +148,7 @@ void MediaNotificationContainerImplView::OnMediaSessionMetadataChanged() {
}
void MediaNotificationContainerImplView::OnVisibleActionsChanged(
const std::set<media_session::mojom::MediaSessionAction>& actions) {
const base::flat_set<media_session::mojom::MediaSessionAction>& actions) {
has_many_actions_ = actions.size() >= kMinVisibleActionsForExpanding;
ForceExpandedState();
}
......
......@@ -60,7 +60,7 @@ class MediaNotificationContainerImplView
const media_session::mojom::MediaSessionInfoPtr& session_info) override {}
void OnMediaSessionMetadataChanged() override;
void OnVisibleActionsChanged(
const std::set<media_session::mojom::MediaSessionAction>& actions)
const base::flat_set<media_session::mojom::MediaSessionAction>& actions)
override;
void OnMediaArtworkChanged(const gfx::ImageSkia& image) override;
void OnColorsChanged(SkColor foreground, SkColor background) override;
......
......@@ -4,6 +4,7 @@
#include "chrome/browser/ui/views/global_media_controls/media_notification_container_impl_view.h"
#include "base/containers/flat_set.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "chrome/browser/ui/global_media_controls/media_notification_container_observer.h"
......@@ -243,7 +244,7 @@ class MediaNotificationContainerImplViewTest : public views::ViewsTestBase {
std::unique_ptr<MockMediaNotificationContainerObserver> observer_;
// Set of actions currently enabled.
std::set<MediaSessionAction> actions_;
base::flat_set<MediaSessionAction> actions_;
FakeCursorLocationScreen fake_screen_;
display::test::ScopedScreenOverride screen_override_;
......
......@@ -5,9 +5,8 @@
#ifndef COMPONENTS_MEDIA_MESSAGE_CENTER_MEDIA_NOTIFICATION_CONTAINER_H_
#define COMPONENTS_MEDIA_MESSAGE_CENTER_MEDIA_NOTIFICATION_CONTAINER_H_
#include <set>
#include "base/component_export.h"
#include "base/containers/flat_set.h"
#include "services/media_session/public/mojom/media_session.mojom.h"
namespace gfx {
......@@ -31,10 +30,10 @@ class COMPONENT_EXPORT(MEDIA_MESSAGE_CENTER) MediaNotificationContainer {
// Called when the metadata changes.
virtual void OnMediaSessionMetadataChanged() = 0;
// TODO(https://crbug.com/1003847): Use base::flat_set isntead.
// Called when the set of visible MediaSessionActions changes.
virtual void OnVisibleActionsChanged(
const std::set<media_session::mojom::MediaSessionAction>& actions) = 0;
const base::flat_set<media_session::mojom::MediaSessionAction>&
actions) = 0;
// Called when the media artwork changes.
virtual void OnMediaArtworkChanged(const gfx::ImageSkia& image) = 0;
......
......@@ -106,7 +106,7 @@ void MediaNotificationItem::MediaSessionMetadataChanged(
void MediaNotificationItem::MediaSessionActionsChanged(
const std::vector<media_session::mojom::MediaSessionAction>& actions) {
session_actions_ = std::set<media_session::mojom::MediaSessionAction>(
session_actions_ = base::flat_set<media_session::mojom::MediaSessionAction>(
actions.begin(), actions.end());
if (view_ && !frozen_) {
......
......@@ -5,10 +5,10 @@
#ifndef COMPONENTS_MEDIA_MESSAGE_CENTER_MEDIA_NOTIFICATION_ITEM_H_
#define COMPONENTS_MEDIA_MESSAGE_CENTER_MEDIA_NOTIFICATION_ITEM_H_
#include <set>
#include <string>
#include "base/component_export.h"
#include "base/containers/flat_set.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/optional.h"
......@@ -137,7 +137,7 @@ class COMPONENT_EXPORT(MEDIA_MESSAGE_CENTER) MediaNotificationItem
media_session::MediaMetadata session_metadata_;
std::set<media_session::mojom::MediaSessionAction> session_actions_;
base::flat_set<media_session::mojom::MediaSessionAction> session_actions_;
base::Optional<gfx::ImageSkia> session_artwork_;
......
......@@ -50,11 +50,11 @@ base::string16 GetAccessibleNameFromMetadata(
return accessible_name;
}
std::set<MediaSessionAction> GetTopVisibleActions(
const std::set<MediaSessionAction>& enabled_actions,
const std::set<MediaSessionAction>& ignored_actions,
base::flat_set<MediaSessionAction> GetTopVisibleActions(
const base::flat_set<MediaSessionAction>& enabled_actions,
const base::flat_set<MediaSessionAction>& ignored_actions,
size_t max_actions) {
std::set<MediaSessionAction> visible_actions;
base::flat_set<MediaSessionAction> visible_actions;
for (auto& action : kPreferredActions) {
if (visible_actions.size() >= max_actions)
......
......@@ -6,6 +6,7 @@
#define COMPONENTS_MEDIA_MESSAGE_CENTER_MEDIA_NOTIFICATION_UTIL_H_
#include "base/component_export.h"
#include "base/containers/flat_set.h"
#include "services/media_session/public/mojom/media_session.mojom.h"
namespace views {
......@@ -29,9 +30,11 @@ base::string16 GetAccessibleNameFromMetadata(
// most |max_actions| - if needed, the actions will the least priority will be
// dropped.
COMPONENT_EXPORT(MEDIA_MESSAGE_CENTER)
std::set<media_session::mojom::MediaSessionAction> GetTopVisibleActions(
const std::set<media_session::mojom::MediaSessionAction>& enabled_actions,
const std::set<media_session::mojom::MediaSessionAction>& ignored_actions,
base::flat_set<media_session::mojom::MediaSessionAction> GetTopVisibleActions(
const base::flat_set<media_session::mojom::MediaSessionAction>&
enabled_actions,
const base::flat_set<media_session::mojom::MediaSessionAction>&
ignored_actions,
size_t max_actions);
// Returns the |MediaSessionAction| corresponding to playback action |button|.
......
......@@ -337,7 +337,7 @@ void MediaNotificationView::UpdateWithMediaMetadata(
}
void MediaNotificationView::UpdateWithMediaActions(
const std::set<media_session::mojom::MediaSessionAction>& actions) {
const base::flat_set<media_session::mojom::MediaSessionAction>& actions) {
enabled_actions_ = actions;
header_row_->SetExpandButtonEnabled(IsExpandable());
......@@ -367,10 +367,10 @@ void MediaNotificationView::UpdateWithMediaArtwork(
}
void MediaNotificationView::UpdateActionButtonsVisibility() {
std::set<MediaSessionAction> ignored_actions = {
base::flat_set<MediaSessionAction> ignored_actions = {
GetPlayPauseIgnoredAction(GetActionFromButtonTag(*play_pause_button_))};
std::set<MediaSessionAction> visible_actions =
base::flat_set<MediaSessionAction> visible_actions =
GetTopVisibleActions(enabled_actions_, ignored_actions,
GetMaxNumActions(IsActuallyExpanded()));
......@@ -461,7 +461,7 @@ bool MediaNotificationView::IsExpandable() const {
if (forced_expanded_state_.has_value())
return false;
std::set<MediaSessionAction> ignored_actions = {
base::flat_set<MediaSessionAction> ignored_actions = {
GetPlayPauseIgnoredAction(GetActionFromButtonTag(*play_pause_button_))};
// If we can show more notifications if we were expanded then we should be
......
......@@ -89,7 +89,7 @@ class COMPONENT_EXPORT(MEDIA_MESSAGE_CENTER) MediaNotificationView
const media_session::mojom::MediaSessionInfoPtr& session_info);
void UpdateWithMediaMetadata(const media_session::MediaMetadata& metadata);
void UpdateWithMediaActions(
const std::set<media_session::mojom::MediaSessionAction>& actions);
const base::flat_set<media_session::mojom::MediaSessionAction>& actions);
void UpdateWithMediaArtwork(const gfx::ImageSkia& image);
const views::Label* title_label_for_testing() const { return title_label_; }
......@@ -141,7 +141,7 @@ class COMPONENT_EXPORT(MEDIA_MESSAGE_CENTER) MediaNotificationView
base::Optional<bool> forced_expanded_state_;
// Set of enabled actions.
std::set<media_session::mojom::MediaSessionAction> enabled_actions_;
base::flat_set<media_session::mojom::MediaSessionAction> enabled_actions_;
// Stores the text to be read by screen readers describing the notification.
// Contains the title, artist and album separated by hypens.
......
......@@ -7,6 +7,7 @@
#include <memory>
#include "base/bind.h"
#include "base/containers/flat_set.h"
#include "base/macros.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/metrics/histogram_tester.h"
......@@ -95,7 +96,7 @@ class MockMediaNotificationContainer : public MediaNotificationContainer {
void(const media_session::mojom::MediaSessionInfoPtr& session_info));
MOCK_METHOD0(OnMediaSessionMetadataChanged, void());
MOCK_METHOD1(OnVisibleActionsChanged,
void(const std::set<MediaSessionAction>& actions));
void(const base::flat_set<MediaSessionAction>& actions));
MOCK_METHOD1(OnMediaArtworkChanged, void(const gfx::ImageSkia& image));
MOCK_METHOD2(OnColorsChanged, void(SkColor foreground, SkColor background));
......@@ -327,7 +328,7 @@ class MediaNotificationViewTest : public views::ViewsTestBase {
base::HistogramTester histogram_tester_;
std::set<MediaSessionAction> actions_;
base::flat_set<MediaSessionAction> actions_;
std::unique_ptr<TestMediaController> media_controller_;
MockMediaNotificationContainer container_;
......@@ -661,7 +662,7 @@ TEST_F(MAYBE_MediaNotificationViewTest, UpdateMetadata_AppName) {
TEST_F(MAYBE_MediaNotificationViewTest, Buttons_WhenCollapsed) {
EXPECT_CALL(
container(),
OnVisibleActionsChanged(std::set<MediaSessionAction>(
OnVisibleActionsChanged(base::flat_set<MediaSessionAction>(
{MediaSessionAction::kPlay, MediaSessionAction::kPreviousTrack,
MediaSessionAction::kNextTrack, MediaSessionAction::kSeekBackward,
MediaSessionAction::kSeekForward})));
......@@ -679,7 +680,7 @@ TEST_F(MAYBE_MediaNotificationViewTest, Buttons_WhenCollapsed) {
EXPECT_CALL(
container(),
OnVisibleActionsChanged(std::set<MediaSessionAction>(
OnVisibleActionsChanged(base::flat_set<MediaSessionAction>(
{MediaSessionAction::kPlay, MediaSessionAction::kSeekBackward,
MediaSessionAction::kNextTrack, MediaSessionAction::kSeekForward})));
DisableAction(MediaSessionAction::kPreviousTrack);
......@@ -688,7 +689,7 @@ TEST_F(MAYBE_MediaNotificationViewTest, Buttons_WhenCollapsed) {
EXPECT_CALL(
container(),
OnVisibleActionsChanged(std::set<MediaSessionAction>(
OnVisibleActionsChanged(base::flat_set<MediaSessionAction>(
{MediaSessionAction::kPlay, MediaSessionAction::kPreviousTrack,
MediaSessionAction::kNextTrack, MediaSessionAction::kSeekBackward,
MediaSessionAction::kSeekForward})));
......@@ -696,7 +697,7 @@ TEST_F(MAYBE_MediaNotificationViewTest, Buttons_WhenCollapsed) {
testing::Mock::VerifyAndClearExpectations(&container());
EXPECT_TRUE(IsActionButtonVisible(MediaSessionAction::kPreviousTrack));
EXPECT_CALL(container(), OnVisibleActionsChanged(std::set<MediaSessionAction>(
EXPECT_CALL(container(), OnVisibleActionsChanged(base::flat_set<MediaSessionAction>(
{MediaSessionAction::kPlay,
MediaSessionAction::kPreviousTrack,
MediaSessionAction::kNextTrack,
......@@ -707,7 +708,7 @@ TEST_F(MAYBE_MediaNotificationViewTest, Buttons_WhenCollapsed) {
EXPECT_CALL(
container(),
OnVisibleActionsChanged(std::set<MediaSessionAction>(
OnVisibleActionsChanged(base::flat_set<MediaSessionAction>(
{MediaSessionAction::kPlay, MediaSessionAction::kPreviousTrack,
MediaSessionAction::kNextTrack, MediaSessionAction::kSeekBackward,
MediaSessionAction::kSeekForward})));
......@@ -719,7 +720,7 @@ TEST_F(MAYBE_MediaNotificationViewTest, Buttons_WhenCollapsed) {
TEST_F(MAYBE_MediaNotificationViewTest, Buttons_WhenExpanded) {
EXPECT_CALL(
container(),
OnVisibleActionsChanged(std::set<MediaSessionAction>(
OnVisibleActionsChanged(base::flat_set<MediaSessionAction>(
{MediaSessionAction::kPlay, MediaSessionAction::kPreviousTrack,
MediaSessionAction::kNextTrack, MediaSessionAction::kSeekBackward,
MediaSessionAction::kSeekForward})));
......@@ -728,7 +729,7 @@ TEST_F(MAYBE_MediaNotificationViewTest, Buttons_WhenExpanded) {
EXPECT_CALL(
container(),
OnVisibleActionsChanged(std::set<MediaSessionAction>(
OnVisibleActionsChanged(base::flat_set<MediaSessionAction>(
{MediaSessionAction::kPlay, MediaSessionAction::kPreviousTrack,
MediaSessionAction::kNextTrack, MediaSessionAction::kSeekBackward,
MediaSessionAction::kSeekForward})));
......
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