Windows: Fix warning treated as error with Widevine CDM 64-bit build (issue #1631)

This commit is contained in:
Marshall Greenblatt 2015-09-16 13:36:48 +03:00
parent 2c3d761ad0
commit 846107b291
2 changed files with 44 additions and 0 deletions

View File

@ -202,4 +202,11 @@ patches = [
'name': 'supports_user_data_1710',
'path': '../base/',
},
{
# Fix warning treated as error with Widevine CDM 64-bit Windows build.
# https://bitbucket.org/chromiumembedded/cef/issues/1631/
# https://codereview.chromium.org/1326413003
'name': 'widevine_cdm_1631',
'path': '../media/cdm/stub/',
},
]

View File

@ -0,0 +1,37 @@
diff --git stub_cdm.cc stub_cdm.cc
index 0bfa25e..0db23db 100644
--- stub_cdm.cc
+++ stub_cdm.cc
@@ -5,6 +5,7 @@
#include "media/cdm/stub/stub_cdm.h"
#include "base/logging.h"
+#include "base/numerics/safe_conversions.h"
#include "base/strings/string_number_conversions.h"
// Version number for this stub. The third number represents the
@@ -61,9 +62,11 @@ void StubCdm::CreateSessionAndGenerateRequest(
// Provide a dummy message (with a trivial session ID) to enable some testing
// and be consistent with existing testing without a license server.
std::string session_id(base::UintToString(next_session_id_++));
- host_->OnResolveNewSessionPromise(promise_id, session_id.data(),
- session_id.length());
- host_->OnSessionMessage(session_id.data(), session_id.length(),
+ host_->OnResolveNewSessionPromise(
+ promise_id, session_id.data(),
+ base::checked_cast<uint32_t>(session_id.length()));
+ host_->OnSessionMessage(session_id.data(),
+ base::checked_cast<uint32_t>(session_id.length()),
cdm::kLicenseRequest, nullptr, 0, nullptr, 0);
}
@@ -156,7 +159,8 @@ void StubCdm::OnQueryOutputProtectionStatus(
void StubCdm::FailRequest(uint32 promise_id) {
std::string message("Operation not supported by stub CDM.");
host_->OnRejectPromise(promise_id, cdm::kInvalidAccessError, 0,
- message.data(), message.length());
+ message.data(),
+ base::checked_cast<uint32_t>(message.length()));
}
} // namespace media