From dd97133df24960fa0f95f0d9f8aa2b1e7ed2d199 Mon Sep 17 00:00:00 2001 From: Jenn Magder Date: Tue, 8 Mar 2022 17:00:06 -0800 Subject: [PATCH] Remove tool crash git.io link shortener (#99574) --- .../flutter_tools/lib/src/context_runner.dart | 1 - .../lib/src/reporting/crash_reporting.dart | 6 +-- .../lib/src/reporting/github_template.dart | 34 +---------------- .../general.shard/crash_reporting_test.dart | 2 - .../general.shard/github_template_test.dart | 38 +------------------ .../test/src/fake_http_client.dart | 20 ---------- 6 files changed, 4 insertions(+), 97 deletions(-) diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart index 9931c6dd64..aea6b97f89 100644 --- a/packages/flutter_tools/lib/src/context_runner.dart +++ b/packages/flutter_tools/lib/src/context_runner.dart @@ -181,7 +181,6 @@ Future runInContext( fileSystem: globals.fs, logger: globals.logger, flutterProjectFactory: globals.projectFactory, - client: globals.httpClientFactory?.call() ?? HttpClient(), ), DevFSConfig: () => DevFSConfig(), DeviceManager: () => FlutterDeviceManager( diff --git a/packages/flutter_tools/lib/src/reporting/crash_reporting.dart b/packages/flutter_tools/lib/src/reporting/crash_reporting.dart index da9b4cde9a..a8fd8da753 100644 --- a/packages/flutter_tools/lib/src/reporting/crash_reporting.dart +++ b/packages/flutter_tools/lib/src/reporting/crash_reporting.dart @@ -59,16 +59,13 @@ class CrashReporter { required FileSystem fileSystem, required Logger logger, required FlutterProjectFactory flutterProjectFactory, - required HttpClient client, }) : _fileSystem = fileSystem, _logger = logger, - _flutterProjectFactory = flutterProjectFactory, - _client = client; + _flutterProjectFactory = flutterProjectFactory; final FileSystem _fileSystem; final Logger _logger; final FlutterProjectFactory _flutterProjectFactory; - final HttpClient _client; /// Prints instructions for filing a bug about the crash. Future informUser(CrashDetails details, File crashFile) async { @@ -86,7 +83,6 @@ class CrashReporter { fileSystem: _fileSystem, logger: _logger, flutterProjectFactory: _flutterProjectFactory, - client: _client, ); final String gitHubTemplateURL = await gitHubTemplateCreator.toolCrashIssueTemplateGitHubURL( diff --git a/packages/flutter_tools/lib/src/reporting/github_template.dart b/packages/flutter_tools/lib/src/reporting/github_template.dart index ed13ad1661..f90a7f248a 100644 --- a/packages/flutter_tools/lib/src/reporting/github_template.dart +++ b/packages/flutter_tools/lib/src/reporting/github_template.dart @@ -25,16 +25,13 @@ class GitHubTemplateCreator { required FileSystem fileSystem, required Logger logger, required FlutterProjectFactory flutterProjectFactory, - required HttpClient client, }) : _fileSystem = fileSystem, _logger = logger, - _flutterProjectFactory = flutterProjectFactory, - _client = client; + _flutterProjectFactory = flutterProjectFactory; final FileSystem _fileSystem; final Logger _logger; final FlutterProjectFactory _flutterProjectFactory; - final HttpClient _client; static String toolCrashSimilarIssuesURL(String errorString) { return 'https://github.com/flutter/flutter/issues?q=is%3Aissue+${Uri.encodeQueryComponent(errorString)}'; @@ -110,13 +107,11 @@ $doctorText ${_projectMetadataInformation()} '''; - final String fullURL = 'https://github.com/flutter/flutter/issues' + return 'https://github.com/flutter/flutter/issues' '/new' // We split this here to appease our lint that looks for bad "new bug" links. '?title=${Uri.encodeQueryComponent(title)}' '&body=${Uri.encodeQueryComponent(body)}' '&labels=${Uri.encodeQueryComponent('tool,severe: crash')}'; - - return _shortURL(fullURL); } /// Provide information about the Flutter project in the working directory, if present. @@ -169,29 +164,4 @@ ${_projectMetadataInformation()} return exception.toString(); } } - - /// Shorten GitHub URL with git.io API. - /// - /// See https://github.blog/2011-11-10-git-io-github-url-shortener. - Future _shortURL(String fullURL) async { - String? url; - try { - _logger.printTrace('Attempting git.io shortener: $fullURL'); - final List bodyBytes = utf8.encode('url=${Uri.encodeQueryComponent(fullURL)}'); - final HttpClientRequest request = await _client.postUrl(Uri.parse('https://git.io')); - request.headers.set(HttpHeaders.contentLengthHeader, bodyBytes.length.toString()); - request.add(bodyBytes); - final HttpClientResponse response = await request.close(); - - if (response.statusCode == 201) { - url = response.headers[HttpHeaders.locationHeader]?.first; - } else { - _logger.printTrace('Failed to shorten GitHub template URL. Server responded with HTTP status code ${response.statusCode}'); - } - } on Exception catch (sendError) { - _logger.printTrace('Failed to shorten GitHub template URL: $sendError'); - } - - return url ?? fullURL; - } } diff --git a/packages/flutter_tools/test/general.shard/crash_reporting_test.dart b/packages/flutter_tools/test/general.shard/crash_reporting_test.dart index a64cd2e977..5bb3fa3675 100644 --- a/packages/flutter_tools/test/general.shard/crash_reporting_test.dart +++ b/packages/flutter_tools/test/general.shard/crash_reporting_test.dart @@ -19,7 +19,6 @@ import 'package:http/testing.dart'; import 'package:test/fake.dart'; import '../src/common.dart'; -import '../src/fake_http_client.dart'; import '../src/fake_process_manager.dart'; void main() { @@ -83,7 +82,6 @@ void main() { fileSystem: fs, logger: logger, flutterProjectFactory: FlutterProjectFactory(fileSystem: fs, logger: logger), - client: FakeHttpClient.any(), ); final File file = fs.file('flutter_00.log'); diff --git a/packages/flutter_tools/test/general.shard/github_template_test.dart b/packages/flutter_tools/test/general.shard/github_template_test.dart index 81cbd8163f..fe33868e44 100644 --- a/packages/flutter_tools/test/general.shard/github_template_test.dart +++ b/packages/flutter_tools/test/general.shard/github_template_test.dart @@ -14,9 +14,6 @@ import 'package:flutter_tools/src/reporting/github_template.dart'; import '../src/common.dart'; import '../src/context.dart'; -import '../src/fake_http_client.dart'; - -const String _kShortURL = 'https://www.example.com/short'; void main() { BufferLogger logger; @@ -157,41 +154,10 @@ void main() { error = ArgumentError('argument error message'); }); - testUsingContext('shortened', () async { + testUsingContext('shows GitHub issue URL', () async { final GitHubTemplateCreator creator = GitHubTemplateCreator( fileSystem: fs, logger: logger, - client: FakeHttpClient.list([ - FakeRequest(Uri.parse('https://git.io'), method: HttpMethod.post, response: const FakeResponse( - statusCode: 201, - headers: >{ - HttpHeaders.locationHeader: [_kShortURL], - } - )) - ]), - flutterProjectFactory: FlutterProjectFactory( - fileSystem: fs, - logger: logger, - ), - ); - expect( - await creator.toolCrashIssueTemplateGitHubURL(command, error, stackTrace, doctorText), - _kShortURL - ); - }, overrides: { - FileSystem: () => MemoryFileSystem.test(), - ProcessManager: () => FakeProcessManager.any(), - }); - - testUsingContext('with network failure', () async { - final GitHubTemplateCreator creator = GitHubTemplateCreator( - fileSystem: fs, - logger: logger, - client: FakeHttpClient.list([ - FakeRequest(Uri.parse('https://git.io'), method: HttpMethod.post, response: const FakeResponse( - statusCode: 500, - )) - ]), flutterProjectFactory: FlutterProjectFactory( fileSystem: fs, logger: logger, @@ -207,7 +173,6 @@ void main() { 'eport%0A%60%60%60%0A%0A%23%23+Flutter+Application+Metadata%0ANo+pubspec+in+working+d' 'irectory.%0A&labels=tool%2Csevere%3A+crash' ); - expect(logger.traceText, contains('Failed to shorten GitHub template URL')); }, overrides: { FileSystem: () => MemoryFileSystem.test(), ProcessManager: () => FakeProcessManager.any(), @@ -217,7 +182,6 @@ void main() { final GitHubTemplateCreator creator = GitHubTemplateCreator( fileSystem: fs, logger: logger, - client: FakeHttpClient.any(), flutterProjectFactory: FlutterProjectFactory( fileSystem: fs, logger: logger, diff --git a/packages/flutter_tools/test/src/fake_http_client.dart b/packages/flutter_tools/test/src/fake_http_client.dart index d3ddaf97f5..27ed6577d1 100644 --- a/packages/flutter_tools/test/src/fake_http_client.dart +++ b/packages/flutter_tools/test/src/fake_http_client.dart @@ -56,26 +56,6 @@ String _toMethodString(HttpMethod method) { } } -/// Override the creation of all [HttpClient] objects with a zone injection. -/// -/// This should only be used when the http client cannot be set directly, such as -/// when testing `package:http` code. -Future overrideHttpClients(Future Function() callback, FakeHttpClient httpClient) async { - final HttpOverrides overrides = _FakeHttpClientOverrides(httpClient); - await HttpOverrides.runWithHttpOverrides(callback, overrides); -} - -class _FakeHttpClientOverrides extends HttpOverrides { - _FakeHttpClientOverrides(this.httpClient); - - final FakeHttpClient httpClient; - - @override - HttpClient createHttpClient(SecurityContext? context) { - return httpClient; - } -} - /// Create a fake request that configures the [FakeHttpClient] to respond /// with the provided [response]. ///