X Tutup
Skip to content

Commit 8485ef9

Browse files
jteplitzmhevery
authored andcommitted
fix(WebWorker): Don't send messages when the buffer is empty
Closes #4138
1 parent 1de2d29 commit 8485ef9

File tree

6 files changed

+10
-12
lines changed

6 files changed

+10
-12
lines changed

modules/angular2/src/web_workers/shared/generic_message_bus.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ abstract class GenericMessageBusSink implements MessageBusSink {
4646
void attachToZone(NgZone zone) {
4747
_zone = zone;
4848
_zone.overrideOnEventDone(() {
49-
sendMessages(_messageBuffer);
50-
_messageBuffer.clear();
49+
if (_messageBuffer.length > 0) {
50+
sendMessages(_messageBuffer);
51+
_messageBuffer.clear();
52+
}
5153
}, false);
5254
}
5355

modules/angular2/src/web_workers/shared/post_message_bus.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,10 @@ export class PostMessageBusSink implements MessageBusSink {
7373
}
7474

7575
private _handleOnEventDone() {
76-
// TODO: Send all buffered messages in one postMessage call
77-
this._sendMessages(this._messageBuffer);
78-
this._messageBuffer = [];
76+
if (this._messageBuffer.length > 0) {
77+
this._sendMessages(this._messageBuffer);
78+
this._messageBuffer = [];
79+
}
7980
}
8081

8182
private _sendMessages(messages: Array<Object>) { this._postMessageTarget.postMessage(messages); }

modules/angular2/src/web_workers/worker/application.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,8 @@ export function bootstrapWebWorker(
3232
componentInjectableProviders: Array<Type | Provider | any[]> = null): Promise<ComponentRef> {
3333
Parse5DomAdapter.makeCurrent();
3434
var sink = new PostMessageBusSink({
35-
postMessage: (message: any, transferrables?:[ArrayBuffer]) => {
36-
console.log("Sending", message);
37-
_postMessage(message, transferrables);
38-
}
35+
postMessage:
36+
(message: any, transferrables?:[ArrayBuffer]) => { _postMessage(message, transferrables); }
3937
});
4038
var source = new PostMessageBusSource();
4139
var bus = new PostMessageBus(sink, source);

modules/playground/src/web_workers/images/loader.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ System.config({
1010
System.import("playground/src/web_workers/images/background_index")
1111
.then(
1212
function(m) {
13-
console.log("running main");
1413
try {
1514
m.main();
1615
} catch (e) {

modules/playground/src/web_workers/kitchen_sink/loader.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ System.config({
88
System.import("playground/src/web_workers/kitchen_sink/background_index")
99
.then(
1010
function(m) {
11-
console.log("running main");
1211
try {
1312
m.main();
1413
} catch (e) {

modules/playground/src/web_workers/todo/loader.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ System.config({
88
System.import("playground/src/web_workers/todo/background_index")
99
.then(
1010
function(m) {
11-
console.log("running main");
1211
try {
1312
m.main();
1413
} catch (e) {

0 commit comments

Comments
 (0)
X Tutup