%define crosswalk_extensions_path %{_libdir}/%{crosswalk_extensions}
Name: webapi-plugins
- Version: 2.44
-Version: 2.40
++Version: 2.45
Release: 0
License: Apache-2.0 and BSD-3-Clause and MIT
Group: Development/Libraries
%define tizen_common_feature_bluetooth_support 1
%define tizen_common_feature_bookmark_support 0
%define tizen_common_feature_calendar_support 0
+%define tizen_common_feature_callhistory_support 0
%define tizen_common_feature_contact_support 0
%define tizen_common_feature_content_support 1
%define tizen_common_feature_datacontrol_support 0
%define tizen_common_feature_filesystem_support 1
%define tizen_common_feature_fm_radio_support 0
%define tizen_common_feature_ham_support 0
+%define tizen_common_feature_inputdevice_support 0
%define tizen_common_feature_iotcon_support 0
-%define tizen_common_feature_location_batch 0
%define tizen_common_feature_key_manager_support 0
+%define tizen_common_feature_location_batch 0
%define tizen_common_feature_media_controller_support 0
%define tizen_common_feature_media_key_support 0
%define tizen_common_feature_message_port_support 1
%define tizen_common_feature_messaging_support 0
-%define tizen_common_feature_nfc_emulation_support 0
+%define tizen_common_feature_nbs_support 0
%define tizen_common_feature_nfc_support 0
+%define tizen_common_feature_nfc_emulation_support 0
%define tizen_common_feature_notification_support 0
%define tizen_common_feature_package_support 1
%define tizen_common_feature_player_util_support 0
%define tizen_common_feature_power_support 0
+%define tizen_common_feature_ppm_support 0
%define tizen_common_feature_preference_support 0
%define tizen_common_feature_push_support 0
%define tizen_common_feature_se_support 0
%define tizen_common_feature_system_setting_support 0
%define tizen_common_feature_telephony_support 0
%define tizen_common_feature_time_support 1
-%define tizen_common_feature_web_setting_support 0
-%define tizen_common_feature_widget_service_support 0
-%define tizen_common_feature_wi_fi_support 1
-%define tizen_common_feature_inputdevice_support 0
-%define tizen_common_feature_callhistory_support 0
-%define tizen_common_feature_nbs_support 0
%define tizen_common_feature_tvinputdevice_support 0
%define tizen_common_feature_voicecontrol_support 0
-%define tizen_common_feature_ppm_support 0
-
+%define tizen_common_feature_web_setting_support 0
+%define tizen_common_feature_wi_fi_support 1
+%define tizen_common_feature_widget_service_support 0
####################################################################
# Mobile Profile : TM1(32bit), Redwood(SM-Z910F), KIRAN(Z130H) #
%endif
%define tizen_mobile_feature_ham_support 0
-
+%define tizen_mobile_feature_inputdevice_support 1
%define tizen_mobile_feature_iotcon_support 1
-%define tizen_mobile_feature_location_batch 0
%define tizen_mobile_feature_key_manager_support 1
+%define tizen_mobile_feature_location_batch 0
%define tizen_mobile_feature_media_controller_support 1
-
%define tizen_mobile_feature_media_key_support 1
-
%define tizen_mobile_feature_message_port_support 1
%define tizen_mobile_feature_messaging_support 1
-
-%define tizen_mobile_feature_nfc_emulation_support 0
%define tizen_mobile_feature_nfc_support 0
-
+%define tizen_mobile_feature_nfc_emulation_support 0
%define tizen_mobile_feature_notification_support 1
%define tizen_mobile_feature_package_support 1
%define tizen_mobile_feature_player_util_support 1
%define tizen_mobile_feature_power_support 1
+%define tizen_mobile_feature_ppm_support 1
%define tizen_mobile_feature_preference_support 1
%define tizen_mobile_feature_push_support 1
%endif
%define tizen_mobile_feature_time_support 1
+%define tizen_mobile_feature_tvinputdevice_support 0
+%define tizen_mobile_feature_voicecontrol_support 1
%define tizen_mobile_feature_web_setting_support 1
+%define tizen_mobile_feature_wi_fi_support 1
%define tizen_mobile_feature_widget_service_support 1
-%define tizen_mobile_feature_wi_fi_support 1
+## Mobile emulator
-%define tizen_mobile_feature_inputdevice_support 1
+%define tizen_mobile_emulator_feature_bluetooth_support 0
-%define tizen_mobile_feature_tvinputdevice_support 0
+# FM radio feature
+%define tizen_mobile_emulator_feature_fm_radio_support 1
-%define tizen_mobile_feature_voicecontrol_support 1
-%define tizen_mobile_feature_ppm_support 1
+%define tizen_mobile_emulator_feature_ham_support 1
+%define tizen_mobile_emulator_feature_media_key_support 0
+%define tizen_mobile_emulator_feature_nfc_support 1
+%define tizen_mobile_emulator_feature_nfc_emulation_support 0
+
+# secure element feature
+%define tizen_mobile_emulator_feature_se_support 0
+
+# telephony feature
+%define tizen_mobile_emulator_feature_telephony_support 1
+%define tizen_mobile_emulator_feature_callhistory_support 1
+%define tizen_mobile_emulator_feature_nbs_support 1
+
+%define tizen_mobile_emulator_feature_wi_fi_support 0
####################################################################
# Wearable Profile : B2 / TW2 #
%define tizen_wearable_feature_filesystem_support 1
%define tizen_wearable_feature_fm_radio_support 0
%define tizen_wearable_feature_ham_support 1
+%define tizen_wearable_feature_inputdevice_support 1
%define tizen_wearable_feature_iotcon_support 1
+%define tizen_wearable_feature_key_manager_support 1
%define tizen_wearable_feature_location_batch 0
%define tizen_wearable_feature_media_controller_support 1
# MediayKey API is optional in Tizen Wearable Profile.
# tizen.org/feature/network.bluetooth.audio.media is required for MediayKey API
%define tizen_wearable_feature_media_key_support 1
-%define tizen_wearable_feature_key_manager_support 1
%define tizen_wearable_feature_message_port_support 1
%define tizen_wearable_feature_messaging_support 0
-%define tizen_wearable_feature_nfc_emulation_support 0
%define tizen_wearable_feature_nfc_support 1
+%define tizen_wearable_feature_nfc_emulation_support 0
%define tizen_wearable_feature_notification_support 1
%define tizen_wearable_feature_package_support 1
%define tizen_wearable_feature_player_util_support 1
%define tizen_wearable_feature_power_support 1
+%define tizen_wearable_feature_ppm_support 1
%define tizen_wearable_feature_preference_support 1
%define tizen_wearable_feature_push_support 1
%define tizen_wearable_feature_se_support 1
%define tizen_wearable_feature_nbs_support 0
%define tizen_wearable_feature_time_support 1
+%define tizen_wearable_feature_tvinputdevice_support 0
+%define tizen_wearable_feature_voicecontrol_support 1
%define tizen_wearable_feature_web_setting_support 0
-%define tizen_wearable_feature_widget_service_support 1
%define tizen_wearable_feature_wi_fi_support 1
-%define tizen_wearable_feature_inputdevice_support 1
-%define tizen_wearable_feature_tvinputdevice_support 0
+%define tizen_wearable_feature_widget_service_support 1
-%define tizen_wearable_feature_voicecontrol_support 1
-%define tizen_wearable_feature_ppm_support 1
+## Wearable emulator
+
+%define tizen_wearable_emulator_feature_bluetooth_support 0
+
+# MediayKey API is optional in Tizen Wearable Profile.
+# tizen.org/feature/network.bluetooth.audio.media is required for MediayKey API
+%define tizen_wearable_emulator_feature_media_key_support 0
+
+#- telephony related APIs
+# CallHistory API is optional in Tizen Wearable Profile.
+# NetworkBearerSelection API is optional in Tizen Wearable Profile.
+%define tizen_wearable_emulator_feature_telephony_support 1
+%define tizen_wearable_emulator_feature_callhistory_support 1
+%define tizen_wearable_emulator_feature_nbs_support 1
+%define tizen_wearable_emulator_feature_se_support 0
+%define tizen_wearable_emulator_feature_sensor_support 1
####################################################################
# TV Profile #
%define tizen_tv_privilege_engine CYNARA
-%define tizen_tv_feature_account_support 0
+%define tizen_tv_feature_account_support 1
%define tizen_tv_feature_alarm_support 1
%define tizen_tv_feature_app_control_settings_support 0
%define tizen_tv_feature_application_support 1
%define tizen_tv_feature_filesystem_support 1
%define tizen_tv_feature_fm_radio_support 0
%define tizen_tv_feature_ham_support 0
+%define tizen_tv_feature_inputdevice_support 0
%define tizen_tv_feature_iotcon_support 1
%define tizen_tv_feature_key_manager_support 1
-%define tizen_tv_feature_media_controller_support 0
+%define tizen_tv_feature_media_controller_support 1
%define tizen_tv_feature_media_key_support 0
%define tizen_tv_feature_message_port_support 1
%define tizen_tv_feature_messaging_support 0
%define tizen_tv_feature_nbs_support 0
-%define tizen_tv_feature_nfc_emulation_support 0
%define tizen_tv_feature_nfc_support 0
+%define tizen_tv_feature_nfc_emulation_support 0
%define tizen_tv_feature_notification_support 0
%define tizen_tv_feature_package_support 1
%define tizen_tv_feature_player_util_support 0
%define tizen_tv_feature_power_support 0
+%define tizen_tv_feature_ppm_support 0
%define tizen_tv_feature_preference_support 0
%define tizen_tv_feature_push_support 1
%define tizen_tv_feature_se_support 0
%define tizen_tv_feature_system_setting_support 0
%define tizen_tv_feature_telephony_support 0
%define tizen_tv_feature_time_support 1
-%define tizen_tv_feature_web_setting_support 1
-%define tizen_tv_feature_widget_service_support 0
-%define tizen_tv_feature_wi_fi_support 1
-%define tizen_tv_feature_inputdevice_support 0
%define tizen_tv_feature_tvinputdevice_support 1
%define tizen_tv_feature_voicecontrol_support 1
-%define tizen_tv_feature_ppm_support 0
+%define tizen_tv_feature_web_setting_support 1
+%define tizen_tv_feature_wi_fi_support 1
+%define tizen_tv_feature_widget_service_support 0
# common, or "unified (undefined)"
%define unified_build 1
BuildRequires: pkgconfig(capi-web-url-download)
%endif
-%if "%{?tizen_feature_ham_support}" == "1" || "%{?unified_build}" == "1"
+%if "%{?tizen_feature_ham_support}" == "1" || "%{?unified_build}" == "1" || "%{?tizen_mobile_emulator_feature_ham_support}" == "1"
BuildRequires: pkgconfig(motion)
BuildRequires: pkgconfig(capi-system-sensor)
BuildRequires: pkgconfig(capi-location-manager)
BuildRequires: pkgconfig(email-service)
BuildRequires: pkgconfig(msg-service)
BuildRequires: pkgconfig(db-util)
-BuildRequires: pkgconfig(dbus-glib-1)
%endif
%if "%{?tizen_feature_badge_support}" == "1" || "%{?unified_build}" == "1"
BuildRequires: pkgconfig(contacts-service2)
%endif
-%if "%{?tizen_feature_callhistory_support}" == "1" || "%{?unified_build}" == "1"
+%if "%{?tizen_feature_callhistory_support}" == "1" || "%{?unified_build}" == "1" || "%{?tizen_mobile_emulator_feature_callhistory_support}" == "1" || "%{?tizen_wearable_emulator_feature_callhistory_support}" == "1"
BuildRequires: pkgconfig(contacts-service2)
%endif
BuildRequires: pkgconfig(libexif)
%endif
-%if "%{?tizen_feature_nfc_support}" == "1" || "%{?unified_build}" == "1"
+%if "%{?tizen_feature_nfc_support}" == "1" || "%{?unified_build}" == "1" || "%{?tizen_mobile_emulator_feature_nfc_support}" == "1"
BuildRequires: pkgconfig(capi-network-nfc)
BuildRequires: pkgconfig(capi-appfw-app-control)
%endif
-%if "%{?tizen_feature_fm_radio_support}" == "1" || "%{?unified_build}" == "1"
+%if "%{?tizen_feature_fm_radio_support}" == "1" || "%{?unified_build}" == "1" || "%{?tizen_mobile_emulator_feature_fm_radio_support}" == "1"
BuildRequires: pkgconfig(capi-media-radio)
%endif
BuildRequires: pkgconfig(capi-media-sound-manager)
%endif
-%if "%{?tizen_feature_sensor_support}" == "1" || "%{?unified_build}" == "1"
+%if "%{?tizen_feature_sensor_support}" == "1" || "%{?unified_build}" == "1" || "%{?tizen_wearable_emulator_feature_sensor_support}" == "1"
BuildRequires: pkgconfig(capi-system-sensor)
%endif
ninja -C out/Default %{?_smp_mflags}
pushd out
mv Default bin_mobile
-%if "%{?profile}" == "mobile"
-ln -sf bin_mobile Default
-%endif
popd
# mobile-extension-emulator
%ifarch %{ix86} x86_64
-%define tizen_mobile_feature_bluetooth_support 0
+%define tizen_mobile_feature_bluetooth_support %{?tizen_mobile_emulator_feature_bluetooth_support}
# FM radio feature
-%define tizen_mobile_feature_fm_radio_support 1
+%define tizen_mobile_feature_fm_radio_support %{?tizen_mobile_emulator_feature_fm_radio_support}
-%define tizen_mobile_feature_ham_support 1
-%define tizen_mobile_feature_media_key_support 0
-%define tizen_mobile_feature_nfc_emulation_support 0
-%define tizen_mobile_feature_nfc_support 1
+%define tizen_mobile_feature_ham_support %{?tizen_mobile_emulator_feature_ham_support}
+%define tizen_mobile_feature_media_key_support %{?tizen_mobile_emulator_feature_media_key_support}
+%define tizen_mobile_feature_nfc_emulation_support %{?tizen_mobile_emulator_feature_nfc_emulation_support}
+%define tizen_mobile_feature_nfc_support %{?tizen_mobile_emulator_feature_nfc_support}
# secure element feature
-%define tizen_mobile_feature_se_support 0
+%define tizen_mobile_feature_se_support %{?tizen_mobile_emulator_feature_se_support}
# telephony feature
-%define tizen_mobile_feature_telephony_support 1
-%define tizen_mobile_feature_callhistory_support 1
-%define tizen_mobile_feature_nbs_support 1
+%define tizen_mobile_feature_telephony_support %{?tizen_mobile_emulator_feature_telephony_support}
+%define tizen_mobile_feature_callhistory_support %{?tizen_mobile_emulator_feature_callhistory_support}
+%define tizen_mobile_feature_nbs_support %{?tizen_mobile_emulator_feature_nbs_support}
-%define tizen_mobile_feature_wi_fi_support 0
+%define tizen_mobile_feature_wi_fi_support %{?tizen_mobile_emulator_feature_wi_fi_support}
GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=mobile -Dprivilege_engine=%{tizen_mobile_privilege_engine}"
GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=%{display_type}"
ninja -C out/Default %{?_smp_mflags}
pushd out
mv Default bin_mobile_emulator
+popd
+%endif # mobile-extension-emulator
+
+pushd out
%if "%{?profile}" == "mobile"
-ln -sf bin_mobile_emulator Default
+ln -sf bin_mobile Default
%endif
popd
-%endif # mobile-extension-emulator
+
%endif # MOBILE
%if "%{?unified_build}" == "1" || "%{?profile}" == "wearable"
ninja -C out/Default %{?_smp_mflags}
pushd out
mv Default bin_wearable
-%if "%{?profile}" == "wearable"
-ln -sf bin_wearable Default
-%endif
popd
# wearable-extension-emulator
%ifarch %{ix86} x86_64
-%define tizen_wearable_feature_bluetooth_support 0
+%define tizen_wearable_feature_bluetooth_support %{?tizen_wearable_emulator_feature_bluetooth_support}
# MediayKey API is optional in Tizen Wearable Profile.
# tizen.org/feature/network.bluetooth.audio.media is required for MediayKey API
-%define tizen_wearable_feature_media_key_support 0
+%define tizen_wearable_feature_media_key_support %{?tizen_wearable_emulator_feature_media_key_support}
#- telephony related APIs
# CallHistory API is optional in Tizen Wearable Profile.
# NetworkBearerSelection API is optional in Tizen Wearable Profile.
-%define tizen_wearable_feature_se_support 0
-%define tizen_wearable_feature_telephony_support 1
-%define tizen_wearable_feature_callhistory_support 1
-%define tizen_wearable_feature_nbs_support 1
-%define tizen_wearable_feature_sensor_support 1
+%define tizen_wearable_feature_se_support %{?tizen_wearable_emulator_feature_se_support}
+%define tizen_wearable_feature_telephony_support %{?tizen_wearable_emulator_feature_telephony_support}
+%define tizen_wearable_feature_callhistory_support %{?tizen_wearable_emulator_feature_callhistory_support}
+%define tizen_wearable_feature_nbs_support %{?tizen_wearable_emulator_feature_nbs_support}
+%define tizen_wearable_feature_sensor_support %{?tizen_wearable_emulator_feature_sensor_support}
GYP_OPTIONS="--depth=. -Dtizen=1 -Dextension_build_type=Debug -Dextension_host_os=wearable -Dprivilege_engine=%{tizen_wearable_privilege_engine}"
GYP_OPTIONS="$GYP_OPTIONS -Ddisplay_type=%{display_type}"
ninja -C out/Default %{?_smp_mflags}
pushd out
mv Default bin_wearable_emulator
+popd
+%endif # wearable-extension-emulator
+
+pushd out
%if "%{?profile}" == "wearable"
-ln -sf bin_wearable_emulator Default
+ln -sf bin_wearable Default
%endif
popd
-%endif # wearable-extension-emulator
+
%endif # WEARABLE
%if "%{?unified_build}" == "1" || "%{?profile}" == "tv"
* limitations under the License.
*/
-var JSON_ = xwalk.JSON;
var validator_ = xwalk.utils.validator;
var types_ = validator_.Types;
var type_ = xwalk.utils.type;
var converter_ = xwalk.utils.converter;
-var privUtils_ = xwalk.utils;
+var native_ = new xwalk.utils.NativeManager(extension);
+
+var LOCAL_MESSAGE_PORT_LISTENER_ID = 'LocalMessagePortListener';
var callbackId = 0;
var callbacks = {};
var ports = [];
-extension.setMessageListener(function(json) {
- var msg = JSON_.parse(json);
- var listeners = callbacks[msg['local_port_id']];
+function MessagePortChangeCallback(msg) {
+ var listeners = callbacks[msg['localPortId']];
var rmp;
- privUtils_.log('Listeners length:' + listeners.length);
-
if (!msg.hasOwnProperty('remotePort')) rmp = null;
else rmp = new RemoteMessagePort(msg.remotePort, msg.remoteAppId, msg.trusted);
for (var i = 0; i < listeners.length; i++) {
- var func = listeners[i][0];
- setTimeout(function() {
- func(msg.message, rmp);
- }, 0);
+ setTimeout(
+ function(f) {
+ f(msg.message, rmp);
+ }.bind(null, listeners[i][0]),
+ 0
+ );
}
-});
+}
function nextCallbackId() {
return callbackId++;
}
-var ExceptionMap = {
- UnknownError: WebAPIException.UNKNOWN_ERR,
- TypeMismatchError: WebAPIException.TYPE_MISMATCH_ERR,
- InvalidValuesError: WebAPIException.INVALID_VALUES_ERR,
- IOError: WebAPIException.IO_ERR,
- ServiceNotAvailableError: WebAPIException.SERVICE_NOT_AVAILABLE_ERR,
- SecurityError: WebAPIException.SECURITY_ERR,
- NetworkError: WebAPIException.NETWORK_ERR,
- NotSupportedError: WebAPIException.NOT_SUPPORTED_ERR,
- NotFoundError: WebAPIException.NOT_FOUND_ERR,
- InvalidAccessError: WebAPIException.INVALID_ACCESS_ERR,
- AbortError: WebAPIException.ABORT_ERR,
- QuotaExceededError: WebAPIException.QUOTA_EXCEEDED_ERR
-};
-
-function callNative(cmd, args) {
- var json = { cmd: cmd, args: args };
- var argjson = JSON_.stringify(json);
- var resultString = extension.internal.sendSyncMessage(argjson);
- var result = JSON_.parse(resultString);
-
- if (typeof result !== 'object') {
- throw new WebAPIException(WebAPIException.UNKNOWN_ERR);
- }
-
- if (result['status'] == 'success') {
- if (result['result']) {
- return result['result'];
- }
- return true;
- } else if (result['status'] == 'error') {
- var err = result['error'];
- if (err) {
- if (ExceptionMap[err.name]) {
- throw new WebAPIException(ExceptionMap[err.name], err.message);
- } else {
- throw new WebAPIException(WebAPIException.UNKNOWN_ERR, err.message);
- }
- }
- return false;
- }
-}
-
-function callNativeWithCallback(cmd, args, callback) {
- if (callback) {
- var id = nextCallbackId();
- args['callbackId'] = id;
- callbacks[id] = callback;
- }
-
- return callNative(cmd, args);
-}
-
-function SetReadOnlyProperty(obj, n, v) {
- Object.defineProperty(obj, n, { value: v, writable: false });
-}
-
function MessagePortManager() {
// constructor of MessagePortManager
}
);
}
- var localPortId;
+ var localPortId; // TODO remove
var nativeParam = {
localMessagePortName: args.localMessagePortName
};
- try {
- localPortId = callNative(
- 'MessagePortManager_requestLocalMessagePort',
- nativeParam
- );
- } catch (e) {
- throw e;
- }
+ var result = native_.callSync(
+ 'MessagePortManager_requestLocalMessagePort',
+ nativeParam
+ );
- var returnObject = new LocalMessagePort(args.localMessagePortName, false);
- ports[nativeParam.localMessagePortName] = localPortId;
+ if (native_.isSuccess(result)) {
+ var returnObject = new LocalMessagePort(args.localMessagePortName, false);
+ ports[nativeParam.localMessagePortName] = native_.getResultObject(result);
+ } else {
+ throw native_.getErrorObject(result);
+ }
return returnObject;
};
localMessagePortName: args.localMessagePortName
};
- try {
- var localPortId = callNative(
- 'MessagePortManager_requestTrustedLocalMessagePort',
- nativeParam
- );
- } catch (e) {
- throw e;
- }
+ var result = native_.callSync(
+ 'MessagePortManager_requestTrustedLocalMessagePort',
+ nativeParam
+ );
- var returnObject = new LocalMessagePort(args.localMessagePortName, true);
- ports[nativeParam.localMessagePortName] = localPortId;
+ if (native_.isSuccess(result)) {
+ var returnObject = new LocalMessagePort(args.localMessagePortName, true);
+ ports[nativeParam.localMessagePortName] = native_.getResultObject(result);
+ } else {
+ throw native_.getErrorObject(result);
+ }
return returnObject;
};
remoteMessagePortName: args.remoteMessagePortName
};
- try {
- var syncResult = callNative(
- 'MessagePortManager_requestRemoteMessagePort',
- nativeParam
- );
- } catch (e) {
- throw e;
+ var result = native_.callSync(
+ 'MessagePortManager_requestRemoteMessagePort',
+ nativeParam
+ );
+
+ if (native_.isFailure(result)) {
+ throw native_.getErrorObject(result);
}
var returnObject = new RemoteMessagePort(
remoteMessagePortName: args.remoteMessagePortName
};
- try {
- var syncResult = callNative(
- 'MessagePortManager_requestTrustedRemoteMessagePort',
- nativeParam
- );
- } catch (e) {
- throw e;
+ var result = native_.callSync(
+ 'MessagePortManager_requestTrustedRemoteMessagePort',
+ nativeParam
+ );
+
+ if (native_.isFailure(result)) {
+ throw native_.getErrorObject(result);
}
var returnObject = new RemoteMessagePort(
{ name: 'listener', type: types_.FUNCTION, nullable: false }
]);
+ native_.addListener(LOCAL_MESSAGE_PORT_LISTENER_ID, MessagePortChangeCallback);
+
var portId = ports[this.messagePortName];
if (!callbacks.hasOwnProperty(portId)) callbacks[portId] = [];
}
]);
- var filtered_data = new Array(args.data.length);
- var unique_data_key = {};
- var data_length = args.data.length;
- for (var i = 0; i < data_length; i++) {
+ var filteredData = new Array(args.data.length);
+ var uniqueDataKey = {};
+ var dataLength = args.data.length;
+ for (var i = 0; i < dataLength; i++) {
if (!args.data[i].hasOwnProperty('key')) {
throw new WebAPIException(
WebAPIException.INVALID_VALUES_ERR,
'Property \'key\' should not be empty.'
);
}
- if (true === unique_data_key[key]) {
+ if (true === uniqueDataKey[key]) {
throw new WebAPIException(
WebAPIException.INVALID_VALUES_ERR,
'Property \'key\' should not be duplicated.'
}
var value = args.data[i].value;
if (type_.isString(value)) {
- filtered_data[i] = { key: key, value: value, valueType: 'stringValueType' };
+ filteredData[i] = { key: key, value: value, valueType: 'stringValueType' };
} else if (type_.isArray(value)) {
var arrayMember = value[0];
if (type_.isString(arrayMember)) {
);
}
}
- filtered_data[i] = {
+ filteredData[i] = {
key: key,
value: value,
valueType: 'stringArrayValueType'
'Data is not octet array'
);
}
- filtered_data[i] = {
+ filteredData[i] = {
key: key,
value: value,
valueType: 'byteStreamValueType'
);
}
}
- filtered_data[i] = {
+ filteredData[i] = {
key: key,
value: value,
valueType: 'byteStreamArrayValueType'
}
} else {
// convert any other value to string -> backward compatibility
- filtered_data[i] = {
+ filteredData[i] = {
key: key,
value: converter_.toString(value),
valueType: 'stringValueType'
};
}
- unique_data_key[key] = true;
+ uniqueDataKey[key] = true;
}
var nativeParam = {
appId: this.appId,
messagePortName: this.messagePortName,
- data: filtered_data,
+ data: filteredData,
trusted: this.isTrusted,
- local_port_id: args.localMessagePort
+ localPortId: args.localMessagePort
? ports[args.localMessagePort.messagePortName]
: -1
};
- var syncResult = callNative('RemoteMessagePort_sendMessage', nativeParam);
+ var result = native_.callSync('RemoteMessagePort_sendMessage', nativeParam);
+
+ if (native_.isFailure(result)) {
+ throw native_.getErrorObject(result);
+ }
};
exports = new MessagePortManager();
MessageportInstance::~MessageportInstance() {
ScopeLogger();
+ for (int port : local_ports) {
+ int ret = message_port_unregister_local_port(port);
+ if (MESSAGE_PORT_ERROR_NONE != ret) {
+ LoggerW("Failed to unregister local port listener during instance destructor.");
+ }
+ }
+ for (int port : local_trusted_ports) {
+ int ret = message_port_unregister_trusted_local_port(port);
+ if (MESSAGE_PORT_ERROR_NONE != ret) {
+ LoggerW("Failed to unregister local trusted port listener during instance destructor");
+ }
+ }
}
enum MessageportCallbacks {
picojson::value::object o;
picojson::value::array data;
- o["local_port_id"] = picojson::value(static_cast<double>(local_port_id));
+ o["listenerId"] = picojson::value("LocalMessagePortListener");
+ o["localPortId"] = picojson::value(static_cast<double>(local_port_id));
if (remote_port) {
o["remoteAppId"] = picojson::value(remote_app_id);
break;
}
} else {
+ local_ports.push_back(portId);
ReportSuccess(picojson::value(static_cast<double>(portId)), out);
}
}
break;
}
} else {
+ local_trusted_ports.push_back(portId);
ReportSuccess(picojson::value(static_cast<double>(portId)), out);
}
}
portCheck ? "true" : "false");
LoggerD("Error code: %d (%s)", ret, get_error_message(ret));
- if (ret == MESSAGE_PORT_ERROR_NONE) {
+ if (MESSAGE_PORT_ERROR_NONE == ret) {
if (portCheck) {
ReportSuccess(out);
} else {
LogAndReportError(NotFoundException("The port of the target application is not found"), out);
}
- } else if (ret == MESSAGE_PORT_ERROR_INVALID_PARAMETER) {
- LogAndReportError(
- InvalidValuesException("An input parameter contains an invalid value."), out,
- ("message_port_check_remote_port error: %d (%s)", ret, get_error_message(ret)));
- } else if (ret == MESSAGE_PORT_ERROR_OUT_OF_MEMORY) {
- LogAndReportError(
- UnknownException("Out of memory."), out,
- ("message_port_check_remote_port error: %d (%s)", ret, get_error_message(ret)));
- } else if (ret == MESSAGE_PORT_ERROR_IO_ERROR) {
+ } else if (MESSAGE_PORT_ERROR_IO_ERROR == ret) {
// IO error means that remote port does not exist
LogAndReportError(
NotFoundException("The port of the target application is not found"), out,
("message_port_check_remote_port error: %d (%s)", ret, get_error_message(ret)));
- } else if (ret == MESSAGE_PORT_ERROR_PORT_NOT_FOUND) {
- LogAndReportError(
- NotFoundException("The port of the target application is not found"), out,
- ("message_port_check_remote_port error: %d (%s)", ret, get_error_message(ret)));
} else {
LogAndReportError(
UnknownException("Unknown Error"), out,
portCheck ? "true" : "false");
LoggerD("Error code: %d (%s)", ret, get_error_message(ret));
- if (ret == MESSAGE_PORT_ERROR_NONE) {
+ if (MESSAGE_PORT_ERROR_NONE == ret) {
if (portCheck) {
ReportSuccess(out);
} else {
LogAndReportError(NotFoundException("The port of the target application is not found"), out);
}
- } else if (ret == MESSAGE_PORT_ERROR_INVALID_PARAMETER) {
- LogAndReportError(
- InvalidValuesException("An input parameter contains an invalid value."), out,
- ("message_port_check_trusted_remote_port error: %d (%s)", ret, get_error_message(ret)));
- } else if (ret == MESSAGE_PORT_ERROR_OUT_OF_MEMORY) {
- LogAndReportError(
- UnknownException("Out of memory."), out,
- ("message_port_check_trusted_remote_port error: %d (%s)", ret, get_error_message(ret)));
- } else if (ret == MESSAGE_PORT_ERROR_IO_ERROR) {
+ } else if (MESSAGE_PORT_ERROR_IO_ERROR == ret) {
// IO error means that remote port does not exist
LogAndReportError(
NotFoundException("The port of the target application is not found"), out,
("message_port_check_trusted_remote_port error: %d (%s)", ret, get_error_message(ret)));
- } else if (ret == MESSAGE_PORT_ERROR_PORT_NOT_FOUND) {
- LogAndReportError(
- NotFoundException("The port of the target application is not found"), out,
- ("message_port_check_trusted_remote_port error: %d (%s)", ret, get_error_message(ret)));
- } else if (ret == MESSAGE_PORT_ERROR_CERTIFICATE_NOT_MATCH) {
+ } else if (MESSAGE_PORT_ERROR_CERTIFICATE_NOT_MATCH == ret) {
LogAndReportError(
UnknownException("The remote application is not signed with the same certificate"), out,
("message_port_check_trusted_remote_port error: %d (%s)", ret, get_error_message(ret)));
const std::string& message_port_name = args.get("messagePortName").get<std::string>();
std::vector<picojson::value> data = args.get("data").get<picojson::array>();
- long local_port_id = static_cast<long>(args.get("local_port_id").get<double>());
+ long local_port_id = static_cast<long>(args.get("localPortId").get<double>());
bool trusted = args.get("trusted").get<bool>();
int result;