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

Side by Side Diff: chromecast/media/cdm/browser_cdm_cast.cc

Issue 1100763002: Inject CanAddURLToHistory into TopSitesImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@prefs
Patch Set: Fix error introduced during rebase Created 5 years, 7 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
« no previous file with comments | « chromecast/media/cdm/browser_cdm_cast.h ('k') | chromeos/CHROMEOS_LKGM » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chromecast/media/cdm/browser_cdm_cast.h" 5 #include "chromecast/media/cdm/browser_cdm_cast.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/message_loop/message_loop_proxy.h" 9 #include "base/message_loop/message_loop_proxy.h"
10 #include "media/base/cdm_key_information.h" 10 #include "media/base/cdm_key_information.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 session_id, ::media::MediaKeys::Exception::NOT_SUPPORTED_ERROR, 0, 61 session_id, ::media::MediaKeys::Exception::NOT_SUPPORTED_ERROR, 0,
62 std::string()); 62 std::string());
63 } 63 }
64 64
65 ::media::CdmContext* BrowserCdmCast::GetCdmContext() { 65 ::media::CdmContext* BrowserCdmCast::GetCdmContext() {
66 NOTREACHED(); 66 NOTREACHED();
67 return nullptr; 67 return nullptr;
68 } 68 }
69 69
70 void BrowserCdmCast::OnSessionMessage(const std::string& session_id, 70 void BrowserCdmCast::OnSessionMessage(const std::string& session_id,
71 const std::vector<uint8>& message, 71 const std::vector<uint8_t>& message,
72 const GURL& destination_url) { 72 const GURL& destination_url) {
73 // Note: Message type is not supported in Chromecast. Do our best guess here. 73 // Note: Message type is not supported in Chromecast. Do our best guess here.
74 ::media::MediaKeys::MessageType message_type = 74 ::media::MediaKeys::MessageType message_type =
75 destination_url.is_empty() ? ::media::MediaKeys::LICENSE_REQUEST 75 destination_url.is_empty() ? ::media::MediaKeys::LICENSE_REQUEST
76 : ::media::MediaKeys::LICENSE_RENEWAL; 76 : ::media::MediaKeys::LICENSE_RENEWAL;
77 session_message_cb_.Run(session_id, 77 session_message_cb_.Run(session_id,
78 message_type, 78 message_type,
79 message, 79 message,
80 destination_url); 80 destination_url);
81 } 81 }
(...skipping 10 matching lines...) Expand all
92 scoped_ptr< ::media::CdmKeyInformation> cdm_key_information( 92 scoped_ptr< ::media::CdmKeyInformation> cdm_key_information(
93 new ::media::CdmKeyInformation()); 93 new ::media::CdmKeyInformation());
94 cdm_key_information->key_id.assign(key.first.begin(), key.first.end()); 94 cdm_key_information->key_id.assign(key.first.begin(), key.first.end());
95 cdm_keys_info.push_back(cdm_key_information.release()); 95 cdm_keys_info.push_back(cdm_key_information.release());
96 } 96 }
97 session_keys_change_cb_.Run(session_id, true, cdm_keys_info.Pass()); 97 session_keys_change_cb_.Run(session_id, true, cdm_keys_info.Pass());
98 98
99 player_tracker_impl_->NotifyNewKey(); 99 player_tracker_impl_->NotifyNewKey();
100 } 100 }
101 101
102 void BrowserCdmCast::SetServerCertificateHelper(
103 const std::vector<uint8>& certificate_data,
104 scoped_ptr<::media::SimpleCdmPromise> promise) {
105 SetServerCertificate(certificate_data.data(),
106 certificate_data.size(),
107 promise.Pass());
108 }
109
110 void BrowserCdmCast::CreateSessionAndGenerateRequestHelper(
111 ::media::MediaKeys::SessionType session_type,
112 ::media::EmeInitDataType init_data_type,
113 const std::vector<uint8>& init_data,
114 scoped_ptr<::media::NewSessionCdmPromise> promise) {
115 CreateSessionAndGenerateRequest(
116 session_type, init_data_type, init_data.data(), init_data.size(),
117 promise.Pass());
118 }
119
120 void BrowserCdmCast::UpdateSessionHelper(
121 const std::string& session_id,
122 const std::vector<uint8>& response,
123 scoped_ptr<::media::SimpleCdmPromise> promise) {
124 UpdateSession(session_id, response.data(), response.size(), promise.Pass());
125 }
126
127 // A macro runs current member function on |cdm_loop_| thread. 102 // A macro runs current member function on |cdm_loop_| thread.
128 #define FORWARD_ON_CDM_THREAD(param_fn, ...) \ 103 #define FORWARD_ON_CDM_THREAD(param_fn, ...) \
129 cdm_loop_->PostTask( \ 104 cdm_loop_->PostTask( \
130 FROM_HERE, \ 105 FROM_HERE, \
131 base::Bind(&BrowserCdmCast::param_fn, \ 106 base::Bind(&BrowserCdmCast::param_fn, \
132 base::Unretained(browser_cdm_cast_.get()), ##__VA_ARGS__)) 107 base::Unretained(browser_cdm_cast_.get()), ##__VA_ARGS__))
133 108
134 109
135 BrowserCdmCastUi::BrowserCdmCastUi( 110 BrowserCdmCastUi::BrowserCdmCastUi(
136 scoped_ptr<BrowserCdmCast> browser_cdm_cast, 111 scoped_ptr<BrowserCdmCast> browser_cdm_cast,
(...skipping 16 matching lines...) Expand all
153 void BrowserCdmCastUi::UnregisterPlayer(int registration_id) { 128 void BrowserCdmCastUi::UnregisterPlayer(int registration_id) {
154 NOTREACHED() << "UnregisterPlayer should be called on BrowserCdmCast"; 129 NOTREACHED() << "UnregisterPlayer should be called on BrowserCdmCast";
155 } 130 }
156 131
157 BrowserCdmCast* BrowserCdmCastUi::browser_cdm_cast() const { 132 BrowserCdmCast* BrowserCdmCastUi::browser_cdm_cast() const {
158 DCHECK(thread_checker_.CalledOnValidThread()); 133 DCHECK(thread_checker_.CalledOnValidThread());
159 return browser_cdm_cast_.get(); 134 return browser_cdm_cast_.get();
160 } 135 }
161 136
162 void BrowserCdmCastUi::SetServerCertificate( 137 void BrowserCdmCastUi::SetServerCertificate(
163 const uint8* certificate_data, 138 const std::vector<uint8_t>& certificate,
164 int certificate_data_length,
165 scoped_ptr<::media::SimpleCdmPromise> promise) { 139 scoped_ptr<::media::SimpleCdmPromise> promise) {
166 DCHECK(thread_checker_.CalledOnValidThread()); 140 DCHECK(thread_checker_.CalledOnValidThread());
167 FORWARD_ON_CDM_THREAD( 141 FORWARD_ON_CDM_THREAD(
168 SetServerCertificateHelper, 142 SetServerCertificate,
169 std::vector<uint8>(certificate_data, 143 certificate,
170 certificate_data + certificate_data_length),
171 base::Passed(&promise)); 144 base::Passed(&promise));
172 } 145 }
173 146
174 void BrowserCdmCastUi::CreateSessionAndGenerateRequest( 147 void BrowserCdmCastUi::CreateSessionAndGenerateRequest(
175 ::media::MediaKeys::SessionType session_type, 148 ::media::MediaKeys::SessionType session_type,
176 ::media::EmeInitDataType init_data_type, 149 ::media::EmeInitDataType init_data_type,
177 const uint8* init_data, 150 const std::vector<uint8_t>& init_data,
178 int init_data_length,
179 scoped_ptr<::media::NewSessionCdmPromise> promise) { 151 scoped_ptr<::media::NewSessionCdmPromise> promise) {
180 DCHECK(thread_checker_.CalledOnValidThread()); 152 DCHECK(thread_checker_.CalledOnValidThread());
181 FORWARD_ON_CDM_THREAD( 153 FORWARD_ON_CDM_THREAD(
182 CreateSessionAndGenerateRequestHelper, 154 CreateSessionAndGenerateRequest,
183 session_type, 155 session_type,
184 init_data_type, 156 init_data_type,
185 std::vector<uint8>(init_data, init_data + init_data_length), 157 init_data,
186 base::Passed(&promise)); 158 base::Passed(&promise));
187 } 159 }
188 160
189 void BrowserCdmCastUi::LoadSession( 161 void BrowserCdmCastUi::LoadSession(
190 ::media::MediaKeys::SessionType session_type, 162 ::media::MediaKeys::SessionType session_type,
191 const std::string& session_id, 163 const std::string& session_id,
192 scoped_ptr<::media::NewSessionCdmPromise> promise) { 164 scoped_ptr<::media::NewSessionCdmPromise> promise) {
193 DCHECK(thread_checker_.CalledOnValidThread()); 165 DCHECK(thread_checker_.CalledOnValidThread());
194 FORWARD_ON_CDM_THREAD( 166 FORWARD_ON_CDM_THREAD(
195 LoadSession, session_type, session_id, base::Passed(&promise)); 167 LoadSession, session_type, session_id, base::Passed(&promise));
196 } 168 }
197 169
198 void BrowserCdmCastUi::UpdateSession( 170 void BrowserCdmCastUi::UpdateSession(
199 const std::string& session_id, 171 const std::string& session_id,
200 const uint8* response, 172 const std::vector<uint8_t>& response,
201 int response_length,
202 scoped_ptr<::media::SimpleCdmPromise> promise) { 173 scoped_ptr<::media::SimpleCdmPromise> promise) {
203 DCHECK(thread_checker_.CalledOnValidThread()); 174 DCHECK(thread_checker_.CalledOnValidThread());
204 FORWARD_ON_CDM_THREAD( 175 FORWARD_ON_CDM_THREAD(
205 UpdateSessionHelper, 176 UpdateSession,
206 session_id, 177 session_id,
207 std::vector<uint8>(response, response + response_length), 178 response,
208 base::Passed(&promise)); 179 base::Passed(&promise));
209 } 180 }
210 181
211 void BrowserCdmCastUi::CloseSession( 182 void BrowserCdmCastUi::CloseSession(
212 const std::string& session_id, 183 const std::string& session_id,
213 scoped_ptr<::media::SimpleCdmPromise> promise) { 184 scoped_ptr<::media::SimpleCdmPromise> promise) {
214 DCHECK(thread_checker_.CalledOnValidThread()); 185 DCHECK(thread_checker_.CalledOnValidThread());
215 FORWARD_ON_CDM_THREAD(CloseSession, session_id, base::Passed(&promise)); 186 FORWARD_ON_CDM_THREAD(CloseSession, session_id, base::Passed(&promise));
216 } 187 }
217 188
218 void BrowserCdmCastUi::RemoveSession( 189 void BrowserCdmCastUi::RemoveSession(
219 const std::string& session_id, 190 const std::string& session_id,
220 scoped_ptr<::media::SimpleCdmPromise> promise) { 191 scoped_ptr<::media::SimpleCdmPromise> promise) {
221 DCHECK(thread_checker_.CalledOnValidThread()); 192 DCHECK(thread_checker_.CalledOnValidThread());
222 FORWARD_ON_CDM_THREAD(RemoveSession, session_id, base::Passed(&promise)); 193 FORWARD_ON_CDM_THREAD(RemoveSession, session_id, base::Passed(&promise));
223 } 194 }
224 195
225 ::media::CdmContext* BrowserCdmCastUi::GetCdmContext() { 196 ::media::CdmContext* BrowserCdmCastUi::GetCdmContext() {
226 NOTREACHED(); 197 NOTREACHED();
227 return nullptr; 198 return nullptr;
228 } 199 }
229 200
230 } // namespace media 201 } // namespace media
231 } // namespace chromecast 202 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/media/cdm/browser_cdm_cast.h ('k') | chromeos/CHROMEOS_LKGM » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698