From: Pawel Andruszkiewicz
Date: Wed, 29 Apr 2015 07:34:12 +0000 (+0200)
Subject: [Utils] Added support for sendRuntimeMessage().
X-Git-Tag: submit/tizen_tv/20150603.064601~1^2~115
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cc785b31d562ae83419887dfd73e0fd1b938be15;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git
[Utils] Added support for sendRuntimeMessage().
Change-Id: I48303bd890e58cf0a230aae93f12dbfbb03ce46b
---
diff --git a/src/utils/utils_api.js b/src/utils/utils_api.js
index 145ad2aa..a9d5dd46 100644
--- a/src/utils/utils_api.js
+++ b/src/utils/utils_api.js
@@ -799,20 +799,34 @@ var NativeManager = function(extension) {
// TODO: Remove mockup if WRT implements sendRuntimeMessage
// This is temporary mockup!
- extension.sendRuntimeMessage = extension.sendRuntimeMessage || function(){
- console.error("Runtime did not implement extension.sendRuntimeMessage!");
+ extension.sendRuntimeMessage = extension.sendRuntimeMessage || function() {
+ console.error('Runtime did not implement extension.sendRuntimeMessage!');
throw new WebAPIException(WebAPIException.UNKNOWN_ERR,
- 'Runtime did not implement extension.sendRuntimeMessage!');
- }
+ 'Runtime did not implement extension.sendRuntimeMessage!');
+ };
+
+ extension.sendRuntimeAsyncMessage = extension.sendRuntimeAsyncMessage || function() {
+ console.error('Runtime did not implement extension.sendRuntimeAsyncMessage!');
+ throw new WebAPIException(WebAPIException.UNKNOWN_ERR,
+ 'Runtime did not implement extension.sendRuntimeAsyncMessage!');
+ };
+
+ extension.sendRuntimeSyncMessage = extension.sendRuntimeSyncMessage || function() {
+ console.error('Runtime did not implement extension.sendRuntimeSyncMessage!');
+ throw new WebAPIException(WebAPIException.UNKNOWN_ERR,
+ 'Runtime did not implement extension.sendRuntimeSyncMessage!');
+ };
// check extension prototype
if (!extension || !extension.internal ||
!_type.isFunction(extension.postMessage) ||
!_type.isFunction(extension.internal.sendSyncMessage) ||
!_type.isFunction(extension.sendRuntimeMessage) ||
+ !_type.isFunction(extension.sendRuntimeAsyncMessage) ||
+ !_type.isFunction(extension.sendRuntimeSyncMessage) ||
!_type.isFunction(extension.setMessageListener)) {
throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR,
- 'Wrong extension object passed');
+ 'Wrong extension object passed');
}
Object.defineProperties(this, {
@@ -887,9 +901,30 @@ NativeManager.prototype.callSync = function(cmd, args) {
return JSON.parse(this.extension.internal.sendSyncMessage(request));
};
-NativeManager.prototype.sendRuntimeMessage = function(cmd) {
- return this.extension.sendRuntimeMessage(cmd);
-}
+NativeManager.prototype.sendRuntimeMessage = function(msg, body) {
+ return this.extension.sendRuntimeMessage(msg, body || '');
+};
+
+NativeManager.prototype.sendRuntimeAsyncMessage = function(msg, body, callback) {
+ var handler = function(response) {
+ if (_type.isFunction(callback)) {
+ var result = {};
+ if ('success' === response) {
+ result.status = 'success';
+ } else {
+ result.status = 'error';
+ result.error = new WebAPIException(WebAPIException.UNKNOWN_ERR,
+ 'Runtime message failure');
+ }
+ callback(result);
+ }
+ };
+ return this.extension.sendRuntimeAsyncMessage(msg, body || '', handler);
+};
+
+NativeManager.prototype.sendRuntimeSyncMessage = function(msg, body) {
+ return this.extension.sendRuntimeSyncMessage(msg, body || '');
+};
NativeManager.prototype.addListener = function(name, callback) {
if (!_type.isString(name) || !name.length) {