Revert "fix(core): should use native addEventListener in ngZone (#20672)"
This reverts commit 65a2cb830716afaace03684e4023e7b0e24d669f.
This commit is contained in:
parent
f3c5481181
commit
ba850b36de
@ -154,8 +154,7 @@ export class DomEventsPlugin extends EventManagerPlugin {
|
|||||||
let callback: EventListener = handler as EventListener;
|
let callback: EventListener = handler as EventListener;
|
||||||
// if zonejs is loaded and current zone is not ngZone
|
// if zonejs is loaded and current zone is not ngZone
|
||||||
// we keep Zone.current on target for later restoration.
|
// we keep Zone.current on target for later restoration.
|
||||||
if (zoneJsLoaded) {
|
if (zoneJsLoaded && (!NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {
|
||||||
if (!NgZone.isInAngularZone() || isBlackListedEvent(eventName)) {
|
|
||||||
let symbolName = symbolNames[eventName];
|
let symbolName = symbolNames[eventName];
|
||||||
if (!symbolName) {
|
if (!symbolName) {
|
||||||
symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);
|
symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);
|
||||||
@ -186,18 +185,6 @@ export class DomEventsPlugin extends EventManagerPlugin {
|
|||||||
element[ADD_EVENT_LISTENER](eventName, globalListener, false);
|
element[ADD_EVENT_LISTENER](eventName, globalListener, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// if zone.js loaded and we are in angular zone, we don't need to
|
|
||||||
// use zone.js patched addEventListener
|
|
||||||
const wrappedCallback = function() {
|
|
||||||
return self.ngZone.run(callback, this, arguments as any);
|
|
||||||
};
|
|
||||||
zoneJsLoaded.apply(element, [eventName, wrappedCallback, false]);
|
|
||||||
// we just use the underlying removeEventListener
|
|
||||||
return () => element[REMOVE_EVENT_LISTENER].apply(
|
|
||||||
element, [eventName, wrappedCallback, false]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// use zone.js patched addEventListener or native addEventListener if zone.js not loaded
|
|
||||||
element[NATIVE_ADD_LISTENER](eventName, callback, false);
|
element[NATIVE_ADD_LISTENER](eventName, callback, false);
|
||||||
}
|
}
|
||||||
return () => this.removeEventListener(element, eventName, callback);
|
return () => this.removeEventListener(element, eventName, callback);
|
||||||
@ -209,8 +196,6 @@ export class DomEventsPlugin extends EventManagerPlugin {
|
|||||||
if (!underlyingRemove) {
|
if (!underlyingRemove) {
|
||||||
return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);
|
return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if zone.js loaded and wrappedCallback not exists, the callback was added in different zone
|
|
||||||
let symbolName = symbolNames[eventName];
|
let symbolName = symbolNames[eventName];
|
||||||
let taskDatas: TaskData[] = symbolName && target[symbolName];
|
let taskDatas: TaskData[] = symbolName && target[symbolName];
|
||||||
if (!taskDatas) {
|
if (!taskDatas) {
|
||||||
|
@ -283,7 +283,7 @@ export function main() {
|
|||||||
});
|
});
|
||||||
getDOM().dispatchEvent(element, dispatchedEvent);
|
getDOM().dispatchEvent(element, dispatchedEvent);
|
||||||
expect(receivedEvents).toEqual([dispatchedEvent, dispatchedEvent]);
|
expect(receivedEvents).toEqual([dispatchedEvent, dispatchedEvent]);
|
||||||
expect(receivedZones).toEqual([Zone.root.name, 'angular']);
|
expect(receivedZones).toEqual([Zone.root.name, 'fakeAngularZone']);
|
||||||
|
|
||||||
receivedEvents = [];
|
receivedEvents = [];
|
||||||
remover1 && remover1();
|
remover1 && remover1();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user