tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_serviceworker_interfaces.js (30418B)


      1 /* eslint-disable mozilla/no-comparison-or-assignment-inside-ok */
      2 
      3 importScripts("../../tests/mochitest/general/interface_exposure_checker.js");
      4 
      5 // This is a list of all interfaces that are exposed to workers.
      6 // Please only add things to this list with great care and proper review
      7 // from the associated module peers.
      8 
      9 // This file lists global interfaces we want exposed and verifies they
     10 // are what we intend. Each entry in the arrays below can either be a
     11 // simple string with the interface name, or an object with a 'name'
     12 // property giving the interface name as a string, and additional
     13 // properties which qualify the exposure of that interface. For example:
     14 //
     15 // [
     16 //   "AGlobalInterface", // secure context only
     17 //   { name: "DesktopOnlyThing", desktop: true },
     18 //   { name: "DisabledEverywhere", disabled: true },
     19 //   { name: "ExperimentalThing", release: false },
     20 //   { name: "ReallyExperimentalThing", nightly: true },
     21 // ];
     22 //
     23 // Note that the items are alphabetically sorted. This is a requirement.
     24 // See createInterfaceMap() in interface_exposure_checker.js for a complete
     25 // list of properties.
     26 
     27 // IMPORTANT: Do not change this list without review from
     28 //            a JavaScript Engine peer!
     29 let wasmGlobalEntry = {
     30  name: "WebAssembly",
     31  insecureContext: true,
     32  disabled: !getJSTestingFunctions().wasmIsSupportedByHardware(),
     33 };
     34 let wasmGlobalInterfaces = [
     35  { name: "CompileError", insecureContext: true },
     36  { name: "Exception", insecureContext: true },
     37  { name: "Function", insecureContext: true, nightly: true },
     38  { name: "Global", insecureContext: true },
     39  { name: "Instance", insecureContext: true },
     40  { name: "JSTag", insecureContext: true },
     41  { name: "LinkError", insecureContext: true },
     42  { name: "Memory", insecureContext: true },
     43  { name: "Module", insecureContext: true },
     44  { name: "RuntimeError", insecureContext: true },
     45  { name: "Table", insecureContext: true },
     46  { name: "Tag", insecureContext: true },
     47  { name: "compile", insecureContext: true },
     48  { name: "compileStreaming", insecureContext: true },
     49  { name: "instantiate", insecureContext: true },
     50  { name: "instantiateStreaming", insecureContext: true },
     51  { name: "validate", insecureContext: true },
     52 ];
     53 // IMPORTANT: Do not change this list without review from
     54 //            a JavaScript Engine peer!
     55 let ecmaGlobals = [
     56  "AggregateError",
     57  "Array",
     58  "ArrayBuffer",
     59  "AsyncDisposableStack",
     60  "Atomics",
     61  "BigInt",
     62  "BigInt64Array",
     63  "BigUint64Array",
     64  "Boolean",
     65  "DataView",
     66  "Date",
     67  "DisposableStack",
     68  "Error",
     69  "EvalError",
     70  "FinalizationRegistry",
     71  "Float16Array",
     72  "Float32Array",
     73  "Float64Array",
     74  "Function",
     75  "Infinity",
     76  "Int16Array",
     77  "Int32Array",
     78  "Int8Array",
     79  "InternalError",
     80  "Intl",
     81  "Iterator",
     82  "JSON",
     83  "Map",
     84  "Math",
     85  "NaN",
     86  "Number",
     87  "Object",
     88  "Promise",
     89  "Proxy",
     90  "RangeError",
     91  "ReferenceError",
     92  "Reflect",
     93  "RegExp",
     94  "Set",
     95  { name: "SharedArrayBuffer", crossOriginIsolated: true },
     96  "String",
     97  "SuppressedError",
     98  "Symbol",
     99  "SyntaxError",
    100  "Temporal",
    101  "TypeError",
    102  "URIError",
    103  "Uint16Array",
    104  "Uint32Array",
    105  "Uint8Array",
    106  "Uint8ClampedArray",
    107  "WeakMap",
    108  "WeakRef",
    109  "WeakSet",
    110  wasmGlobalEntry,
    111  "decodeURI",
    112  "decodeURIComponent",
    113  "encodeURI",
    114  "encodeURIComponent",
    115  "escape",
    116  "eval",
    117  "globalThis",
    118  "isFinite",
    119  "isNaN",
    120  "parseFloat",
    121  "parseInt",
    122  "undefined",
    123  "unescape",
    124 ];
    125 // IMPORTANT: Do not change the list above without review from
    126 //            a JavaScript Engine peer!
    127 
    128 // IMPORTANT: Do not change the list below without review from a DOM peer!
    129 let interfaceNamesInGlobalScope = [
    130  // IMPORTANT: Do not change this list without review from a DOM peer!
    131  "AbortController",
    132  // IMPORTANT: Do not change this list without review from a DOM peer!
    133  "AbortSignal",
    134  // IMPORTANT: Do not change this list without review from a DOM peer!
    135  "Blob",
    136  // IMPORTANT: Do not change this list without review from a DOM peer!
    137  "BroadcastChannel",
    138  // IMPORTANT: Do not change this list without review from a DOM peer!
    139  "ByteLengthQueuingStrategy",
    140  // IMPORTANT: Do not change this list without review from a DOM peer!
    141  "Cache",
    142  // IMPORTANT: Do not change this list without review from a DOM peer!
    143  "CacheStorage",
    144  // IMPORTANT: Do not change this list without review from a DOM peer!
    145  "CanvasGradient",
    146  // IMPORTANT: Do not change this list without review from a DOM peer!
    147  "CanvasPattern",
    148  // IMPORTANT: Do not change this list without review from a DOM peer!
    149  "Client",
    150  // IMPORTANT: Do not change this list without review from a DOM peer!
    151  "Clients",
    152  // IMPORTANT: Do not change this list without review from a DOM peer!
    153  "CloseEvent",
    154  // IMPORTANT: Do not change this list without review from a DOM peer!
    155  "CompressionStream",
    156  // IMPORTANT: Do not change this list without review from a DOM peer!
    157  "CookieStore",
    158  // IMPORTANT: Do not change this list without review from a DOM peer!
    159  "CookieStoreManager",
    160  // IMPORTANT: Do not change this list without review from a DOM peer!
    161  "CountQueuingStrategy",
    162  // IMPORTANT: Do not change this list without review from a DOM peer!
    163  "Crypto",
    164  // IMPORTANT: Do not change this list without review from a DOM peer!
    165  "CryptoKey",
    166  // IMPORTANT: Do not change this list without review from a DOM peer!
    167  "CustomEvent",
    168  // IMPORTANT: Do not change this list without review from a DOM peer!
    169  "DOMException",
    170  // IMPORTANT: Do not change this list without review from a DOM peer!
    171  "DOMMatrix",
    172  // IMPORTANT: Do not change this list without review from a DOM peer!
    173  "DOMMatrixReadOnly",
    174  // IMPORTANT: Do not change this list without review from a DOM peer!
    175  "DOMPoint",
    176  // IMPORTANT: Do not change this list without review from a DOM peer!
    177  "DOMPointReadOnly",
    178  // IMPORTANT: Do not change this list without review from a DOM peer!
    179  "DOMQuad",
    180  // IMPORTANT: Do not change this list without review from a DOM peer!
    181  "DOMRect",
    182  // IMPORTANT: Do not change this list without review from a DOM peer!
    183  "DOMRectReadOnly",
    184  // IMPORTANT: Do not change this list without review from a DOM peer!
    185  "DOMStringList",
    186  // IMPORTANT: Do not change this list without review from a DOM peer!
    187  "DecompressionStream",
    188  // IMPORTANT: Do not change this list without review from a DOM peer!
    189  "Directory",
    190  // IMPORTANT: Do not change this list without review from a DOM peer!
    191  "ErrorEvent",
    192  // IMPORTANT: Do not change this list without review from a DOM peer!
    193  "Event",
    194  // IMPORTANT: Do not change this list without review from a DOM peer!
    195  "EventSource",
    196  // IMPORTANT: Do not change this list without review from a DOM peer!
    197  "EventTarget",
    198  // IMPORTANT: Do not change this list without review from a DOM peer!
    199  "ExtendableCookieChangeEvent",
    200  // IMPORTANT: Do not change this list without review from a DOM peer!
    201  "ExtendableEvent",
    202  // IMPORTANT: Do not change this list without review from a DOM peer!
    203  "ExtendableMessageEvent",
    204  // IMPORTANT: Do not change this list without review from a DOM peer!
    205  "FetchEvent",
    206  // IMPORTANT: Do not change this list without review from a DOM peer!
    207  "File",
    208  // IMPORTANT: Do not change this list without review from a DOM peer!
    209  "FileList",
    210  // IMPORTANT: Do not change this list without review from a DOM peer!
    211  "FileReader",
    212  // IMPORTANT: Do not change this list without review from a DOM peer!
    213  { name: "FileSystemDirectoryHandle" },
    214  // IMPORTANT: Do not change this list without review from a DOM peer!
    215  { name: "FileSystemFileHandle" },
    216  // IMPORTANT: Do not change this list without review from a DOM peer!
    217  { name: "FileSystemHandle" },
    218  // IMPORTANT: Do not change this list without review from a DOM peer!
    219  { name: "FileSystemWritableFileStream" },
    220  // IMPORTANT: Do not change this list without review from a DOM peer!
    221  "FontFace",
    222  // IMPORTANT: Do not change this list without review from a DOM peer!
    223  "FontFaceSet",
    224  // IMPORTANT: Do not change this list without review from a DOM peer!
    225  "FontFaceSetLoadEvent",
    226  // IMPORTANT: Do not change this list without review from a DOM peer!
    227  "FormData",
    228  // IMPORTANT: Do not change this list without review from a DOM peer!
    229  { name: "GPU", earlyBetaOrEarlier: true },
    230  { name: "GPU", windows: true },
    231  { name: "GPU", mac: true, aarch64: true },
    232  // IMPORTANT: Do not change this list without review from a DOM peer!
    233  { name: "GPUAdapter", earlyBetaOrEarlier: true },
    234  { name: "GPUAdapter", windows: true },
    235  { name: "GPUAdapter", mac: true, aarch64: true },
    236  // IMPORTANT: Do not change this list without review from a DOM peer!
    237  { name: "GPUAdapterInfo", earlyBetaOrEarlier: true },
    238  { name: "GPUAdapterInfo", windows: true },
    239  { name: "GPUAdapterInfo", mac: true, aarch64: true },
    240  // IMPORTANT: Do not change this list without review from a DOM peer!
    241  { name: "GPUBindGroup", earlyBetaOrEarlier: true },
    242  { name: "GPUBindGroup", windows: true },
    243  { name: "GPUBindGroup", mac: true, aarch64: true },
    244  // IMPORTANT: Do not change this list without review from a DOM peer!
    245  { name: "GPUBindGroupLayout", earlyBetaOrEarlier: true },
    246  { name: "GPUBindGroupLayout", windows: true },
    247  { name: "GPUBindGroupLayout", mac: true, aarch64: true },
    248  // IMPORTANT: Do not change this list without review from a DOM peer!
    249  { name: "GPUBuffer", earlyBetaOrEarlier: true },
    250  { name: "GPUBuffer", windows: true },
    251  { name: "GPUBuffer", mac: true, aarch64: true },
    252  // IMPORTANT: Do not change this list without review from a DOM peer!
    253  { name: "GPUBufferUsage", earlyBetaOrEarlier: true },
    254  { name: "GPUBufferUsage", windows: true },
    255  { name: "GPUBufferUsage", mac: true, aarch64: true },
    256  // IMPORTANT: Do not change this list without review from a DOM peer!
    257  { name: "GPUCanvasContext", earlyBetaOrEarlier: true },
    258  { name: "GPUCanvasContext", windows: true },
    259  { name: "GPUCanvasContext", mac: true, aarch64: true },
    260  // IMPORTANT: Do not change this list without review from a DOM peer!
    261  { name: "GPUColorWrite", earlyBetaOrEarlier: true },
    262  { name: "GPUColorWrite", windows: true },
    263  { name: "GPUColorWrite", mac: true, aarch64: true },
    264  // IMPORTANT: Do not change this list without review from a DOM peer!
    265  { name: "GPUCommandBuffer", earlyBetaOrEarlier: true },
    266  { name: "GPUCommandBuffer", windows: true },
    267  { name: "GPUCommandBuffer", mac: true, aarch64: true },
    268  // IMPORTANT: Do not change this list without review from a DOM peer!
    269  { name: "GPUCommandEncoder", earlyBetaOrEarlier: true },
    270  { name: "GPUCommandEncoder", windows: true },
    271  { name: "GPUCommandEncoder", mac: true, aarch64: true },
    272  // IMPORTANT: Do not change this list without review from a DOM peer!
    273  { name: "GPUCompilationInfo", earlyBetaOrEarlier: true },
    274  { name: "GPUCompilationInfo", windows: true },
    275  { name: "GPUCompilationInfo", mac: true, aarch64: true },
    276  // IMPORTANT: Do not change this list without review from a DOM peer!
    277  { name: "GPUCompilationMessage", earlyBetaOrEarlier: true },
    278  { name: "GPUCompilationMessage", windows: true },
    279  { name: "GPUCompilationMessage", mac: true, aarch64: true },
    280  // IMPORTANT: Do not change this list without review from a DOM peer!
    281  { name: "GPUComputePassEncoder", earlyBetaOrEarlier: true },
    282  { name: "GPUComputePassEncoder", windows: true },
    283  { name: "GPUComputePassEncoder", mac: true, aarch64: true },
    284  // IMPORTANT: Do not change this list without review from a DOM peer!
    285  { name: "GPUComputePipeline", earlyBetaOrEarlier: true },
    286  { name: "GPUComputePipeline", windows: true },
    287  { name: "GPUComputePipeline", mac: true, aarch64: true },
    288  // IMPORTANT: Do not change this list without review from a DOM peer!
    289  { name: "GPUDevice", earlyBetaOrEarlier: true },
    290  { name: "GPUDevice", windows: true },
    291  { name: "GPUDevice", mac: true, aarch64: true },
    292  // IMPORTANT: Do not change this list without review from a DOM peer!
    293  { name: "GPUDeviceLostInfo", earlyBetaOrEarlier: true },
    294  { name: "GPUDeviceLostInfo", windows: true },
    295  { name: "GPUDeviceLostInfo", mac: true, aarch64: true },
    296  // IMPORTANT: Do not change this list without review from a DOM peer!
    297  { name: "GPUError", earlyBetaOrEarlier: true },
    298  { name: "GPUError", windows: true },
    299  { name: "GPUError", mac: true, aarch64: true },
    300  // IMPORTANT: Do not change this list without review from a DOM peer!
    301  { name: "GPUExternalTexture", earlyBetaOrEarlier: true },
    302  { name: "GPUExternalTexture", windows: true },
    303  { name: "GPUExternalTexture", mac: true, aarch64: true },
    304  // IMPORTANT: Do not change this list without review from a DOM peer!
    305  { name: "GPUInternalError", earlyBetaOrEarlier: true },
    306  { name: "GPUInternalError", windows: true },
    307  { name: "GPUInternalError", mac: true, aarch64: true },
    308  // IMPORTANT: Do not change this list without review from a DOM peer!
    309  { name: "GPUMapMode", earlyBetaOrEarlier: true },
    310  { name: "GPUMapMode", windows: true },
    311  { name: "GPUMapMode", mac: true, aarch64: true },
    312  // IMPORTANT: Do not change this list without review from a DOM peer!
    313  { name: "GPUOutOfMemoryError", earlyBetaOrEarlier: true },
    314  { name: "GPUOutOfMemoryError", windows: true },
    315  { name: "GPUOutOfMemoryError", mac: true, aarch64: true },
    316  // IMPORTANT: Do not change this list without review from a DOM peer!
    317  { name: "GPUPipelineError", earlyBetaOrEarlier: true },
    318  { name: "GPUPipelineError", windows: true },
    319  { name: "GPUPipelineError", mac: true, aarch64: true },
    320  // IMPORTANT: Do not change this list without review from a DOM peer!
    321  { name: "GPUPipelineLayout", earlyBetaOrEarlier: true },
    322  { name: "GPUPipelineLayout", windows: true },
    323  { name: "GPUPipelineLayout", mac: true, aarch64: true },
    324  // IMPORTANT: Do not change this list without review from a DOM peer!
    325  { name: "GPUQuerySet", earlyBetaOrEarlier: true },
    326  { name: "GPUQuerySet", windows: true },
    327  { name: "GPUQuerySet", mac: true, aarch64: true },
    328  // IMPORTANT: Do not change this list without review from a DOM peer!
    329  { name: "GPUQueue", earlyBetaOrEarlier: true },
    330  { name: "GPUQueue", windows: true },
    331  { name: "GPUQueue", mac: true, aarch64: true },
    332  // IMPORTANT: Do not change this list without review from a DOM peer!
    333  { name: "GPURenderBundle", earlyBetaOrEarlier: true },
    334  { name: "GPURenderBundle", windows: true },
    335  { name: "GPURenderBundle", mac: true, aarch64: true },
    336  // IMPORTANT: Do not change this list without review from a DOM peer!
    337  { name: "GPURenderBundleEncoder", earlyBetaOrEarlier: true },
    338  { name: "GPURenderBundleEncoder", windows: true },
    339  { name: "GPURenderBundleEncoder", mac: true, aarch64: true },
    340  // IMPORTANT: Do not change this list without review from a DOM peer!
    341  { name: "GPURenderPassEncoder", earlyBetaOrEarlier: true },
    342  { name: "GPURenderPassEncoder", windows: true },
    343  { name: "GPURenderPassEncoder", mac: true, aarch64: true },
    344  // IMPORTANT: Do not change this list without review from a DOM peer!
    345  { name: "GPURenderPipeline", earlyBetaOrEarlier: true },
    346  { name: "GPURenderPipeline", windows: true },
    347  { name: "GPURenderPipeline", mac: true, aarch64: true },
    348  // IMPORTANT: Do not change this list without review from a DOM peer!
    349  { name: "GPUSampler", earlyBetaOrEarlier: true },
    350  { name: "GPUSampler", windows: true },
    351  { name: "GPUSampler", mac: true, aarch64: true },
    352  // IMPORTANT: Do not change this list without review from a DOM peer!
    353  { name: "GPUShaderModule", earlyBetaOrEarlier: true },
    354  { name: "GPUShaderModule", windows: true },
    355  { name: "GPUShaderModule", mac: true, aarch64: true },
    356  // IMPORTANT: Do not change this list without review from a DOM peer!
    357  { name: "GPUShaderStage", earlyBetaOrEarlier: true },
    358  { name: "GPUShaderStage", windows: true },
    359  { name: "GPUShaderStage", mac: true, aarch64: true },
    360  // IMPORTANT: Do not change this list without review from a DOM peer!
    361  { name: "GPUSupportedFeatures", earlyBetaOrEarlier: true },
    362  { name: "GPUSupportedFeatures", windows: true },
    363  { name: "GPUSupportedFeatures", mac: true, aarch64: true },
    364  // IMPORTANT: Do not change this list without review from a DOM peer!
    365  { name: "GPUSupportedLimits", earlyBetaOrEarlier: true },
    366  { name: "GPUSupportedLimits", windows: true },
    367  { name: "GPUSupportedLimits", mac: true, aarch64: true },
    368  // IMPORTANT: Do not change this list without review from a DOM peer!
    369  { name: "GPUTexture", earlyBetaOrEarlier: true },
    370  { name: "GPUTexture", windows: true },
    371  { name: "GPUTexture", mac: true, aarch64: true },
    372  // IMPORTANT: Do not change this list without review from a DOM peer!
    373  { name: "GPUTextureUsage", earlyBetaOrEarlier: true },
    374  { name: "GPUTextureUsage", windows: true },
    375  { name: "GPUTextureUsage", mac: true, aarch64: true },
    376  // IMPORTANT: Do not change this list without review from a DOM peer!
    377  { name: "GPUTextureView", earlyBetaOrEarlier: true },
    378  { name: "GPUTextureView", windows: true },
    379  { name: "GPUTextureView", mac: true, aarch64: true },
    380  // IMPORTANT: Do not change this list without review from a DOM peer!
    381  { name: "GPUUncapturedErrorEvent", earlyBetaOrEarlier: true },
    382  { name: "GPUUncapturedErrorEvent", windows: true },
    383  { name: "GPUUncapturedErrorEvent", mac: true, aarch64: true },
    384  // IMPORTANT: Do not change this list without review from a DOM peer!
    385  { name: "GPUValidationError", earlyBetaOrEarlier: true },
    386  { name: "GPUValidationError", windows: true },
    387  { name: "GPUValidationError", mac: true, aarch64: true },
    388  // IMPORTANT: Do not change this list without review from a DOM peer!
    389  "Headers",
    390  // IMPORTANT: Do not change this list without review from a DOM peer!
    391  "IDBCursor",
    392  // IMPORTANT: Do not change this list without review from a DOM peer!
    393  "IDBCursorWithValue",
    394  // IMPORTANT: Do not change this list without review from a DOM peer!
    395  "IDBDatabase",
    396  // IMPORTANT: Do not change this list without review from a DOM peer!
    397  "IDBFactory",
    398  // IMPORTANT: Do not change this list without review from a DOM peer!
    399  "IDBIndex",
    400  // IMPORTANT: Do not change this list without review from a DOM peer!
    401  "IDBKeyRange",
    402  // IMPORTANT: Do not change this list without review from a DOM peer!
    403  "IDBObjectStore",
    404  // IMPORTANT: Do not change this list without review from a DOM peer!
    405  "IDBOpenDBRequest",
    406  // IMPORTANT: Do not change this list without review from a DOM peer!
    407  "IDBRequest",
    408  // IMPORTANT: Do not change this list without review from a DOM peer!
    409  "IDBTransaction",
    410  // IMPORTANT: Do not change this list without review from a DOM peer!
    411  "IDBVersionChangeEvent",
    412  // IMPORTANT: Do not change this list without review from a DOM peer!
    413  "ImageBitmap",
    414  // IMPORTANT: Do not change this list without review from a DOM peer!
    415  "ImageBitmapRenderingContext",
    416  // IMPORTANT: Do not change this list without review from a DOM peer!
    417  "ImageData",
    418  // IMPORTANT: Do not change this list without review from a DOM peer!
    419  "Lock",
    420  // IMPORTANT: Do not change this list without review from a DOM peer!
    421  "LockManager",
    422  // IMPORTANT: Do not change this list without review from a DOM peer!
    423  "MediaCapabilities",
    424  // IMPORTANT: Do not change this list without review from a DOM peer!
    425  "MessageChannel",
    426  // IMPORTANT: Do not change this list without review from a DOM peer!
    427  "MessageEvent",
    428  // IMPORTANT: Do not change this list without review from a DOM peer!
    429  "MessagePort",
    430  // IMPORTANT: Do not change this list without review from a DOM peer!
    431  "NavigationPreloadManager",
    432  // IMPORTANT: Do not change this list without review from a DOM peer!
    433  { name: "NetworkInformation", disabled: true },
    434  // IMPORTANT: Do not change this list without review from a DOM peer!
    435  "Notification",
    436  // IMPORTANT: Do not change this list without review from a DOM peer!
    437  "NotificationEvent",
    438  // IMPORTANT: Do not change this list without review from a DOM peer!
    439  "OffscreenCanvas",
    440  // IMPORTANT: Do not change this list without review from a DOM peer!
    441  "OffscreenCanvasRenderingContext2D",
    442  // IMPORTANT: Do not change this list without review from a DOM peer!
    443  "Path2D",
    444  // IMPORTANT: Do not change this list without review from a DOM peer!
    445  "Performance",
    446  // IMPORTANT: Do not change this list without review from a DOM peer!
    447  "PerformanceEntry",
    448  // IMPORTANT: Do not change this list without review from a DOM peer!
    449  "PerformanceMark",
    450  // IMPORTANT: Do not change this list without review from a DOM peer!
    451  "PerformanceMeasure",
    452  // IMPORTANT: Do not change this list without review from a DOM peer!
    453  "PerformanceObserver",
    454  // IMPORTANT: Do not change this list without review from a DOM peer!
    455  "PerformanceObserverEntryList",
    456  // IMPORTANT: Do not change this list without review from a DOM peer!
    457  "PerformanceResourceTiming",
    458  // IMPORTANT: Do not change this list without review from a DOM peer!
    459  "PerformanceServerTiming",
    460  // IMPORTANT: Do not change this list without review from a DOM peer!
    461  "PermissionStatus",
    462  // IMPORTANT: Do not change this list without review from a DOM peer!
    463  "Permissions",
    464  // IMPORTANT: Do not change this list without review from a DOM peer!
    465  "ProgressEvent",
    466  // IMPORTANT: Do not change this list without review from a DOM peer!
    467  "PromiseRejectionEvent",
    468  // IMPORTANT: Do not change this list without review from a DOM peer!
    469  "PushEvent",
    470  // IMPORTANT: Do not change this list without review from a DOM peer!
    471  "PushManager",
    472  // IMPORTANT: Do not change this list without review from a DOM peer!
    473  "PushMessageData",
    474  // IMPORTANT: Do not change this list without review from a DOM peer!
    475  "PushSubscription",
    476  // IMPORTANT: Do not change this list without review from a DOM peer!
    477  "PushSubscriptionChangeEvent",
    478  // IMPORTANT: Do not change this list without review from a DOM peer!
    479  "PushSubscriptionOptions",
    480  // IMPORTANT: Do not change this list without review from a DOM peer!
    481  "ReadableByteStreamController",
    482  // IMPORTANT: Do not change this list without review from a DOM peer!
    483  "ReadableStream",
    484  // IMPORTANT: Do not change this list without review from a DOM peer!
    485  "ReadableStreamBYOBReader",
    486  // IMPORTANT: Do not change this list without review from a DOM peer!
    487  "ReadableStreamBYOBRequest",
    488  // IMPORTANT: Do not change this list without review from a DOM peer!
    489  "ReadableStreamDefaultController",
    490  // IMPORTANT: Do not change this list without review from a DOM peer!
    491  "ReadableStreamDefaultReader",
    492  // IMPORTANT: Do not change this list without review from a DOM peer!
    493  "Request",
    494  // IMPORTANT: Do not change this list without review from a DOM peer!
    495  "Response",
    496  // IMPORTANT: Do not change this list without review from a DOM peer!
    497  "Scheduler",
    498  // IMPORTANT: Do not change this list without review from a DOM peer!
    499  "ServiceWorker",
    500  // IMPORTANT: Do not change this list without review from a DOM peer!
    501  "ServiceWorkerContainer",
    502  // IMPORTANT: Do not change this list without review from a DOM peer!
    503  "ServiceWorkerGlobalScope",
    504  // IMPORTANT: Do not change this list without review from a DOM peer!
    505  "ServiceWorkerRegistration",
    506  // IMPORTANT: Do not change this list without review from a DOM peer!
    507  { name: "StorageManager", fennec: false },
    508  // IMPORTANT: Do not change this list without review from a DOM peer!
    509  "SubtleCrypto",
    510  // IMPORTANT: Do not change this list without review from a DOM peer!
    511  "TaskController",
    512  // IMPORTANT: Do not change this list without review from a DOM peer!
    513  "TaskPriorityChangeEvent",
    514  // IMPORTANT: Do not change this list without review from a DOM peer!
    515  "TaskSignal",
    516  // IMPORTANT: Do not change this list without review from a DOM peer!
    517  "TextDecoder",
    518  // IMPORTANT: Do not change this list without review from a DOM peer!
    519  "TextDecoderStream",
    520  // IMPORTANT: Do not change this list without review from a DOM peer!
    521  "TextEncoder",
    522  // IMPORTANT: Do not change this list without review from a DOM peer!
    523  "TextEncoderStream",
    524  // IMPORTANT: Do not change this list without review from a DOM peer!
    525  "TextMetrics",
    526  // IMPORTANT: Do not change this list without review from a DOM peer!
    527  "TransformStream",
    528  // IMPORTANT: Do not change this list without review from a DOM peer!
    529  "TransformStreamDefaultController",
    530  // IMPORTANT: Do not change this list without review from a DOM peer!
    531  { name: "TrustedHTML", insecureContext: true },
    532  // IMPORTANT: Do not change this list without review from a DOM peer!
    533  { name: "TrustedScript", insecureContext: true },
    534  // IMPORTANT: Do not change this list without review from a DOM peer!
    535  { name: "TrustedScriptURL", insecureContext: true },
    536  // IMPORTANT: Do not change this list without review from a DOM peer!
    537  { name: "TrustedTypePolicy", insecureContext: true },
    538  // IMPORTANT: Do not change this list without review from a DOM peer!
    539  { name: "TrustedTypePolicyFactory", insecureContext: true },
    540  // IMPORTANT: Do not change this list without review from a DOM peer!
    541  "URL",
    542  // IMPORTANT: Do not change this list without review from a DOM peer!
    543  "URLPattern",
    544  // IMPORTANT: Do not change this list without review from a DOM peer!
    545  "URLSearchParams",
    546  // IMPORTANT: Do not change this list without review from a DOM peer!
    547  { name: "WGSLLanguageFeatures", earlyBetaOrEarlier: true },
    548  { name: "WGSLLanguageFeatures", windows: true },
    549  { name: "WGSLLanguageFeatures", mac: true, aarch64: true },
    550  // IMPORTANT: Do not change this list without review from a DOM peer!
    551  "WebGL2RenderingContext",
    552  // IMPORTANT: Do not change this list without review from a DOM peer!
    553  "WebGLActiveInfo",
    554  // IMPORTANT: Do not change this list without review from a DOM peer!
    555  "WebGLBuffer",
    556  // IMPORTANT: Do not change this list without review from a DOM peer!
    557  "WebGLContextEvent",
    558  // IMPORTANT: Do not change this list without review from a DOM peer!
    559  "WebGLFramebuffer",
    560  // IMPORTANT: Do not change this list without review from a DOM peer!
    561  "WebGLProgram",
    562  // IMPORTANT: Do not change this list without review from a DOM peer!
    563  "WebGLQuery",
    564  // IMPORTANT: Do not change this list without review from a DOM peer!
    565  "WebGLRenderbuffer",
    566  // IMPORTANT: Do not change this list without review from a DOM peer!
    567  "WebGLRenderingContext",
    568  // IMPORTANT: Do not change this list without review from a DOM peer!
    569  "WebGLSampler",
    570  // IMPORTANT: Do not change this list without review from a DOM peer!
    571  "WebGLShader",
    572  // IMPORTANT: Do not change this list without review from a DOM peer!
    573  "WebGLShaderPrecisionFormat",
    574  // IMPORTANT: Do not change this list without review from a DOM peer!
    575  "WebGLSync",
    576  // IMPORTANT: Do not change this list without review from a DOM peer!
    577  "WebGLTexture",
    578  // IMPORTANT: Do not change this list without review from a DOM peer!
    579  "WebGLTransformFeedback",
    580  // IMPORTANT: Do not change this list without review from a DOM peer!
    581  "WebGLUniformLocation",
    582  // IMPORTANT: Do not change this list without review from a DOM peer!
    583  "WebGLVertexArrayObject",
    584  // IMPORTANT: Do not change this list without review from a DOM peer!
    585  "WebSocket",
    586  // IMPORTANT: Do not change this list without review from a DOM peer!
    587  "WebTransport",
    588  // IMPORTANT: Do not change this list without review from a DOM peer!
    589  "WebTransportBidirectionalStream",
    590  // IMPORTANT: Do not change this list without review from a DOM peer!
    591  "WebTransportDatagramDuplexStream",
    592  // IMPORTANT: Do not change this list without review from a DOM peer!
    593  "WebTransportError",
    594  // IMPORTANT: Do not change this list without review from a DOM peer!
    595  "WebTransportReceiveStream",
    596  // IMPORTANT: Do not change this list without review from a DOM peer!
    597  "WebTransportSendStream",
    598  // IMPORTANT: Do not change this list without review from a DOM peer!
    599  "WindowClient",
    600  // IMPORTANT: Do not change this list without review from a DOM peer!
    601  "WorkerGlobalScope",
    602  // IMPORTANT: Do not change this list without review from a DOM peer!
    603  "WorkerLocation",
    604  // IMPORTANT: Do not change this list without review from a DOM peer!
    605  "WorkerNavigator",
    606  // IMPORTANT: Do not change this list without review from a DOM peer!
    607  "WritableStream",
    608  // IMPORTANT: Do not change this list without review from a DOM peer!
    609  "WritableStreamDefaultController",
    610  // IMPORTANT: Do not change this list without review from a DOM peer!
    611  "WritableStreamDefaultWriter",
    612  // IMPORTANT: Do not change this list without review from a DOM peer!
    613  "clients",
    614  // IMPORTANT: Do not change this list without review from a DOM peer!
    615  "console",
    616  // IMPORTANT: Do not change this list without review from a DOM peer!
    617  "cookieStore",
    618  // IMPORTANT: Do not change this list without review from a DOM peer!
    619  "onactivate",
    620  // IMPORTANT: Do not change this list without review from a DOM peer!
    621  "oncookiechange",
    622  // IMPORTANT: Do not change this list without review from a DOM peer!
    623  "onfetch",
    624  // IMPORTANT: Do not change this list without review from a DOM peer!
    625  "oninstall",
    626  // IMPORTANT: Do not change this list without review from a DOM peer!
    627  "onmessage",
    628  // IMPORTANT: Do not change this list without review from a DOM peer!
    629  "onmessageerror",
    630  // IMPORTANT: Do not change this list without review from a DOM peer!
    631  "onnotificationclick",
    632  // IMPORTANT: Do not change this list without review from a DOM peer!
    633  "onnotificationclose",
    634  // IMPORTANT: Do not change this list without review from a DOM peer!
    635  "onpush",
    636  // IMPORTANT: Do not change this list without review from a DOM peer!
    637  "onpushsubscriptionchange",
    638  // IMPORTANT: Do not change this list without review from a DOM peer!
    639  "registration",
    640  // IMPORTANT: Do not change this list without review from a DOM peer!
    641  "skipWaiting",
    642  // IMPORTANT: Do not change this list without review from a DOM peer!
    643 ];
    644 // IMPORTANT: Do not change the list above without review from a DOM peer!
    645 
    646 // List of functions defined on the global by the test harness or this test
    647 // file.
    648 let testFunctions = [
    649  "ok",
    650  "is",
    651  "workerTestArrayEquals",
    652  "workerTestDone",
    653  "workerTestGetHelperData",
    654  "workerTestGetStorageManager",
    655  "entryDisabled",
    656  "createInterfaceMap",
    657  "runTest",
    658 ];
    659 
    660 workerTestGetHelperData(function (data) {
    661  runTest("self", self, {
    662    data,
    663    testFunctions,
    664    interfaceGroups: [ecmaGlobals, interfaceNamesInGlobalScope],
    665  });
    666  if (WebAssembly && !entryDisabled(wasmGlobalEntry, data)) {
    667    runTest("WebAssembly", WebAssembly, {
    668      data,
    669      interfaceGroups: [wasmGlobalInterfaces],
    670    });
    671  }
    672  workerTestDone();
    673 });