Upstream version 11.39.266.0
[platform/framework/web/crosswalk.git] / src / mojo / spy / ui / spy_shell.js
1 // Copyright 2014 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 'use strict';
6
7 tvcm.require('ui.spy');
8 tvcm.require('tvcm.ui');
9 tvcm.require('tvcm.ui.dom_helpers');
10 tvcm.requireTemplate('ui.spy_shell');
11
12 tvcm.exportTo('ui', function() {
13   /**
14    * @constructor
15    */
16   var SpyShell = tvcm.ui.define('x-spy-shell');
17
18   SpyShell.prototype = {
19     __proto__: HTMLUnknownElement.prototype,
20
21     decorate: function(socketURL) {
22       var node = tvcm.instantiateTemplate('#x-spy-shell-template');
23       this.appendChild(node);
24
25       this.socketURL_ = socketURL;
26       this.conn_ = undefined;
27
28       this.statusEl_ = this.querySelector('#status');
29       this.statusEl_.textContent = 'Not connected';
30
31       this.spy_ = this.querySelector('x-spy');
32       tvcm.ui.decorate(this.spy_, ui.Spy);
33
34       this.openConnection_();
35     },
36
37     get socketURL() {
38       return this.socketURL_;
39     },
40
41     openConnection_: function() {
42       if (!(this.conn_ == undefined ||
43             this.conn_.readyState === undefined ||
44             conn.readyState > 1)) {
45         return;
46       }
47
48       this.conn_ = new WebSocket(this.socketURL_);
49       this.conn_.onopen = function() {
50         this.statusEl_.textContent = 'connected at ' + this.socketURL_;
51         this.spy_.connection = this.conn_;
52       }.bind(this);
53
54       this.conn_.onclose = function(event) {
55         this.statusEl_.textContent = 'connection closed';
56         this.spy_.connection = undefined;
57       }.bind(this);
58       this.conn_.onerror = function(event) {
59         this.statusEl_.innerHTML = 'got error';
60       }.bind(this);
61     }
62
63   };
64
65   return {
66     SpyShell: SpyShell
67   };
68 });