Skip to content

Commit 014b6cb

Browse files
committed
Revert "feat(WebWorkers): Add WebWorker Todo Example. Add support for more DOM events."
This reverts commit d44827a. This broke master due to a race condition in our presubmit queue.
1 parent d44827a commit 014b6cb

33 files changed

+27
-919
lines changed

modules/angular2/src/web-workers/shared/serializer.ts

Lines changed: 8 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ import {
2828
RenderFragmentRef,
2929
RenderElementRef,
3030
ViewType,
31-
ViewEncapsulation,
32-
PropertyBindingType
31+
ViewEncapsulation
3332
} from "angular2/src/render/api";
3433
import {WorkerElementRef} from 'angular2/src/web-workers/shared/api';
3534
import {AST, ASTWithSource} from 'angular2/src/change_detection/change_detection';
@@ -58,13 +57,6 @@ export class Serializer {
5857
viewEncapsulationMap[1] = ViewEncapsulation.NATIVE;
5958
viewEncapsulationMap[2] = ViewEncapsulation.NONE;
6059
this._enumRegistry.set(ViewEncapsulation, viewEncapsulationMap);
61-
62-
var propertyBindingTypeMap = new Map<int, any>();
63-
propertyBindingTypeMap[0] = PropertyBindingType.PROPERTY;
64-
propertyBindingTypeMap[1] = PropertyBindingType.ATTRIBUTE;
65-
propertyBindingTypeMap[2] = PropertyBindingType.CLASS;
66-
propertyBindingTypeMap[3] = PropertyBindingType.STYLE;
67-
this._enumRegistry.set(PropertyBindingType, propertyBindingTypeMap);
6860
}
6961

