@@ -42,6 +42,7 @@ import {
42
42
IS_PASSIVE ,
43
43
IS_ACTIVE ,
44
44
PASSIVE_NOT_SUPPORTED ,
45
+ LEGACY_FB_SUPPORT ,
45
46
} from 'legacy-events/EventSystemFlags' ;
46
47
47
48
import {
@@ -59,7 +60,7 @@ import {passiveBrowserEventsSupported} from './checkPassiveEvents';
59
60
import {
60
61
enableDeprecatedFlareAPI ,
61
62
enableModernEventSystem ,
62
- enableLegacyFBPrimerSupport ,
63
+ enableLegacyFBSupport ,
63
64
enableUseEventAPI ,
64
65
} from 'shared/ReactFeatureFlags' ;
65
66
import {
@@ -129,7 +130,7 @@ export function addResponderEventSystemEvent(
129
130
}
130
131
131
132
export function addTrappedEventListener (
132
- targetContainer : null | EventTarget ,
133
+ targetContainer : EventTarget ,
133
134
topLevelType : DOMTopLevelEventType ,
134
135
capture : boolean ,
135
136
legacyFBSupport ?: boolean ,
@@ -159,11 +160,15 @@ export function addTrappedEventListener(
159
160
if ( passive === true && ! passiveBrowserEventsSupported ) {
160
161
passive = false ;
161
162
}
163
+ const eventSystemFlags =
164
+ enableLegacyFBSupport && legacyFBSupport
165
+ ? PLUGIN_EVENT_SYSTEM | LEGACY_FB_SUPPORT
166
+ : PLUGIN_EVENT_SYSTEM ;
162
167
163
168
listener = listenerWrapper . bind (
164
169
null ,
165
170
topLevelType ,
166
- PLUGIN_EVENT_SYSTEM ,
171
+ eventSystemFlags ,
167
172
targetContainer ,
168
173
) ;
169
174
@@ -177,14 +182,17 @@ export function addTrappedEventListener(
177
182
targetContainer = document ;
178
183
}
179
184
180
- const validTargetContainer = ( ( targetContainer : any ) : EventTarget ) ;
185
+ const targetContainerToUse =
186
+ enableLegacyFBSupport && legacyFBSupport
187
+ ? ( targetContainer : any ) . ownerDocument
188
+ : targetContainer ;
181
189
182
190
const rawEventName = getRawEventName ( topLevelType ) ;
183
191
184
192
let unsubscribeListener ;
185
193
// When legacyFBSupport is enabled, it's for when we
186
194
// want to add a one time event listener to a container.
187
- // This should only be used with enableLegacyFBPrimerSupport
195
+ // This should only be used with enableLegacyFBSupport
188
196
// due to requirement to provide compatibility with
189
197
// internal FB www event tooling. This works by removing
190
198
// the event listener as soon as it is invoked. We could
@@ -193,14 +201,14 @@ export function addTrappedEventListener(
193
201
// browsers do not support this today, and given this is
194
202
// to support legacy code patterns, it's likely they'll
195
203
// need support for such browsers.
196
- if ( enableLegacyFBPrimerSupport && legacyFBSupport ) {
204
+ if ( enableLegacyFBSupport && legacyFBSupport ) {
197
205
const originalListener = listener ;
198
206
listener = function ( ...p ) {
199
207
try {
200
208
return originalListener . apply ( this , p ) ;
201
209
} finally {
202
210
removeEventListener (
203
- validTargetContainer ,
211
+ targetContainerToUse ,
204
212
rawEventName ,
205
213
unsubscribeListener ,
206
214
capture ,
@@ -212,14 +220,14 @@ export function addTrappedEventListener(
212
220
if ( enableUseEventAPI && passive !== undefined ) {
213
221
// This is only used with passive is either true or false.
214
222
unsubscribeListener = addEventCaptureListenerWithPassiveFlag (
215
- validTargetContainer ,
223
+ targetContainerToUse ,
216
224
rawEventName ,
217
225
listener ,
218
226
passive ,
219
227
) ;
220
228
} else {
221
229
unsubscribeListener = addEventCaptureListener (
222
- validTargetContainer ,
230
+ targetContainerToUse ,
223
231
rawEventName ,
224
232
listener ,
225
233
) ;
@@ -228,14 +236,14 @@ export function addTrappedEventListener(
228
236
if ( enableUseEventAPI && passive !== undefined ) {
229
237
// This is only used with passive is either true or false.
230
238
unsubscribeListener = addEventBubbleListenerWithPassiveFlag (
231
- validTargetContainer ,
239
+ targetContainerToUse ,
232
240
rawEventName ,
233
241
listener ,
234
242
passive ,
235
243
) ;
236
244
} else {
237
245
unsubscribeListener = addEventBubbleListener (
238
- validTargetContainer ,
246
+ targetContainerToUse ,
239
247
rawEventName ,
240
248
listener ,
241
249
) ;
@@ -249,7 +257,6 @@ export function removeTrappedEventListener(
249
257
topLevelType : DOMTopLevelEventType ,
250
258
capture : boolean ,
251
259
listener : any => void ,
252
- passive : void | boolean ,
253
260
) : void {
254
261
const rawEventName = getRawEventName ( topLevelType ) ;
255
262
removeEventListener ( targetContainer , rawEventName , listener , capture ) ;
0 commit comments