| Index: third_party/WebKit/Source/modules/encryptedmedia/MediaKeyStatusMap.cpp
|
| diff --git a/third_party/WebKit/Source/modules/encryptedmedia/MediaKeyStatusMap.cpp b/third_party/WebKit/Source/modules/encryptedmedia/MediaKeyStatusMap.cpp
|
| index b6fcf01795926720db9597feab940ee6d75fd096..068ff6183b06a8920208fc132912eafe0a2f8d2e 100644
|
| --- a/third_party/WebKit/Source/modules/encryptedmedia/MediaKeyStatusMap.cpp
|
| +++ b/third_party/WebKit/Source/modules/encryptedmedia/MediaKeyStatusMap.cpp
|
| @@ -11,6 +11,7 @@
|
| #include "wtf/text/WTFString.h"
|
|
|
| #include <algorithm>
|
| +#include <limits>
|
|
|
| namespace blink {
|
|
|
| @@ -140,23 +141,28 @@ size_t MediaKeyStatusMap::indexOf(const DOMArrayPiece& key) const
|
| return index;
|
| }
|
|
|
| - // Not found, so return an index outside the valid range.
|
| - return m_entries.size();
|
| + // Not found, so return an index outside the valid range. The caller
|
| + // must ensure this value is not exposed outside this class.
|
| + return std::numeric_limits<size_t>::max();
|
| }
|
|
|
| -PairIterable<ArrayBufferOrArrayBufferView, String>::IterationSource* MediaKeyStatusMap::startIteration(ScriptState*, ExceptionState&)
|
| +bool MediaKeyStatusMap::has(const ArrayBufferOrArrayBufferView& keyId)
|
| {
|
| - return new MapIterationSource(this);
|
| + size_t index = indexOf(keyId);
|
| + return index < m_entries.size();
|
| }
|
|
|
| -bool MediaKeyStatusMap::getMapEntry(ScriptState*, const ArrayBufferOrArrayBufferView& key, String& value, ExceptionState&)
|
| +ScriptValue MediaKeyStatusMap::get(ScriptState* scriptState, const ArrayBufferOrArrayBufferView& keyId)
|
| {
|
| - size_t index = indexOf(key);
|
| - if (index < m_entries.size()) {
|
| - value = at(index).status();
|
| - return true;
|
| - }
|
| - return false;
|
| + size_t index = indexOf(keyId);
|
| + if (index >= m_entries.size())
|
| + return ScriptValue(scriptState, v8::Undefined(scriptState->isolate()));
|
| + return ScriptValue::from(scriptState, at(index).status());
|
| +}
|
| +
|
| +PairIterable<ArrayBufferOrArrayBufferView, String>::IterationSource* MediaKeyStatusMap::startIteration(ScriptState*, ExceptionState&)
|
| +{
|
| + return new MapIterationSource(this);
|
| }
|
|
|
| DEFINE_TRACE(MediaKeyStatusMap)
|
|
|