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

Side by Side Diff: webkit/plugins/ppapi/content_decryptor_delegate.cc

Issue 11348365: Encrypted Media: Allows empty key message to be fired. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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 | Annotate | Revision Log
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 "webkit/plugins/ppapi/content_decryptor_delegate.h" 5 #include "webkit/plugins/ppapi/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_proxy.h" 9 #include "base/message_loop_proxy.h"
10 #include "media/base/audio_decoder_config.h" 10 #include "media/base/audio_decoder_config.h"
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 633
634 StringVar* key_system_string = StringVar::FromPPVar(key_system_var); 634 StringVar* key_system_string = StringVar::FromPPVar(key_system_var);
635 StringVar* session_id_string = StringVar::FromPPVar(session_id_var); 635 StringVar* session_id_string = StringVar::FromPPVar(session_id_var);
636 StringVar* default_url_string = StringVar::FromPPVar(default_url_var); 636 StringVar* default_url_string = StringVar::FromPPVar(default_url_var);
637 637
638 if (!key_system_string || !session_id_string || !default_url_string) { 638 if (!key_system_string || !session_id_string || !default_url_string) {
639 decryptor_client_->KeyError("", "", media::Decryptor::kUnknownError, 0); 639 decryptor_client_->KeyError("", "", media::Decryptor::kUnknownError, 0);
640 return; 640 return;
641 } 641 }
642 642
643 EnterResourceNoLock<PPB_Buffer_API> enter(message_resource, true); 643 scoped_array<uint8> message_array;
644 if (!enter.succeeded()) { 644 int message_size = 0;
645 decryptor_client_->KeyError(key_system_string->value(), 645
646 session_id_string->value(), 646 if (message_resource) {
647 media::Decryptor::kUnknownError, 647 EnterResourceNoLock<PPB_Buffer_API> enter(message_resource, true);
648 0); 648 if (!enter.succeeded()) {
649 return; 649 decryptor_client_->KeyError(key_system_string->value(),
650 session_id_string->value(),
651 media::Decryptor::kUnknownError,
652 0);
653 return;
654 }
655
656 BufferAutoMapper mapper(enter.object());
657 if (!mapper.data() || !mapper.size()) {
658 decryptor_client_->KeyError(key_system_string->value(),
659 session_id_string->value(),
660 media::Decryptor::kUnknownError,
661 0);
662 return;
663 }
664
665 message_size = mapper.size();
666 message_array.reset(new uint8[message_size]);
667 memcpy(message_array.get(), mapper.data(), mapper.size());
650 } 668 }
651 669
652 BufferAutoMapper mapper(enter.object()); 670 LOG(ERROR) << "ContentDecryptorDelegate::KeyMessage";
ddorwin 2012/12/04 01:44:10 Did you mean to keep this here? Should at least no
xhwang 2012/12/04 01:58:51 oops, removed.
653 scoped_array<uint8> message_array(new uint8[mapper.size()]);
654 if (mapper.data() && mapper.size())
655 memcpy(message_array.get(), mapper.data(), mapper.size());
656 671
657 decryptor_client_->KeyMessage(key_system_string->value(), 672 decryptor_client_->KeyMessage(key_system_string->value(),
658 session_id_string->value(), 673 session_id_string->value(),
659 message_array.Pass(), 674 message_array.Pass(),
660 mapper.size(), 675 message_size,
661 default_url_string->value()); 676 default_url_string->value());
662 } 677 }
663 678
664 void ContentDecryptorDelegate::KeyError(PP_Var key_system_var, 679 void ContentDecryptorDelegate::KeyError(PP_Var key_system_var,
665 PP_Var session_id_var, 680 PP_Var session_id_var,
666 int32_t media_error, 681 int32_t media_error,
667 int32_t system_code) { 682 int32_t system_code) {
668 if (!decryptor_client_) 683 if (!decryptor_client_)
669 return; 684 return;
670 685
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
969 return false; 984 return false;
970 } 985 }
971 memcpy(mapper.data(), data, size); 986 memcpy(mapper.data(), data, size);
972 987
973 *resource = media_resource; 988 *resource = media_resource;
974 return true; 989 return true;
975 } 990 }
976 991
977 } // namespace ppapi 992 } // namespace ppapi
978 } // namespace webkit 993 } // namespace webkit
OLDNEW
« webkit/media/crypto/ppapi/clear_key_cdm.cc ('K') | « webkit/media/crypto/ppapi/clear_key_cdm.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698