Index: media/blink/key_system_config_selector.cc |
diff --git a/media/blink/key_system_config_selector.cc b/media/blink/key_system_config_selector.cc |
index ff53449d83c8a3aedf4a83c0f541370be0129cde..29fe49288c50ef1e3352ce6347c3c2b33449e440 100644 |
--- a/media/blink/key_system_config_selector.cc |
+++ b/media/blink/key_system_config_selector.cc |
@@ -741,11 +741,15 @@ void KeySystemConfigSelector::SelectConfigInternal( |
<< "permission was denied."; |
continue; |
} |
- media_permission_->RequestPermission( |
- MediaPermission::PROTECTED_MEDIA_IDENTIFIER, |
- GURL(request->security_origin.toString()), |
- base::Bind(&KeySystemConfigSelector::OnPermissionResult, |
- weak_factory_.GetWeakPtr(), base::Passed(&request))); |
+ { |
+ // Note: the GURL must not be constructed inline because |
+ // base::Passed(&request) sets |request| to null. |
+ GURL security_origin(request->security_origin.toString()); |
+ media_permission_->RequestPermission( |
+ MediaPermission::PROTECTED_MEDIA_IDENTIFIER, security_origin, |
+ base::Bind(&KeySystemConfigSelector::OnPermissionResult, |
+ weak_factory_.GetWeakPtr(), base::Passed(&request))); |
+ } |
return; |
case CONFIGURATION_SUPPORTED: |
cdm_config.allow_distinctive_identifier = |