7062
serialize(obj: any, type: Type): Object {
@@ -101,8 +93,6 @@ export class Serializer {
10193
return this._renderViewStore.serializeRenderFragmentRef(obj);
10294
} else if (type == WorkerElementRef) {
10395
return this._serializeWorkerElementRef(obj);
104-
} else if (type == ElementPropertyBinding) {
105-
return this._serializeElementPropertyBinding(obj);
10696
} else if (type == EventBinding) {
10797
return this._serializeEventBinding(obj);
10898
} else {
@@ -147,8 +137,6 @@ export class Serializer {
147137
return this._deserializeWorkerElementRef(map);
148138
} else if (type == EventBinding) {
149139
return this._deserializeEventBinding(map);
150-
} else if (type == ElementPropertyBinding) {
151-
return this._deserializeElementPropertyBinding(map);
152140
} else {
153141
throw new BaseException("No deserializer for " + type.toString());
154142
}
@@ -177,7 +165,7 @@ export class Serializer {
177165
if (isPresent(type)) {
178166
var map: Map<string, any> = new Map();
179167
StringMapWrapper.forEach(obj,
180-
(val, key) => { map.set(key, this.deserialize(val, type, data)); });
168+
(key, val) => { map.set(key, this.deserialize(val, type, data)); });
181169
return map;
182170
} else {
183171
return MapWrapper.createFromStringMap(obj);
@@ -186,29 +174,13 @@ export class Serializer {
186174

187175
allocateRenderViews(fragmentCount: number) { this._renderViewStore.allocate(fragmentCount); }
188176

189-
private _serializeElementPropertyBinding(binding:
190-
ElementPropertyBinding): StringMap<string, any> {
191-
return {
192-
'type': serializeEnum(binding.type),
193-
'astWithSource': this.serialize(binding.astWithSource, ASTWithSource),
194-
'property': binding.property,
195-
'unit': binding.unit
196-
};
197-
}
198-
199-
private _deserializeElementPropertyBinding(map: StringMap<string, any>): ElementPropertyBinding {
200-
var type = deserializeEnum(map['type'], this._enumRegistry.get(PropertyBindingType));
201-
var ast = this.deserialize(map['astWithSource'], ASTWithSource, "binding");
202-
return new ElementPropertyBinding(type, ast, map['property'], map['unit']);
203-
}
204-
205177
private _serializeEventBinding(binding: EventBinding): StringMap<string, any> {
206178
return {'fullName': binding.fullName, 'source': this.serialize(binding.source, ASTWithSource)};
207179
}
208180

209181
private _deserializeEventBinding(map: StringMap<string, any>): EventBinding {
210182
return new EventBinding(map['fullName'],
211-
this.deserialize(map['source'], ASTWithSource, "action"));
183+
this.deserialize(map['source'], ASTWithSource, "binding"));
212184
}
213185

214186
private _serializeWorkerElementRef(elementRef: RenderElementRef): StringMap<string, any> {
@@ -251,12 +223,15 @@ export class Serializer {
251223
// TODO: make ASTs serializable
252224
var ast: AST;
253225
switch (data) {
254-
case "action":
255-
ast = this._parser.parseAction(obj['input'], obj['location']);
226+
case "interpolation":
227+
ast = this._parser.parseInterpolation(obj['input'], obj['location']);
256228
break;
257229
case "binding":
258230
ast = this._parser.parseBinding(obj['input'], obj['location']);
259231
break;
232+
case "simpleBinding":
233+
ast = this._parser.parseSimpleBinding(obj['input'], obj['location']);
234+
break;
260235
case "interpolation":
261236
ast = this._parser.parseInterpolation(obj['input'], obj['location']);
262237
break;

modules/angular2/src/web-workers/ui/event_serializer.dart

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -52,45 +52,12 @@ final Map KEYBOARD_EVENT_PROPERTIES = {
5252
#type: String
5353
};
5454

55-
final Map EVENT_PROPERTIES = {
56-
#bubbles: bool,
57-
#cancelable: bool,
58-
#defaultPrevented: bool,
59-
#eventPhase: int,
60-
#timeStamp: int,
61-
#type: String
62-
};
63-
64-
// List of all elements with HTML value attribute.
65-
// Taken from: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
66-
final Set<String> NODES_WITH_VALUE =
67-
new Set<String>.from(["input", "select", "option", "button", "li", "meter", "progress", "param"]);
68-
69-
Map<String, dynamic> serializeGenericEvent(dynamic e) {
70-
return serializeEvent(e, EVENT_PROPERTIES);
71-
}
72-
73-
// TODO(jteplitz602): Allow users to specify the properties they need rather than always
74-
// adding value #3374
75-
Map<String, dynamic> serializeEventWithValue(dynamic e) {
76-
var serializedEvent = serializeEvent(e, EVENT_PROPERTIES);
77-
return addValue(e, serializedEvent);
78-
}
7955
Map<String, dynamic> serializeMouseEvent(dynamic e) {
8056
return serializeEvent(e, MOUSE_EVENT_PROPERTIES);
8157
}
8258

8359
Map<String, dynamic> serializeKeyboardEvent(dynamic e) {
84-
var serializedEvent = serializeEvent(e, KEYBOARD_EVENT_PROPERTIES);
85-
return addValue(e, serializedEvent);
86-
}
87-
88-
// TODO(jteplitz602): #3374. See above.
89-
Map<String, dynamic> addValue(dynamic e, Map<String, dynamic> serializedEvent) {
90-
if (NODES_WITH_VALUE.contains(e.target.tagName.toLowerCase())){
91-
serializedEvent['target'] = {'value': e.target.value};
92-
}
93-
return serializedEvent;
60+
return serializeEvent(e, KEYBOARD_EVENT_PROPERTIES);
9461
}
9562

9663
Map<String, dynamic> serializeEvent(dynamic e, Map<Symbol, Type> PROPERTIES) {

modules/angular2/src/web-workers/ui/event_serializer.ts

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {StringMap, Set} from 'angular2/src/facade/collection';
1+
import {StringMap} from 'angular2/src/facade/collection';
22

33
const MOUSE_EVENT_PROPERTIES = [
44
"altKey",
@@ -31,37 +31,12 @@ const KEYBOARD_EVENT_PROPERTIES = [
3131
'which'
3232
];
3333

34-
const EVENT_PROPERTIES = ['type', 'bubbles', 'cancelable'];
35-
36-
const NODES_WITH_VALUE =
37-
new Set(["input", "select", "option", "button", "li", "meter", "progress", "param"]);
38-
39-
export function serializeGenericEvent(e: Event): StringMap<string, any> {
40-
return serializeEvent(e, EVENT_PROPERTIES);
41-
}
42-
43-
// TODO(jteplitz602): Allow users to specify the properties they need rather than always
44-
// adding value #3374
45-
export function serializeEventWithValue(e: Event): StringMap<string, any> {
46-
var serializedEvent = serializeEvent(e, EVENT_PROPERTIES);
47-
return addValue(e, serializedEvent);
48-
}
49-
5034
export function serializeMouseEvent(e: MouseEvent): StringMap<string, any> {
5135
return serializeEvent(e, MOUSE_EVENT_PROPERTIES);
5236
}
5337

5438
export function serializeKeyboardEvent(e: KeyboardEvent): StringMap<string, any> {
55-
var serializedEvent = serializeEvent(e, KEYBOARD_EVENT_PROPERTIES);
56-
return addValue(e, serializedEvent);
57-
}
58-
59-
// TODO(jteplitz602): #3374. See above.
60-
function addValue(e: Event, serializedEvent: StringMap<string, any>): StringMap<string, any> {
61-
if (NODES_WITH_VALUE.has((<HTMLElement>e.target).tagName.toLowerCase())) {
62-
serializedEvent['target'] = {'value': (<HTMLInputElement>e.target).value};
63-
}
64-
return serializedEvent;
39+
return serializeEvent(e, KEYBOARD_EVENT_PROPERTIES);
6540
}
6641

6742
function serializeEvent(e: any, properties: List<string>): StringMap<string, any> {

modules/angular2/src/web-workers/ui/impl.ts

Lines changed: 2 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@ import {BrowserDomAdapter} from 'angular2/src/dom/browser_adapter';
3535
import {DOM} from 'angular2/src/dom/dom_adapter';
3636
import {
3737
serializeMouseEvent,
38-
serializeKeyboardEvent,
39-
serializeGenericEvent,
40-
serializeEventWithValue
38+
serializeKeyboardEvent
4139
} from 'angular2/src/web-workers/ui/event_serializer';
4240

4341
/**
@@ -238,8 +236,7 @@ class EventDispatcher implements RenderEventDispatcher {
238236
dispatchRenderEvent(elementIndex: number, eventName: string, locals: Map<string, any>) {
239237
var e = locals.get('$event');
240238
var serializedEvent;
241-
// TODO (jteplitz602): support custom events #3350
242-
switch (e.type) {
239+
switch (eventName) {
243240
case "click":
244241
case "mouseup":
245242
case "mousedown":
@@ -258,60 +255,6 @@ class EventDispatcher implements RenderEventDispatcher {
258255
case "keyup":
259256
serializedEvent = serializeKeyboardEvent(e);
260257
break;
261-
case "input":
262-
case "change":
263-
case "blur":
264-
serializedEvent = serializeEventWithValue(e);
265-
break;
266-
case "abort":
267-
case "afterprint":
268-
case "beforeprint":
269-
case "cached":
270-
case "canplay":
271-
case "canplaythrough":
272-
case "chargingchange":
273-
case "chargingtimechange":
274-
case "close":
275-
case "dischargingtimechange":
276-
case "DOMContentLoaded":
277-
case "downloading":
278-
case "durationchange":
279-
case "emptied":
280-
case "ended":
281-
case "error":
282-
case "fullscreenchange":
283-
case "fullscreenerror":
284-
case "invalid":
285-
case "languagechange":
286-
case "levelfchange":
287-
case "loadeddata":
288-
case "loadedmetadata":
289-
case "obsolete":
290-
case "offline":
291-
case "online":
292-
case "open":
293-
case "orientatoinchange":
294-
case "pause":
295-
case "pointerlockchange":
296-
case "pointerlockerror":
297-
case "play":
298-
case "playing":
299-
case "ratechange":
300-
case "readystatechange":
301-
case "reset":
302-
case "seeked":
303-
case "seeking":
304-
case "stalled":
305-
case "submit":
306-
case "success":
307-
case "suspend":
308-
case "timeupdate":
309-
case "updateready":
310-
case "visibilitychange":
311-
case "volumechange":
312-
case "waiting":
313-
serializedEvent = serializeGenericEvent(e);
314-
break;
315258
default:
316259
throw new BaseException(eventName + " not supported on WebWorkers");
317260
}

modules/angular2/src/web-workers/worker/broker.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {Injectable} from "angular2/di";
88
import {Type} from "angular2/src/facade/lang";
99
import {RenderViewRef, RenderEventDispatcher} from 'angular2/src/render/api';
1010
import {NgZone} from 'angular2/src/core/zone/ng_zone';
11-
import {deserializeGenericEvent} from './event_deserializer';
1211

1312
@Injectable()
1413
export class MessageBroker {
@@ -97,7 +96,6 @@ export class MessageBroker {
9796
private _dispatchEvent(eventData: RenderEventData): void {
9897
var dispatcher = this._eventDispatchRegistry.get(eventData.viewRef);
9998
this._zone.run(() => {
100-
eventData.locals['$event'] = deserializeGenericEvent(eventData.locals['$event']);
10199
dispatcher.dispatchRenderEvent(eventData.elementIndex, eventData.eventName, eventData.locals);
102100
});
103101
}

modules/angular2/src/web-workers/worker/event_deserializer.dart

Lines changed: 0 additions & 69 deletions
This file was deleted.

modules/angular2/src/web-workers/worker/event_deserializer.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.

modules/angular2/src/web-workers/worker/renderer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ export class WorkerRenderer implements Renderer {
171171
*/
172172
dehydrateView(viewRef: RenderViewRef) {
173173
var fnArgs = [new FnArg(viewRef, RenderViewRef)];
174-
var args = new UiArguments("renderer", "dehydrateView", fnArgs);
174+
var args = new UiArguments("renderer", "deyhdrateView", fnArgs);
175175
this._messageBroker.runOnUiThread(args, null);
176176
}
177177

modules/angular2/test/web-workers/worker/broker_spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ export function main() {
5353
'value': {
5454
'viewRef': viewRef.serialize(),
5555
'elementIndex': elementIndex,
56-
'eventName': eventName,
57-
'locals': {'$event': {'target': {value: null}}}
56+
'eventName': eventName
5857
}
5958
}
6059
});

modules/examples/e2e_test/web_workers/kitchen_sink/kitchen_sink_spec.dart

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)