xref: /aosp_15_r20/development/tools/winscope/src/polyfills.ts (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
1*90c8c64dSAndroid Build Coastguard Worker/**
2*90c8c64dSAndroid Build Coastguard Worker * This file includes polyfills needed by Angular and is loaded before the app.
3*90c8c64dSAndroid Build Coastguard Worker * You can add your own extra polyfills to this file.
4*90c8c64dSAndroid Build Coastguard Worker *
5*90c8c64dSAndroid Build Coastguard Worker * This file is divided into 2 sections:
6*90c8c64dSAndroid Build Coastguard Worker *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
7*90c8c64dSAndroid Build Coastguard Worker *   2. Application imports. Files imported after ZoneJS that should be loaded before your main
8*90c8c64dSAndroid Build Coastguard Worker *      file.
9*90c8c64dSAndroid Build Coastguard Worker *
10*90c8c64dSAndroid Build Coastguard Worker * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
11*90c8c64dSAndroid Build Coastguard Worker * automatically update themselves. This includes recent versions of Safari, Chrome (including
12*90c8c64dSAndroid Build Coastguard Worker * Opera), Edge on the desktop, and iOS and Chrome on mobile.
13*90c8c64dSAndroid Build Coastguard Worker *
14*90c8c64dSAndroid Build Coastguard Worker * Learn more in https://angular.io/guide/browser-support
15*90c8c64dSAndroid Build Coastguard Worker */
16*90c8c64dSAndroid Build Coastguard Worker
17*90c8c64dSAndroid Build Coastguard Worker/***************************************************************************************************
18*90c8c64dSAndroid Build Coastguard Worker * BROWSER POLYFILLS
19*90c8c64dSAndroid Build Coastguard Worker */
20*90c8c64dSAndroid Build Coastguard Worker
21*90c8c64dSAndroid Build Coastguard Worker/**
22*90c8c64dSAndroid Build Coastguard Worker * By default, zone.js will patch all possible macroTask and DomEvents
23*90c8c64dSAndroid Build Coastguard Worker * user can disable parts of macroTask/DomEvents patch by setting following flags
24*90c8c64dSAndroid Build Coastguard Worker * because those flags need to be set before `zone.js` being loaded, and webpack
25*90c8c64dSAndroid Build Coastguard Worker * will put import in the top of bundle, so user need to create a separate file
26*90c8c64dSAndroid Build Coastguard Worker * in this directory (for example: zone-flags.ts), and put the following flags
27*90c8c64dSAndroid Build Coastguard Worker * into that file, and then add the following code before importing zone.js.
28*90c8c64dSAndroid Build Coastguard Worker * import './zone-flags';
29*90c8c64dSAndroid Build Coastguard Worker *
30*90c8c64dSAndroid Build Coastguard Worker * The flags allowed in zone-flags.ts are listed here.
31*90c8c64dSAndroid Build Coastguard Worker *
32*90c8c64dSAndroid Build Coastguard Worker * The following flags will work for all browsers.
33*90c8c64dSAndroid Build Coastguard Worker *
34*90c8c64dSAndroid Build Coastguard Worker * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
35*90c8c64dSAndroid Build Coastguard Worker * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
36*90c8c64dSAndroid Build Coastguard Worker * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
37*90c8c64dSAndroid Build Coastguard Worker *
38*90c8c64dSAndroid Build Coastguard Worker *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
39*90c8c64dSAndroid Build Coastguard Worker *  with the following flag, it will bypass `zone.js` patch for IE/Edge
40*90c8c64dSAndroid Build Coastguard Worker *
41*90c8c64dSAndroid Build Coastguard Worker *  (window as any).__Zone_enable_cross_context_check = true;
42*90c8c64dSAndroid Build Coastguard Worker *
43*90c8c64dSAndroid Build Coastguard Worker */
44*90c8c64dSAndroid Build Coastguard Workerimport './zone-flags.ts';
45*90c8c64dSAndroid Build Coastguard Worker/***************************************************************************************************
46*90c8c64dSAndroid Build Coastguard Worker * Zone JS is required by default for Angular itself.
47*90c8c64dSAndroid Build Coastguard Worker */
48*90c8c64dSAndroid Build Coastguard Workerimport 'zone.js'; // Included with Angular CLI.
49*90c8c64dSAndroid Build Coastguard Worker
50*90c8c64dSAndroid Build Coastguard Worker/***************************************************************************************************
51*90c8c64dSAndroid Build Coastguard Worker * APPLICATION IMPORTS
52*90c8c64dSAndroid Build Coastguard Worker */
53