OLD | NEW |
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 "key_system_config_selector.h" | 5 #include "key_system_config_selector.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
734 &config_state, &accumulated_configuration); | 734 &config_state, &accumulated_configuration); |
735 switch (support) { | 735 switch (support) { |
736 case CONFIGURATION_NOT_SUPPORTED: | 736 case CONFIGURATION_NOT_SUPPORTED: |
737 continue; | 737 continue; |
738 case CONFIGURATION_REQUIRES_PERMISSION: | 738 case CONFIGURATION_REQUIRES_PERMISSION: |
739 if (request->was_permission_requested) { | 739 if (request->was_permission_requested) { |
740 DVLOG(2) << "Rejecting requested configuration because " | 740 DVLOG(2) << "Rejecting requested configuration because " |
741 << "permission was denied."; | 741 << "permission was denied."; |
742 continue; | 742 continue; |
743 } | 743 } |
744 media_permission_->RequestPermission( | 744 { |
745 MediaPermission::PROTECTED_MEDIA_IDENTIFIER, | 745 // Note: the GURL must not be constructed inline because |
746 GURL(request->security_origin.toString()), | 746 // base::Passed(&request) sets |request| to null. |
747 base::Bind(&KeySystemConfigSelector::OnPermissionResult, | 747 GURL security_origin(request->security_origin.toString()); |
748 weak_factory_.GetWeakPtr(), base::Passed(&request))); | 748 media_permission_->RequestPermission( |
| 749 MediaPermission::PROTECTED_MEDIA_IDENTIFIER, security_origin, |
| 750 base::Bind(&KeySystemConfigSelector::OnPermissionResult, |
| 751 weak_factory_.GetWeakPtr(), base::Passed(&request))); |
| 752 } |
749 return; | 753 return; |
750 case CONFIGURATION_SUPPORTED: | 754 case CONFIGURATION_SUPPORTED: |
751 cdm_config.allow_distinctive_identifier = | 755 cdm_config.allow_distinctive_identifier = |
752 (accumulated_configuration.distinctiveIdentifier == | 756 (accumulated_configuration.distinctiveIdentifier == |
753 blink::WebMediaKeySystemConfiguration::Requirement::Required); | 757 blink::WebMediaKeySystemConfiguration::Requirement::Required); |
754 cdm_config.allow_persistent_state = | 758 cdm_config.allow_persistent_state = |
755 (accumulated_configuration.persistentState == | 759 (accumulated_configuration.persistentState == |
756 blink::WebMediaKeySystemConfiguration::Requirement::Required); | 760 blink::WebMediaKeySystemConfiguration::Requirement::Required); |
757 cdm_config.use_hw_secure_codecs = | 761 cdm_config.use_hw_secure_codecs = |
758 config_state.AreHwSecureCodecsRequired(); | 762 config_state.AreHwSecureCodecsRequired(); |
(...skipping 10 matching lines...) Expand all Loading... |
769 | 773 |
770 void KeySystemConfigSelector::OnPermissionResult( | 774 void KeySystemConfigSelector::OnPermissionResult( |
771 scoped_ptr<SelectionRequest> request, | 775 scoped_ptr<SelectionRequest> request, |
772 bool is_permission_granted) { | 776 bool is_permission_granted) { |
773 request->was_permission_requested = true; | 777 request->was_permission_requested = true; |
774 request->is_permission_granted = is_permission_granted; | 778 request->is_permission_granted = is_permission_granted; |
775 SelectConfigInternal(request.Pass()); | 779 SelectConfigInternal(request.Pass()); |
776 } | 780 } |
777 | 781 |
778 } // namespace media | 782 } // namespace media |
OLD | NEW |