Commit bb1aef08 authored by Weiyong Yao's avatar Weiyong Yao Committed by Commit Bot

chooseDesktopMedia: Add source type to DesktopMediaList

This is a prerequisite cl for the feature to customize the order of picker Tabs.
By adding source type to DesktopMediaList, the DesktopMediaList users can know
the type (screen/window/tab) of the list and do the relevent processing.

Bug: 728866
Change-Id: I73ecb3034ce1860bf7d76c6259325813daaa9cf7
Reviewed-on: https://chromium-review.googlesource.com/526854Reviewed-by: default avatarSergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Weiyong Yao <braveyao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478715}
parent e577ed81
......@@ -55,6 +55,8 @@ class DesktopMediaList {
virtual int GetSourceCount() const = 0;
virtual const Source& GetSource(int index) const = 0;
virtual content::DesktopMediaID::Type GetMediaListType() const = 0;
};
#endif // CHROME_BROWSER_MEDIA_WEBRTC_DESKTOP_MEDIA_LIST_H_
......@@ -27,11 +27,11 @@ const int kDefaultUpdatePeriod = 500;
DesktopMediaListAsh::DesktopMediaListAsh(content::DesktopMediaID::Type type)
: DesktopMediaListBase(
base::TimeDelta::FromMilliseconds(kDefaultUpdatePeriod)),
type_(type),
pending_window_capture_requests_(0),
weak_factory_(this) {
DCHECK(type == content::DesktopMediaID::TYPE_SCREEN ||
type == content::DesktopMediaID::TYPE_WINDOW);
type_ = type;
}
DesktopMediaListAsh::~DesktopMediaListAsh() {}
......
......@@ -37,8 +37,6 @@ class DesktopMediaListAsh : public DesktopMediaListBase {
void OnThumbnailCaptured(content::DesktopMediaID id,
const gfx::Image& image);
const content::DesktopMediaID::Type type_;
int pending_window_capture_requests_;
base::WeakPtrFactory<DesktopMediaListAsh> weak_factory_;
......
......@@ -49,6 +49,10 @@ const DesktopMediaList::Source& DesktopMediaListBase::GetSource(
return sources_[index];
}
DesktopMediaID::Type DesktopMediaListBase::GetMediaListType() const {
return type_;
}
DesktopMediaListBase::SourceDescription::SourceDescription(
DesktopMediaID id,
const base::string16& name)
......
......@@ -30,6 +30,7 @@ class DesktopMediaListBase : public DesktopMediaList {
void StartUpdating(DesktopMediaListObserver* observer) override;
int GetSourceCount() const override;
const Source& GetSource(int index) const override;
content::DesktopMediaID::Type GetMediaListType() const override;
static uint32_t GetImageHash(const gfx::Image& image);
......@@ -61,6 +62,9 @@ class DesktopMediaListBase : public DesktopMediaList {
content::DesktopMediaID view_dialog_id_ =
content::DesktopMediaID(content::DesktopMediaID::TYPE_NONE, -1);
// Desktop media type of the list.
content::DesktopMediaID::Type type_ = content::DesktopMediaID::TYPE_NONE;
private:
// Time interval between mode updates.
base::TimeDelta update_period_;
......
......@@ -8,12 +8,14 @@
#include "chrome/browser/media/webrtc/desktop_media_list_observer.h"
#include "ui/gfx/skia_util.h"
using content::DesktopMediaID;
FakeDesktopMediaList::FakeDesktopMediaList() : observer_(NULL) {}
FakeDesktopMediaList::~FakeDesktopMediaList() {}
void FakeDesktopMediaList::AddSource(int id) {
AddSourceByFullMediaID(
content::DesktopMediaID(content::DesktopMediaID::TYPE_WINDOW, id));
content::DesktopMediaID(DesktopMediaID::TYPE_WINDOW, id));
}
void FakeDesktopMediaList::AddSourceByFullMediaID(
......@@ -70,3 +72,7 @@ const DesktopMediaList::Source& FakeDesktopMediaList::GetSource(
int index) const {
return sources_[index];
}
DesktopMediaID::Type FakeDesktopMediaList::GetMediaListType() const {
return DesktopMediaID::TYPE_NONE;
}
......@@ -28,6 +28,7 @@ class FakeDesktopMediaList : public DesktopMediaList {
void StartUpdating(DesktopMediaListObserver* observer) override;
int GetSourceCount() const override;
const Source& GetSource(int index) const override;
content::DesktopMediaID::Type GetMediaListType() const override;
private:
std::vector<Source> sources_;
......
......@@ -217,6 +217,7 @@ NativeDesktopMediaList::NativeDesktopMediaList(
: DesktopMediaListBase(
base::TimeDelta::FromMilliseconds(kDefaultUpdatePeriod)),
weak_factory_(this) {
type_ = type;
capture_task_runner_ = base::CreateSequencedTaskRunnerWithTraits(
{base::MayBlock(), base::TaskPriority::USER_VISIBLE});
......
......@@ -60,6 +60,7 @@ TabDesktopMediaList::TabDesktopMediaList()
: DesktopMediaListBase(
base::TimeDelta::FromMilliseconds(kDefaultUpdatePeriod)),
weak_factory_(this) {
type_ = DesktopMediaID::TYPE_WEB_CONTENTS;
thumbnail_task_runner_ = base::CreateSequencedTaskRunnerWithTraits(
{base::MayBlock(), base::TaskPriority::USER_VISIBLE});
}
......
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