Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: chrome/browser/media/desktop_media_list_base.cc

Issue 1763753003: Capture chrome browser windows from internal rendering procedure for windows and linux (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/media/desktop_media_list_base.h" 5 #include "chrome/browser/media/desktop_media_list_base.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "chrome/browser/media/desktop_media_list_observer.h" 9 #include "chrome/browser/media/desktop_media_list_observer.h"
10 #include "content/public/browser/browser_thread.h" 10 #include "content/public/browser/browser_thread.h"
11 11
12 using content::BrowserThread; 12 using content::BrowserThread;
13 using content::DesktopMediaID;
13 14
14 DesktopMediaListBase::DesktopMediaListBase(base::TimeDelta update_period) 15 DesktopMediaListBase::DesktopMediaListBase(base::TimeDelta update_period)
15 : update_period_(update_period), weak_factory_(this) {} 16 : update_period_(update_period), weak_factory_(this) {}
16 17
17 DesktopMediaListBase::~DesktopMediaListBase() {} 18 DesktopMediaListBase::~DesktopMediaListBase() {}
18 19
19 void DesktopMediaListBase::SetUpdatePeriod(base::TimeDelta period) { 20 void DesktopMediaListBase::SetUpdatePeriod(base::TimeDelta period) {
20 DCHECK(!observer_); 21 DCHECK(!observer_);
21 update_period_ = period; 22 update_period_ = period;
22 } 23 }
23 24
24 void DesktopMediaListBase::SetThumbnailSize(const gfx::Size& thumbnail_size) { 25 void DesktopMediaListBase::SetThumbnailSize(const gfx::Size& thumbnail_size) {
25 thumbnail_size_ = thumbnail_size; 26 thumbnail_size_ = thumbnail_size;
26 } 27 }
27 28
28 void DesktopMediaListBase::SetViewDialogWindowId( 29 void DesktopMediaListBase::SetViewDialogWindowId(DesktopMediaID dialog_id) {
29 content::DesktopMediaID dialog_id) {
30 view_dialog_id_ = dialog_id; 30 view_dialog_id_ = dialog_id;
31 } 31 }
32 32
33 void DesktopMediaListBase::StartUpdating(DesktopMediaListObserver* observer) { 33 void DesktopMediaListBase::StartUpdating(DesktopMediaListObserver* observer) {
34 DCHECK(!observer_); 34 DCHECK(!observer_);
35 35
36 observer_ = observer; 36 observer_ = observer;
37 Refresh(); 37 Refresh();
38 } 38 }
39 39
40 int DesktopMediaListBase::GetSourceCount() const { 40 int DesktopMediaListBase::GetSourceCount() const {
41 return sources_.size(); 41 return sources_.size();
42 } 42 }
43 43
44 const DesktopMediaList::Source& DesktopMediaListBase::GetSource( 44 const DesktopMediaList::Source& DesktopMediaListBase::GetSource(
45 int index) const { 45 int index) const {
46 DCHECK_GE(index, 0); 46 DCHECK_GE(index, 0);
47 DCHECK_LT(index, static_cast<int>(sources_.size())); 47 DCHECK_LT(index, static_cast<int>(sources_.size()));
48 return sources_[index]; 48 return sources_[index];
49 } 49 }
50 50
51 DesktopMediaListBase::SourceDescription::SourceDescription( 51 DesktopMediaListBase::SourceDescription::SourceDescription(
52 content::DesktopMediaID id, 52 DesktopMediaID id,
53 const base::string16& name) 53 const base::string16& name)
54 : id(id), name(name) {} 54 : id(id), name(name) {}
55 55
56 void DesktopMediaListBase::UpdateSourcesList( 56 void DesktopMediaListBase::UpdateSourcesList(
57 const std::vector<SourceDescription>& new_sources) { 57 const std::vector<SourceDescription>& new_sources) {
58 typedef std::set<content::DesktopMediaID> SourceSet; 58 typedef std::set<DesktopMediaID> SourceSet;
59 SourceSet new_source_set; 59 SourceSet new_source_set;
60 for (size_t i = 0; i < new_sources.size(); ++i) { 60 for (size_t i = 0; i < new_sources.size(); ++i) {
61 new_source_set.insert(new_sources[i].id); 61 new_source_set.insert(new_sources[i].id);
62 } 62 }
63 // Iterate through the old sources to find the removed sources. 63 // Iterate through the old sources to find the removed sources.
64 for (size_t i = 0; i < sources_.size(); ++i) { 64 for (size_t i = 0; i < sources_.size(); ++i) {
65 if (new_source_set.find(sources_[i].id) == new_source_set.end()) { 65 if (new_source_set.find(sources_[i].id) == new_source_set.end()) {
66 sources_.erase(sources_.begin() + i); 66 sources_.erase(sources_.begin() + i);
67 observer_->OnSourceRemoved(this, i); 67 observer_->OnSourceRemoved(this, i);
68 --i; 68 --i;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 } 108 }
109 109
110 if (sources_[pos].name != new_sources[pos].name) { 110 if (sources_[pos].name != new_sources[pos].name) {
111 sources_[pos].name = new_sources[pos].name; 111 sources_[pos].name = new_sources[pos].name;
112 observer_->OnSourceNameChanged(this, pos); 112 observer_->OnSourceNameChanged(this, pos);
113 } 113 }
114 ++pos; 114 ++pos;
115 } 115 }
116 } 116 }
117 117
118 void DesktopMediaListBase::UpdateSourceThumbnail(content::DesktopMediaID id, 118 void DesktopMediaListBase::UpdateSourceThumbnail(DesktopMediaID id,
119 const gfx::ImageSkia& image) { 119 const gfx::ImageSkia& image) {
120 for (size_t i = 0; i < sources_.size(); ++i) { 120 for (size_t i = 0; i < sources_.size(); ++i) {
121 if (sources_[i].id == id) { 121 if (sources_[i].id == id) {
122 sources_[i].thumbnail = image; 122 sources_[i].thumbnail = image;
123 observer_->OnSourceThumbnailChanged(this, i); 123 observer_->OnSourceThumbnailChanged(this, i);
124 break; 124 break;
125 } 125 }
126 } 126 }
127 } 127 }
128 128
129 void DesktopMediaListBase::ScheduleNextRefresh() { 129 void DesktopMediaListBase::ScheduleNextRefresh() {
130 BrowserThread::PostDelayedTask( 130 BrowserThread::PostDelayedTask(
131 BrowserThread::UI, FROM_HERE, 131 BrowserThread::UI, FROM_HERE,
132 base::Bind(&DesktopMediaListBase::Refresh, weak_factory_.GetWeakPtr()), 132 base::Bind(&DesktopMediaListBase::Refresh, weak_factory_.GetWeakPtr()),
133 update_period_); 133 update_period_);
134 } 134 }
135
136 // Static
Sergey Ulanov 2016/03/12 01:01:20 nit: lowercase s
GeorgeZ 2016/03/14 16:49:03 Done.
137 uint32_t DesktopMediaListBase::GetImageHash(const gfx::Image& image) {
138 SkBitmap bitmap = image.AsBitmap();
139 bitmap.lockPixels();
140 uint32_t value =
141 base::Hash(reinterpret_cast<char*>(bitmap.getPixels()), bitmap.getSize());
142 bitmap.unlockPixels();
143
144 return value;
145 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698