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

Side by Side Diff: chrome/browser/resources/media_internals/item_store.js

Issue 12153002: Move chrome://media-internals to content. This allows us to hide implementation details from the pu… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 cr.define('media', function() {
6
7 /**
8 * This class stores hashes by their id field and provides basic methods for
9 * iterating over the collection.
10 * @constructor
11 */
12 function ItemStore() {
13 this.items_ = {};
14 }
15
16 ItemStore.prototype = {
17 /**
18 * Get a sorted list of item ids.
19 * @return {Array} A sorted array of ids.
20 */
21 ids: function() {
22 var ids = [];
23 for (var i in this.items_)
24 ids.push(i);
25 return ids.sort();
26 },
27
28 /**
29 * Add an item to the store.
30 * @param {Object} item The item to be added.
31 * @param {string} item.id The id of the item.
32 */
33 addItem: function(item) {
34 this.items_[item.id] = item;
35 },
36
37 /**
38 * Add a dictionary of items to the store.
39 * @param {Object} items A dictionary of individual items. The keys are
40 * irrelevant but each must have an id field.
41 */
42 addItems: function(items) {
43 for (id in items)
44 this.addItem(items[id]);
45 },
46
47 /**
48 * Remove an item from the store.
49 * @param {string} id The id of the item to be removed.
50 */
51 removeItem: function(id) {
52 delete this.items_[id];
53 },
54
55 /**
56 * Map this itemStore to an Array. Items are sorted by id.
57 * @param {function(*)} mapper The mapping function applied to each item.
58 * @return {Array} An array of mapped items.
59 */
60 map: function(mapper) {
61 var items = this.items_;
62 var ids = this.ids();
63 return ids.map(function(id) { return mapper(items[id]); });
64 }
65 };
66
67 return {
68 ItemStore: ItemStore
69 };
70 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698