sendRaw method

  1. @override
Future<WebDriverResponse> sendRaw(
  1. WebDriverRequest request
)

Implementation

@override
Future<WebDriverResponse> sendRaw(WebDriverRequest request) async {
  await _lock.acquire();

  web.XMLHttpRequest httpRequest;
  try {
    // ignore: deprecated_member_use
    httpRequest = await web.HttpRequest.request(
      resolve(request.uri!).toString(),
      method: request.method!.name,
      requestHeaders: {
        ..._headers,
        'Accept': 'application/json',
        if (request.body?.isNotEmpty ?? false)
          'Content-Type': 'application/json',
      },
      sendData: request.body,
      mimeType: 'application/json',
    );
  } catch (e) {
    if (e.isA<web.ProgressEvent>()) {
      httpRequest = (e as web.ProgressEvent).target as web.XMLHttpRequest;
    } else {
      rethrow;
    }
  } finally {
    _lock.release();
  }

  return WebDriverResponse(
    httpRequest.status,
    httpRequest.statusText,
    httpRequest.responseText,
  );
}