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

Unified Diff: Source/modules/encryptedmedia/MediaKeyStatusMap.cpp

Issue 920713002: Add Maplike<> utility mixin class for implementing maplike interfaces (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@idl-iterable-etc-typedefs
Patch Set: drop some includes Created 5 years, 10 months 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 side-by-side diff with in-line comments
Download patch
Index: Source/modules/encryptedmedia/MediaKeyStatusMap.cpp
diff --git a/Source/modules/encryptedmedia/MediaKeyStatusMap.cpp b/Source/modules/encryptedmedia/MediaKeyStatusMap.cpp
index d3394c7a14a51970f09ac5b7d1b75dc79053b81e..1da57b9b0a55f56e603af4e5c336b054b01ead5a 100644
--- a/Source/modules/encryptedmedia/MediaKeyStatusMap.cpp
+++ b/Source/modules/encryptedmedia/MediaKeyStatusMap.cpp
@@ -5,8 +5,6 @@
#include "config.h"
#include "modules/encryptedmedia/MediaKeyStatusMap.h"
-#include "bindings/core/v8/ExceptionState.h"
-#include "bindings/core/v8/ScriptState.h"
#include "core/dom/DOMArrayBuffer.h"
#include "core/dom/DOMArrayPiece.h"
#include "public/platform/WebData.h"
@@ -50,7 +48,7 @@ private:
};
// Represents an Iterator that loops through the set of MapEntrys.
-class MapIterationSource final : public PairIterable<DOMArrayBuffer*, String>::IterationSource {
+class MapIterationSource final : public PairIterable<ArrayBufferOrArrayBufferView, String>::IterationSource {
public:
MapIterationSource(MediaKeyStatusMap* map)
: m_map(map)
@@ -58,7 +56,7 @@ public:
{
}
- bool next(ScriptState* scriptState, DOMArrayBuffer*& key, String& value, ExceptionState&) override
+ bool next(ScriptState* scriptState, ArrayBufferOrArrayBufferView& key, String& value, ExceptionState&) override
{
// This simply advances an index and returns the next value if any,
// so if the iterated object is mutated values may be skipped.
@@ -66,15 +64,15 @@ public:
return false;
const auto& entry = m_map->at(m_current++);
- key = entry.keyId();
+ key.setArrayBuffer(entry.keyId());
value = entry.status();
return true;
}
- virtual void trace(Visitor* visitor) override
+ void trace(Visitor* visitor) override
{
visitor->trace(m_map);
- PairIterable<DOMArrayBuffer*, String>::IterationSource::trace(visitor);
+ PairIterable<ArrayBufferOrArrayBufferView, String>::IterationSource::trace(visitor);
}
private:
@@ -100,19 +98,6 @@ const MediaKeyStatusMap::MapEntry& MediaKeyStatusMap::at(size_t index) const
return *m_entries.at(index);
}
-String MediaKeyStatusMap::get(const DOMArrayPiece& key)
-{
- // If |key| is not found this returns the null string. However, it shows
- // up in JavaScript as "".
- size_t index = indexOf(key);
- return (index < m_entries.size()) ? at(index).status() : String();
-}
-
-bool MediaKeyStatusMap::has(const DOMArrayPiece& key) const
-{
- return indexOf(key) < m_entries.size();
-}
-
size_t MediaKeyStatusMap::indexOf(const DOMArrayPiece& key) const
{
for (size_t index = 0; index < m_entries.size(); ++index) {
@@ -125,11 +110,21 @@ size_t MediaKeyStatusMap::indexOf(const DOMArrayPiece& key) const
return m_entries.size();
}
-PairIterable<DOMArrayBuffer*, String>::IterationSource* MediaKeyStatusMap::startIteration(ScriptState*, ExceptionState&)
+PairIterable<ArrayBufferOrArrayBufferView, String>::IterationSource* MediaKeyStatusMap::startIteration(ScriptState*, ExceptionState&)
{
return new MapIterationSource(this);
}
+bool MediaKeyStatusMap::getMapEntry(ScriptState*, const ArrayBufferOrArrayBufferView& key, String& value, ExceptionState&)
+{
+ size_t index = indexOf(key);
+ if (index < m_entries.size()) {
+ value = at(index).status();
+ return true;
+ }
+ return false;
+}
+
void MediaKeyStatusMap::trace(Visitor* visitor)
{
visitor->trace(m_entries);
« no previous file with comments | « Source/modules/encryptedmedia/MediaKeyStatusMap.h ('k') | Source/modules/encryptedmedia/MediaKeyStatusMap.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698