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

Side by Side Diff: remoting/webapp/crd/js/cast_extension_handler.js

Issue 1016623002: [Webapp Refactor] Reparent the ConnectedView into the delegate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Please diff this patch against patch set 1 Created 5 years, 9 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Description of this file. 6 * @fileoverview Description of this file.
7 * Class handling interaction with the cast extension session of the Chromoting 7 * Class handling interaction with the cast extension session of the Chromoting
8 * host. It receives and sends extension messages from/to the host through 8 * host. It receives and sends extension messages from/to the host through
9 * the client session. It uses the Google Cast Chrome Sender API library to 9 * the client session. It uses the Google Cast Chrome Sender API library to
10 * interact with nearby Cast receivers. 10 * interact with nearby Cast receivers.
(...skipping 23 matching lines...) Expand all
34 /** @private {string} */ 34 /** @private {string} */
35 this.kApplicationId_ = "8A1211E3"; 35 this.kApplicationId_ = "8A1211E3";
36 36
37 /** @private {Array<Object>} */ 37 /** @private {Array<Object>} */
38 this.messageQueue_ = []; 38 this.messageQueue_ = [];
39 39
40 /** @private {?function(string,string)} */ 40 /** @private {?function(string,string)} */
41 this.sendMessageToHostCallback_ = null; 41 this.sendMessageToHostCallback_ = null;
42 }; 42 };
43 43
44 /** @return {string} */ 44 /** @private {string} */
45 remoting.CastExtensionHandler.prototype.getType = function() { 45 remoting.CastExtensionHandler.EXTENSION_TYPE = 'cast_message';
46 return 'cast_message'; 46
47 /** @return {Array<string>} */
48 remoting.CastExtensionHandler.prototype.getExtensionTypes = function() {
49 return [remoting.CastExtensionHandler.EXTENSION_TYPE];
47 }; 50 };
48 51
49 /** 52 /**
50 * The id of the script node. 53 * The id of the script node.
51 * @private {string} 54 * @private {string}
52 */ 55 */
53 remoting.CastExtensionHandler.prototype.SCRIPT_NODE_ID_ = 'cast-script-node'; 56 remoting.CastExtensionHandler.prototype.SCRIPT_NODE_ID_ = 'cast-script-node';
54 57
55 /** 58 /**
56 * Attempts to load the Google Cast Chrome Sender API libary. 59 * Attempts to load the Google Cast Chrome Sender API libary.
57 * 60 *
58 * @param {function(string,string)} sendMessageToHost Callback to send a message 61 * @param {function(string,string)} sendMessageToHost Callback to send a message
59 * to the host. 62 * to the host.
60 */ 63 */
61 remoting.CastExtensionHandler.prototype.start = function(sendMessageToHost) { 64 remoting.CastExtensionHandler.prototype.startExtension =
65 function(sendMessageToHost) {
62 this.sendMessageToHostCallback_ = sendMessageToHost; 66 this.sendMessageToHostCallback_ = sendMessageToHost;
63 67
64 var node = document.getElementById(this.SCRIPT_NODE_ID_); 68 var node = document.getElementById(this.SCRIPT_NODE_ID_);
65 if (node) { 69 if (node) {
66 console.error( 70 console.error(
67 'Multiple calls to CastExtensionHandler.start_ not expected.'); 71 'Multiple calls to CastExtensionHandler.start_ not expected.');
68 return; 72 return;
69 } 73 }
70 74
71 // Create a script node to load the Cast Sender API. 75 // Create a script node to load the Cast Sender API.
(...skipping 11 matching lines...) Expand all
83 }; 87 };
84 var onLoadError = function(event) { 88 var onLoadError = function(event) {
85 console.error("Failed to load Chrome Cast Sender API."); 89 console.error("Failed to load Chrome Cast Sender API.");
86 } 90 }
87 node.addEventListener('load', onLoad, false); 91 node.addEventListener('load', onLoad, false);
88 node.addEventListener('error', onLoadError, false); 92 node.addEventListener('error', onLoadError, false);
89 }; 93 };
90 94
91 /** 95 /**
92 * Process Cast Extension Messages from the Chromoting host. 96 * Process Cast Extension Messages from the Chromoting host.
93 * @param {string} msgString The extension message's data. 97 *
98 * @param {string} type The message type.
99 * @param {Object} message The parsed extension message data.
100 * @return {boolean} True if the extension message was handled.
94 */ 101 */
95 remoting.CastExtensionHandler.prototype.onMessage = function(msgString) { 102 remoting.CastExtensionHandler.prototype.onExtensionMessage =
96 var message = getJsonObjectFromString(msgString); 103 function(type, message) {
97
98 // Save messages to send after a session is established. 104 // Save messages to send after a session is established.
99 this.messageQueue_.push(message); 105 this.messageQueue_.push(message);
100 // Trigger the sending of pending messages, followed by the one just 106 // Trigger the sending of pending messages, followed by the one just
101 // received. 107 // received.
102 if (this.session_) { 108 if (this.session_) {
103 this.sendPendingMessages_(); 109 this.sendPendingMessages_();
104 } 110 }
111 return true;
105 }; 112 };
106 113
107 /** 114 /**
108 * Send cast-extension messages through the host via the plugin. 115 * Send cast-extension messages through the host via the plugin.
109 * @param {Object} data The JSON response to be sent to the host. The 116 * @param {Object} data The JSON response to be sent to the host. The
110 * response object must contain the appropriate keys. 117 * response object must contain the appropriate keys.
111 * @private 118 * @private
112 */ 119 */
113 remoting.CastExtensionHandler.prototype.sendMessageToHost_ = function(data) { 120 remoting.CastExtensionHandler.prototype.sendMessageToHost_ = function(data) {
114 this.sendMessageToHostCallback_(this.getType(), JSON.stringify(data)); 121 this.sendMessageToHostCallback_(remoting.CastExtensionHandler.EXTENSION_TYPE,
122 JSON.stringify(data));
115 }; 123 };
116 124
117 /** 125 /**
118 * Send pending messages from the host to the receiver app. 126 * Send pending messages from the host to the receiver app.
119 * @private 127 * @private
120 */ 128 */
121 remoting.CastExtensionHandler.prototype.sendPendingMessages_ = function() { 129 remoting.CastExtensionHandler.prototype.sendPendingMessages_ = function() {
122 var len = this.messageQueue_.length; 130 var len = this.messageQueue_.length;
123 for(var i = 0; i<len; i++) { 131 for(var i = 0; i<len; i++) {
124 this.session_.sendMessage(this.kCastNamespace_, 132 this.session_.sendMessage(this.kCastNamespace_,
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 }; 346 };
339 347
340 /** 348 /**
341 * Listener invoked when we fail to stop the receiver application. 349 * Listener invoked when we fail to stop the receiver application.
342 * 350 *
343 * @param {chrome.cast.Error} error The error code. 351 * @param {chrome.cast.Error} error The error code.
344 */ 352 */
345 remoting.CastExtensionHandler.prototype.onStopAppError = function(error) { 353 remoting.CastExtensionHandler.prototype.onStopAppError = function(error) {
346 console.error('Error Stopping App: ', error); 354 console.error('Error Stopping App: ', error);
347 }; 355 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698