mirror of
https://github.com/flutter/flutter
synced 2024-10-13 11:42:54 +00:00
This reverts commit 9eb2a2ad6a
.
This commit is contained in:
parent
39b9eb1968
commit
35ed1ccc9a
|
@ -22,7 +22,6 @@ export 'src/services/message_codec.dart';
|
|||
export 'src/services/message_codecs.dart';
|
||||
export 'src/services/platform_channel.dart';
|
||||
export 'src/services/platform_messages.dart';
|
||||
export 'src/services/platform_network.dart';
|
||||
export 'src/services/platform_views.dart';
|
||||
export 'src/services/raw_keyboard.dart';
|
||||
export 'src/services/raw_keyboard_android.dart';
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
// 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.
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
/// Allows an operation executed via [action] to access insecure HTTP URLs.
|
||||
///
|
||||
/// On some platforms (notably iOS and Android), HTTP is disallowed by default.
|
||||
/// You should strive to access secure URLs from your app, but we recognize that
|
||||
/// sometimes that is not possible. In such cases, use the function below to
|
||||
/// allow access to HTTP URLs.
|
||||
///
|
||||
/// Sample usage:
|
||||
///
|
||||
/// ```dart
|
||||
/// import 'package:flutter/services.dart' as services;
|
||||
///
|
||||
/// final Image image = services.allowHttp(() => Image.network('http://some_insecure_url');
|
||||
/// ```
|
||||
///
|
||||
/// Best Practices:
|
||||
/// - Do not wrap your entire app with [allowHttp]. Wrap *exactly* what you need and nothing more.
|
||||
/// - Avoid libraries that require accessing HTTP URLs.
|
||||
T allowHttp<T>(T action()) {
|
||||
return runZoned<T>(action, zoneValues: <Symbol, bool>{#dart.library.io.allow_http: true});
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
// 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.
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
const Symbol _symbol = #dart.library.io.allow_http;
|
||||
|
||||
test('AllowHTTP sets the correct zone variable', () async {
|
||||
expect(Zone.current[_symbol], isNull);
|
||||
allowHttp(() {
|
||||
expect(Zone.current[_symbol], isTrue);
|
||||
});
|
||||
});
|
||||
|
||||
// This test ensures the zone variable used in Dart SDK does not change.
|
||||
//
|
||||
// If this symbol changes, then update [allowHttp] function as well.
|
||||
test('Zone variable can override HTTP behavior', () async {
|
||||
final HttpClient httpClient = HttpClient();
|
||||
try {
|
||||
await runZoned(
|
||||
() async => await httpClient.getUrl(Uri.parse('http://${Platform.localHostname}')),
|
||||
zoneValues: <Symbol, bool>{_symbol: false},
|
||||
);
|
||||
fail('This should have thrown a StateError. '
|
||||
'Check if the symbol for setting allow_http behavior has changed');
|
||||
} on StateError catch(e) {
|
||||
expect(e.message, contains('Insecure HTTP is not allowed by the current platform'));
|
||||
}
|
||||
});
|
||||
}
|
Loading…
Reference in a new issue