// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. 'use strict'; base.require('ui'); base.exportTo('tracing.analysis', function() { var ObjectSnapshotView = ui.define('object-snapshot-view'); ObjectSnapshotView.prototype = { __proto__: HTMLDivElement.prototype, decorate: function() { this.objectSnapshot_ = undefined; }, set modelObject(obj) { this.objectSnapshot = obj; }, get modelObject() { return this.objectSnapshot; }, get objectSnapshot() { return this.objectSnapshot_; }, set objectSnapshot(i) { this.objectSnapshot_ = i; this.updateContents(); }, updateContents: function() { throw new Error('Not implemented'); } }; ObjectSnapshotView.typeNameToViewInfoMap = {}; ObjectSnapshotView.register = function(typeName, viewConstructor, opt_options) { if (ObjectSnapshotView.typeNameToViewInfoMap[typeName]) throw new Error('Handler already registered for ' + typeName); var options = opt_options || { showInTrackView: true }; ObjectSnapshotView.typeNameToViewInfoMap[typeName] = { constructor: viewConstructor, options: options }; }; ObjectSnapshotView.unregister = function(typeName) { if (ObjectSnapshotView.typeNameToViewInfoMap[typeName] === undefined) throw new Error(typeName + ' not registered'); delete ObjectSnapshotView.typeNameToViewInfoMap[typeName]; }; ObjectSnapshotView.getViewInfo = function(typeName) { return ObjectSnapshotView.typeNameToViewInfoMap[typeName]; }; return { ObjectSnapshotView: ObjectSnapshotView }; });