diff options
Diffstat (limited to 'src/webchannel/qwebchannel.js')
-rw-r--r-- | src/webchannel/qwebchannel.js | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/src/webchannel/qwebchannel.js b/src/webchannel/qwebchannel.js index d2c6525..13e9da5 100644 --- a/src/webchannel/qwebchannel.js +++ b/src/webchannel/qwebchannel.js @@ -82,9 +82,6 @@ var QWebChannel = function(transport, initCallback) case QWebChannelMessageTypes.propertyUpdate: channel.handlePropertyUpdate(data); break; - case QWebChannelMessageTypes.init: - channel.handleInit(data); - break; default: console.error("invalid message received:", message.data); break; @@ -149,30 +146,20 @@ var QWebChannel = function(transport, initCallback) channel.exec({type: QWebChannelMessageTypes.idle}); } - // prevent multiple initialization which might happen with multiple webchannel clients. - this.initialized = false; - this.handleInit = function(message) + this.debug = function(message) { - if (channel.initialized) { - return; - } - channel.initialized = true; - for (var objectName in message.data) { - var data = message.data[objectName]; - var object = new QObject(objectName, data, channel); + channel.send({type: QWebChannelMessageTypes.debug, data: message}); + }; + + channel.exec({type: QWebChannelMessageTypes.init}, function(data) { + for (var objectName in data) { + var object = new QObject(objectName, data[objectName], channel); } if (initCallback) { initCallback(channel); } channel.exec({type: QWebChannelMessageTypes.idle}); - } - - this.debug = function(message) - { - channel.send({type: QWebChannelMessageTypes.debug, data: message}); - }; - - channel.exec({type: QWebChannelMessageTypes.init}); + }); }; function QObject(name, data, webChannel) |