summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/webchannel/qwebchannel.js4
-rw-r--r--tests/auto/qml/Client.qml25
-rw-r--r--tests/auto/qml/tst_webchannel.qml6
3 files changed, 8 insertions, 27 deletions
diff --git a/src/webchannel/qwebchannel.js b/src/webchannel/qwebchannel.js
index 2df8704..4b031c0 100644
--- a/src/webchannel/qwebchannel.js
+++ b/src/webchannel/qwebchannel.js
@@ -154,7 +154,7 @@ var QWebChannel = function(transport, initCallback)
console.warn("Unhandled property update: " + data.object + "::" + data.signal);
}
}
- setTimeout(function() { channel.exec({type: QWebChannelMessageTypes.idle}); }, 0);
+ channel.exec({type: QWebChannelMessageTypes.idle});
}
// prevent multiple initialization which might happen with multiple webchannel clients.
@@ -172,7 +172,7 @@ var QWebChannel = function(transport, initCallback)
if (initCallback) {
initCallback(channel);
}
- setTimeout(function() { channel.exec({type: QWebChannelMessageTypes.idle}); }, 0);
+ channel.exec({type: QWebChannelMessageTypes.idle});
}
this.debug = function(message)
diff --git a/tests/auto/qml/Client.qml b/tests/auto/qml/Client.qml
index 0b623a0..161a85e 100644
--- a/tests/auto/qml/Client.qml
+++ b/tests/auto/qml/Client.qml
@@ -86,30 +86,6 @@ Item {
}
readonly property var clientTransport: clientTransport
- Timer {
- id: timer
- running: false
- repeat: false
-
- property var callback
-
- onTriggered: {
- callback();
- }
- }
-
- function setTimeout(callback, delay)
- {
- if (timer.running) {
- console.error("nested calls to setTimeout are not supported!", JSON.stringify(callback), JSON.stringify(timer.callback));
- return;
- }
- timer.callback = callback;
- // note: an interval of 0 is directly triggered, so add a little padding
- timer.interval = delay + 1;
- timer.running = true;
- }
-
function createChannel(callback, raw)
{
return new JSClient.QWebChannel(clientTransport, callback, raw);
@@ -118,7 +94,6 @@ Item {
function cleanup()
{
clientMessages = [];
- timer.running = false;
}
function awaitRawMessage()
diff --git a/tests/auto/qml/tst_webchannel.qml b/tests/auto/qml/tst_webchannel.qml
index 46ac209..899db69 100644
--- a/tests/auto/qml/tst_webchannel.qml
+++ b/tests/auto/qml/tst_webchannel.qml
@@ -256,6 +256,8 @@ TestCase {
compare(msg.args, ["foobar"]);
compare(lastMethodArg, "foobar");
+ client.awaitIdle();
+
myFactory.lastObj.mySignal("foobar", 42);
// deleteLater call
@@ -292,8 +294,12 @@ TestCase {
compare(msg.type, JSClient.QWebChannelMessageTypes.connectToSignal);
compare(typeof channel.objects[testObjId], "object");
+ client.awaitIdle();
+
channel.objects[testObjId].deleteLater();
msg = client.awaitMessage();
+ compare(msg.type, JSClient.QWebChannelMessageTypes.invokeMethod);
+ compare(msg.object, testObjId);
// after receiving the destroyed signal the client deletes
// local objects and sends back a idle message