anchor.diff:    /// Creates a new HTTP client.
     BrowserClient();
   
  -  /// Whether to send credentials such as cookies or authorization headers for
  -  /// cross-site requests.
  -  ///
  -  /// Defaults to `false`.
  -  bool withCredentials = false;
  -
     /// Sends an HTTP request and asynchronously returns the response.
  -  Future<StreamedResponse> send(BaseRequest request) async {
  -    var bytes = await request.finalize().toBytes();
  +  Future<Response> send(Request request) async {
  +    var bytes = await collectBytes(request.read());
       var xhr = new HttpRequest();
       _xhrs.add(xhr);
       _openHttpRequest(xhr, request.method, request.url.toString(), asynch: true);
       xhr.responseType = 'blob';
  -    xhr.withCredentials = withCredentials;
  +    xhr.withCredentials = request.context['html.withCredentials'] ?? false;
       request.headers.forEach(xhr.setRequestHeader);
   
  -    var completer = new Completer<StreamedResponse>();
  +    var completer = new Completer<Response>();
       xhr.onLoad.first.then((_) {
         // TODO(nweiz): Set the response type to "arraybuffer" when issue 18542
         // is fixed.
  
positive.code: import 'dart:html';
  import 'dart:typed_data';
  
  import 'package:stack_trace/stack_trace.dart';
  
  import 'src/base_client.dart';
  import 'src/base_request.dart';
  import 'src/byte_stream.dart';
  import 'src/exception.dart';
  import 'src/streamed_response.dart';
  
  // TODO(nweiz): Move this under src/, re-export from lib/http.dart, and use this
  // automatically from [new Client] once sdk#24581 is fixed.
  
negative.code: 
        reader.onLoad.first.then((_) {
          var body = reader.result as Uint8List;
          completer.complete(new Response(
              xhr.responseUrl,
              xhr.status,
              reasonPhrase: xhr.statusText,
              body: new Stream.fromIterable([body]),
              headers: xhr.responseHeaders));
        });
  
        reader.onError.first.then((error) {
  