| // Copyright 2014 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // This code is copied from `package:web` which still needs its own | |
| // documentation for public members. Since this is a shim that users should not | |
| // use, we ignore this lint for this file. | |
| // ignore_for_file: public_member_api_docs | |
| /// A stripped down version of `package:web` to avoid pinning that repo in | |
| /// Flutter as a dependency. | |
| /// | |
| /// These are manually copied over from `package:web` as needed, and should stay | |
| /// in sync with the latest package version as much as possible. | |
| /// | |
| /// If missing members are needed, copy them over into the corresponding | |
| /// extension or interface. If missing interfaces/types are needed, copy them | |
| /// over while excluding unnecessary inheritance to make the copy minimal. These | |
| /// types are erased at runtime, so excluding supertypes is safe. If a member is | |
| /// needed that belongs to a supertype, then add the necessary `implements` | |
| /// clause to the subtype when you add that supertype. Keep extensions next to | |
| /// the interface they extend. | |
| library; | |
| import 'dart:js_interop'; | |
| @JS() | |
| external Window get window; | |
| extension type Window._(JSObject _) implements JSObject { | |
| external JSPromise<Response> fetch(JSAny input, [RequestInit init]); | |
| external Location get location; | |
| external Window? get parent; | |
| external void postMessage(JSAny message, JSString targetOrigin, JSArray<JSAny> transfers); | |
| external JSString? get testSelector; | |
| } | |
| extension type Response._(JSObject _) implements JSObject { | |
| external JSPromise<JSString> text(); | |
| } | |
| extension type RequestInit._(JSObject _) implements JSObject { | |
| external factory RequestInit({String method, JSAny? body}); | |
| } | |
| extension type Location._(JSObject _) implements JSObject { | |
| external JSString get origin; | |
| } | |
| extension type MessageChannel._(JSObject _) implements JSObject { | |
| external factory MessageChannel(); | |
| external MessagePort port1; | |
| external MessagePort port2; | |
| } | |
| extension type MessagePort._(JSObject _) implements JSObject { | |
| external void addEventListener(JSString eventName, JSFunction callback); | |
| external void removeEventListener(JSString eventName, JSFunction callback); | |
| external void postMessage(JSAny? message); | |
| external void start(); | |
| } | |
| extension type Event._(JSObject _) implements JSObject { | |
| external JSObject? get data; | |
| } |