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