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

Side by Side Diff: content/renderer/pepper/content_decryptor_delegate.cc

Issue 657763002: Use scoped_ptr::Pass instead of scoped_ptr::PassAs<T>. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 | « content/renderer/media/crypto/proxy_media_keys.cc ('k') | content/renderer/render_widget.cc » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/renderer/pepper/content_decryptor_delegate.h" 5 #include "content/renderer/pepper/content_decryptor_delegate.h"
6 6
7 #include "base/callback_helpers.h" 7 #include "base/callback_helpers.h"
8 #include "base/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "base/message_loop/message_loop_proxy.h" 9 #include "base/message_loop/message_loop_proxy.h"
10 #include "base/metrics/sparse_histogram.h" 10 #include "base/metrics/sparse_histogram.h"
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 uint32_t certificate_length, 356 uint32_t certificate_length,
357 scoped_ptr<media::SimpleCdmPromise> promise) { 357 scoped_ptr<media::SimpleCdmPromise> promise) {
358 if (!certificate || 358 if (!certificate ||
359 certificate_length < media::limits::kMinCertificateLength || 359 certificate_length < media::limits::kMinCertificateLength ||
360 certificate_length > media::limits::kMaxCertificateLength) { 360 certificate_length > media::limits::kMaxCertificateLength) {
361 promise->reject( 361 promise->reject(
362 media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect certificate."); 362 media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect certificate.");
363 return; 363 return;
364 } 364 }
365 365
366 uint32_t promise_id = SavePromise(promise.PassAs<CdmPromise>()); 366 uint32_t promise_id = SavePromise(promise.Pass());
367 PP_Var certificate_array = 367 PP_Var certificate_array =
368 PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar( 368 PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
369 certificate_length, certificate); 369 certificate_length, certificate);
370 plugin_decryption_interface_->SetServerCertificate( 370 plugin_decryption_interface_->SetServerCertificate(
371 pp_instance_, promise_id, certificate_array); 371 pp_instance_, promise_id, certificate_array);
372 } 372 }
373 373
374 void ContentDecryptorDelegate::CreateSession( 374 void ContentDecryptorDelegate::CreateSession(
375 const std::string& init_data_type, 375 const std::string& init_data_type,
376 const uint8* init_data, 376 const uint8* init_data,
377 int init_data_length, 377 int init_data_length,
378 MediaKeys::SessionType session_type, 378 MediaKeys::SessionType session_type,
379 scoped_ptr<NewSessionCdmPromise> promise) { 379 scoped_ptr<NewSessionCdmPromise> promise) {
380 uint32_t promise_id = SavePromise(promise.PassAs<CdmPromise>()); 380 uint32_t promise_id = SavePromise(promise.Pass());
381 PP_Var init_data_array = 381 PP_Var init_data_array =
382 PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar( 382 PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
383 init_data_length, init_data); 383 init_data_length, init_data);
384 plugin_decryption_interface_->CreateSession( 384 plugin_decryption_interface_->CreateSession(
385 pp_instance_, 385 pp_instance_,
386 promise_id, 386 promise_id,
387 StringVar::StringToPPVar(init_data_type), 387 StringVar::StringToPPVar(init_data_type),
388 init_data_array, 388 init_data_array,
389 MediaSessionTypeToPpSessionType(session_type)); 389 MediaSessionTypeToPpSessionType(session_type));
390 } 390 }
391 391
392 void ContentDecryptorDelegate::LoadSession( 392 void ContentDecryptorDelegate::LoadSession(
393 const std::string& web_session_id, 393 const std::string& web_session_id,
394 scoped_ptr<NewSessionCdmPromise> promise) { 394 scoped_ptr<NewSessionCdmPromise> promise) {
395 uint32_t promise_id = SavePromise(promise.PassAs<CdmPromise>()); 395 uint32_t promise_id = SavePromise(promise.Pass());
396 plugin_decryption_interface_->LoadSession( 396 plugin_decryption_interface_->LoadSession(
397 pp_instance_, promise_id, StringVar::StringToPPVar(web_session_id)); 397 pp_instance_, promise_id, StringVar::StringToPPVar(web_session_id));
398 } 398 }
399 399
400 void ContentDecryptorDelegate::UpdateSession( 400 void ContentDecryptorDelegate::UpdateSession(
401 const std::string& web_session_id, 401 const std::string& web_session_id,
402 const uint8* response, 402 const uint8* response,
403 int response_length, 403 int response_length,
404 scoped_ptr<SimpleCdmPromise> promise) { 404 scoped_ptr<SimpleCdmPromise> promise) {
405 uint32_t promise_id = SavePromise(promise.PassAs<CdmPromise>()); 405 uint32_t promise_id = SavePromise(promise.Pass());
406 PP_Var response_array = 406 PP_Var response_array =
407 PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar( 407 PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
408 response_length, response); 408 response_length, response);
409 plugin_decryption_interface_->UpdateSession( 409 plugin_decryption_interface_->UpdateSession(
410 pp_instance_, 410 pp_instance_,
411 promise_id, 411 promise_id,
412 StringVar::StringToPPVar(web_session_id), 412 StringVar::StringToPPVar(web_session_id),
413 response_array); 413 response_array);
414 } 414 }
415 415
416 void ContentDecryptorDelegate::CloseSession( 416 void ContentDecryptorDelegate::CloseSession(
417 const std::string& web_session_id, 417 const std::string& web_session_id,
418 scoped_ptr<SimpleCdmPromise> promise) { 418 scoped_ptr<SimpleCdmPromise> promise) {
419 if (web_session_id.length() > media::limits::kMaxWebSessionIdLength) { 419 if (web_session_id.length() > media::limits::kMaxWebSessionIdLength) {
420 promise->reject( 420 promise->reject(
421 media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect session."); 421 media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect session.");
422 return; 422 return;
423 } 423 }
424 424
425 uint32_t promise_id = SavePromise(promise.PassAs<CdmPromise>()); 425 uint32_t promise_id = SavePromise(promise.Pass());
426 plugin_decryption_interface_->CloseSession( 426 plugin_decryption_interface_->CloseSession(
427 pp_instance_, promise_id, StringVar::StringToPPVar(web_session_id)); 427 pp_instance_, promise_id, StringVar::StringToPPVar(web_session_id));
428 } 428 }
429 429
430 void ContentDecryptorDelegate::RemoveSession( 430 void ContentDecryptorDelegate::RemoveSession(
431 const std::string& web_session_id, 431 const std::string& web_session_id,
432 scoped_ptr<SimpleCdmPromise> promise) { 432 scoped_ptr<SimpleCdmPromise> promise) {
433 if (web_session_id.length() > media::limits::kMaxWebSessionIdLength) { 433 if (web_session_id.length() > media::limits::kMaxWebSessionIdLength) {
434 promise->reject( 434 promise->reject(
435 media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect session."); 435 media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect session.");
436 return; 436 return;
437 } 437 }
438 438
439 uint32_t promise_id = SavePromise(promise.PassAs<CdmPromise>()); 439 uint32_t promise_id = SavePromise(promise.Pass());
440 plugin_decryption_interface_->RemoveSession( 440 plugin_decryption_interface_->RemoveSession(
441 pp_instance_, promise_id, StringVar::StringToPPVar(web_session_id)); 441 pp_instance_, promise_id, StringVar::StringToPPVar(web_session_id));
442 } 442 }
443 443
444 void ContentDecryptorDelegate::GetUsableKeyIds( 444 void ContentDecryptorDelegate::GetUsableKeyIds(
445 const std::string& web_session_id, 445 const std::string& web_session_id,
446 scoped_ptr<media::KeyIdsPromise> promise) { 446 scoped_ptr<media::KeyIdsPromise> promise) {
447 if (web_session_id.length() > media::limits::kMaxWebSessionIdLength) { 447 if (web_session_id.length() > media::limits::kMaxWebSessionIdLength) {
448 promise->reject( 448 promise->reject(
449 media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect session."); 449 media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect session.");
450 return; 450 return;
451 } 451 }
452 452
453 uint32_t promise_id = SavePromise(promise.PassAs<CdmPromise>()); 453 uint32_t promise_id = SavePromise(promise.Pass());
454 plugin_decryption_interface_->GetUsableKeyIds( 454 plugin_decryption_interface_->GetUsableKeyIds(
455 pp_instance_, promise_id, StringVar::StringToPPVar(web_session_id)); 455 pp_instance_, promise_id, StringVar::StringToPPVar(web_session_id));
456 } 456 }
457 457
458 // TODO(xhwang): Remove duplication of code in Decrypt(), 458 // TODO(xhwang): Remove duplication of code in Decrypt(),
459 // DecryptAndDecodeAudio() and DecryptAndDecodeVideo(). 459 // DecryptAndDecodeAudio() and DecryptAndDecodeVideo().
460 bool ContentDecryptorDelegate::Decrypt( 460 bool ContentDecryptorDelegate::Decrypt(
461 Decryptor::StreamType stream_type, 461 Decryptor::StreamType stream_type,
462 const scoped_refptr<media::DecoderBuffer>& encrypted_buffer, 462 const scoped_refptr<media::DecoderBuffer>& encrypted_buffer,
463 const Decryptor::DecryptCB& decrypt_cb) { 463 const Decryptor::DecryptCB& decrypt_cb) {
(...skipping 860 matching lines...) Expand 10 before | Expand all | Expand 10 after
1324 1324
1325 scoped_ptr<CdmPromise> ContentDecryptorDelegate::TakePromise( 1325 scoped_ptr<CdmPromise> ContentDecryptorDelegate::TakePromise(
1326 uint32_t promise_id) { 1326 uint32_t promise_id) {
1327 PromiseMap::iterator it = promises_.find(promise_id); 1327 PromiseMap::iterator it = promises_.find(promise_id);
1328 if (it == promises_.end()) 1328 if (it == promises_.end())
1329 return scoped_ptr<CdmPromise>(); 1329 return scoped_ptr<CdmPromise>();
1330 return promises_.take_and_erase(it); 1330 return promises_.take_and_erase(it);
1331 } 1331 }
1332 1332
1333 } // namespace content 1333 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/crypto/proxy_media_keys.cc ('k') | content/renderer/render_widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698