blob: 36862f7cbacc38f7a7638f5f272f8ac3c0946bd2 [file] [log] [blame]
// Copyright 2013 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.
import 'package:pigeon/pigeon.dart';
class WebResourceRequestData {
String? url;
bool? isForMainFrame;
bool? isRedirect;
bool? hasGesture;
String? method;
Map<String?, String?>? requestHeaders;
}
class WebResourceErrorData {
int? errorCode;
String? description;
}
@HostApi()
abstract class CookieManagerHostApi {
@async
bool clearCookies();
void setCookie(String url, String value);
}
@HostApi(dartHostTestHandler: 'TestWebViewHostApi')
abstract class WebViewHostApi {
void create(int instanceId, bool useHybridComposition);
void dispose(int instanceId);
void loadData(
int instanceId,
String data,
String mimeType,
String encoding,
);
void loadDataWithBaseUrl(
int instanceId,
String baseUrl,
String data,
String mimeType,
String encoding,
String historyUrl,
);
void loadUrl(
int instanceId,
String url,
Map<String, String> headers,
);
void postUrl(
int instanceId,
String url,
Uint8List data,
);
String getUrl(int instanceId);
bool canGoBack(int instanceId);
bool canGoForward(int instanceId);
void goBack(int instanceId);
void goForward(int instanceId);
void reload(int instanceId);
void clearCache(int instanceId, bool includeDiskFiles);
@async
String evaluateJavascript(
int instanceId,
String javascriptString,
);
String getTitle(int instanceId);
void scrollTo(int instanceId, int x, int y);
void scrollBy(int instanceId, int x, int y);
int getScrollX(int instanceId);
int getScrollY(int instanceId);
void setWebContentsDebuggingEnabled(bool enabled);
void setWebViewClient(int instanceId, int webViewClientInstanceId);
void addJavaScriptChannel(int instanceId, int javaScriptChannelInstanceId);
void removeJavaScriptChannel(int instanceId, int javaScriptChannelInstanceId);
void setDownloadListener(int instanceId, int listenerInstanceId);
void setWebChromeClient(int instanceId, int clientInstanceId);
void setBackgroundColor(int instanceId, int color);
}
@HostApi(dartHostTestHandler: 'TestWebSettingsHostApi')
abstract class WebSettingsHostApi {
void create(int instanceId, int webViewInstanceId);
void dispose(int instanceId);
void setDomStorageEnabled(int instanceId, bool flag);
void setJavaScriptCanOpenWindowsAutomatically(int instanceId, bool flag);
void setSupportMultipleWindows(int instanceId, bool support);
void setJavaScriptEnabled(int instanceId, bool flag);
void setUserAgentString(int instanceId, String userAgentString);
void setMediaPlaybackRequiresUserGesture(int instanceId, bool require);
void setSupportZoom(int instanceId, bool support);
void setLoadWithOverviewMode(int instanceId, bool overview);
void setUseWideViewPort(int instanceId, bool use);
void setDisplayZoomControls(int instanceId, bool enabled);
void setBuiltInZoomControls(int instanceId, bool enabled);
}
@HostApi(dartHostTestHandler: 'TestJavaScriptChannelHostApi')
abstract class JavaScriptChannelHostApi {
void create(int instanceId, String channelName);
}
@FlutterApi()
abstract class JavaScriptChannelFlutterApi {
void dispose(int instanceId);
void postMessage(int instanceId, String message);
}
@HostApi(dartHostTestHandler: 'TestWebViewClientHostApi')
abstract class WebViewClientHostApi {
void create(int instanceId, bool shouldOverrideUrlLoading);
}
@FlutterApi()
abstract class WebViewClientFlutterApi {
void dispose(int instanceId);
void onPageStarted(int instanceId, int webViewInstanceId, String url);
void onPageFinished(int instanceId, int webViewInstanceId, String url);
void onReceivedRequestError(
int instanceId,
int webViewInstanceId,
WebResourceRequestData request,
WebResourceErrorData error,
);
void onReceivedError(
int instanceId,
int webViewInstanceId,
int errorCode,
String description,
String failingUrl,
);
void requestLoading(
int instanceId,
int webViewInstanceId,
WebResourceRequestData request,
);
void urlLoading(int instanceId, int webViewInstanceId, String url);
}
@HostApi(dartHostTestHandler: 'TestDownloadListenerHostApi')
abstract class DownloadListenerHostApi {
void create(int instanceId);
}
@FlutterApi()
abstract class DownloadListenerFlutterApi {
void dispose(int instanceId);
void onDownloadStart(
int instanceId,
String url,
String userAgent,
String contentDisposition,
String mimetype,
int contentLength,
);
}
@HostApi(dartHostTestHandler: 'TestWebChromeClientHostApi')
abstract class WebChromeClientHostApi {
void create(int instanceId, int webViewClientInstanceId);
}
@HostApi(dartHostTestHandler: 'TestAssetManagerHostApi')
abstract class FlutterAssetManagerHostApi {
List<String> list(String path);
String getAssetFilePathByName(String name);
}
@FlutterApi()
abstract class WebChromeClientFlutterApi {
void dispose(int instanceId);
void onProgressChanged(int instanceId, int webViewInstanceId, int progress);
}