Unverified Commit 0620cfa7 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

Revert "Send text error in JSON and print in tools (#58994)" (#59002)

This reverts commit f0174b17.
parent ef9b77d9
......@@ -929,17 +929,8 @@ mixin WidgetInspectorService {
);
errorJson['errorsSinceReload'] = _errorsSinceReload;
if (_errorsSinceReload == 0) {
errorJson['renderedErrorText'] = TextTreeRenderer(
wrapWidth: FlutterError.wrapWidth,
wrapWidthProperties: FlutterError.wrapWidth,
maxDescendentsTruncatableNode: 5,
).render(details.toDiagnosticsNode(style: DiagnosticsTreeStyle.error)).trimRight();
} else {
errorJson['renderedErrorText'] = 'Another exception was thrown: ${details.summary}';
}
_errorsSinceReload += 1;
postEvent('Flutter.Error', errorJson);
}
......
......@@ -2254,10 +2254,6 @@ class _TestWidgetInspectorService extends TestWidgetInspectorService {
// Validate that we received an error count.
expect(error['errorsSinceReload'], 0);
expect(
error['renderedErrorText'],
startsWith(
'══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞════════════'));
// Send a second error.
FlutterError.reportError(FlutterErrorDetailsForRendering(
......@@ -2271,7 +2267,6 @@ class _TestWidgetInspectorService extends TestWidgetInspectorService {
expect(flutterErrorEvents, hasLength(2));
error = flutterErrorEvents.last;
expect(error['errorsSinceReload'], 1);
expect(error['renderedErrorText'], startsWith('Another exception was thrown:'));
// Reloads the app.
final FlutterExceptionHandler oldHandler = FlutterError.onError;
......
......@@ -112,7 +112,6 @@ abstract class ResidentWebRunner extends ResidentRunner {
ConnectionResult _connectionResult;
StreamSubscription<vmservice.Event> _stdOutSub;
StreamSubscription<vmservice.Event> _stdErrSub;
StreamSubscription<vmservice.Event> _extensionEventSub;
bool _exited = false;
WipConnection _wipConnection;
ChromiumLauncher _chromiumLauncher;
......@@ -151,7 +150,6 @@ abstract class ResidentWebRunner extends ResidentRunner {
}
await _stdOutSub?.cancel();
await _stdErrSub?.cancel();
await _extensionEventSub?.cancel();
await device.device.stopApp(null);
try {
_generatedEntrypointDirectory?.deleteSync(recursive: true);
......@@ -677,8 +675,6 @@ class _ResidentWebRunner extends ResidentWebRunner {
final String message = utf8.decode(base64.decode(log.bytes));
globals.printStatus(message, newline: false);
});
_extensionEventSub =
_vmService.onExtensionEvent.listen(printStructuredErrorLog);
try {
await _vmService.streamListen(vmservice.EventStreams.kStdout);
} on vmservice.RPCError {
......@@ -697,12 +693,6 @@ class _ResidentWebRunner extends ResidentWebRunner {
// It is safe to ignore this error because we expect an error to be
// thrown if we're not already subscribed.
}
try {
await _vmService.streamListen(vmservice.EventStreams.kExtension);
} on vmservice.RPCError {
// It is safe to ignore this error because we expect an error to be
// thrown if we're not already subscribed.
}
unawaited(_vmService.registerService('reloadSources', 'FlutterTools'));
_vmService.registerServiceCallback('reloadSources', (Map<String, Object> params) async {
final bool pause = params['pause'] as bool ?? false;
......
......@@ -188,7 +188,6 @@ class FlutterDevice {
CompileExpression compileExpression,
ReloadMethod reloadMethod,
GetSkSLMethod getSkSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
}) {
final Completer<void> completer = Completer<void>();
StreamSubscription<void> subscription;
......@@ -208,7 +207,6 @@ class FlutterDevice {
compileExpression: compileExpression,
reloadMethod: reloadMethod,
getSkSLMethod: getSkSLMethod,
printStructuredErrorLogMethod: printStructuredErrorLogMethod,
device: device,
);
} on Exception catch (exception) {
......@@ -1063,23 +1061,11 @@ abstract class ResidentRunner {
final String copyPath = getDefaultCachedKernelPath(
trackWidgetCreation: trackWidgetCreation,
);
globals.fs
.file(copyPath)
.parent
.createSync(recursive: true);
globals.fs.file(copyPath).parent.createSync(recursive: true);
outputDill.copySync(copyPath);
}
}
void printStructuredErrorLog(vm_service.Event event) {
if (event.extensionKind == 'Flutter.Error') {
final Map<dynamic, dynamic> json = event.extensionData?.data;
if (json != null && json.containsKey('renderedErrorText')) {
globals.printStatus('\n${json['renderedErrorText']}');
}
}
}
/// If the [reloadSources] parameter is not null the 'reloadSources' service
/// will be registered.
//
......@@ -1104,8 +1090,7 @@ abstract class ResidentRunner {
restart: restart,
compileExpression: compileExpression,
reloadMethod: reloadMethod,
getSkSLMethod: getSkSLMethod,
printStructuredErrorLogMethod: printStructuredErrorLog,
getSkSLMethod: getSkSLMethod
);
// This will wait for at least one flutter view before returning.
final Status status = globals.logger.startProgress(
......
......@@ -31,8 +31,6 @@ const int kIsolateReloadBarred = 1005;
/// for [WebSocket]s (used by tests).
typedef WebSocketConnector = Future<io.WebSocket> Function(String url, {io.CompressionOptions compression});
typedef PrintStructuredErrorLogMethod = void Function(vm_service.Event);
WebSocketConnector _openChannel = _defaultOpenChannel;
/// The error codes for the JSON-RPC standard.
......@@ -151,7 +149,6 @@ typedef VMServiceConnector = Future<vm_service.VmService> Function(Uri httpUri,
CompileExpression compileExpression,
ReloadMethod reloadMethod,
GetSkSLMethod getSkSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
io.CompressionOptions compression,
Device device,
});
......@@ -178,7 +175,6 @@ vm_service.VmService setUpVmService(
Device device,
ReloadMethod reloadMethod,
GetSkSLMethod skSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
vm_service.VmService vmService
) {
if (reloadSources != null) {
......@@ -297,15 +293,6 @@ vm_service.VmService setUpVmService(
});
vmService.registerService('flutterGetSkSL', 'Flutter Tools');
}
if (printStructuredErrorLogMethod != null) {
try {
vmService.streamListen(vm_service.EventStreams.kExtension);
} on vm_service.RPCError {
// It is safe to ignore this error because we expect an error to be
// thrown if we're already subscribed.
}
vmService.onExtensionEvent.listen(printStructuredErrorLogMethod);
}
return vmService;
}
......@@ -324,7 +311,6 @@ Future<vm_service.VmService> connectToVmService(
CompileExpression compileExpression,
ReloadMethod reloadMethod,
GetSkSLMethod getSkSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
io.CompressionOptions compression = io.CompressionOptions.compressionDefault,
Device device,
}) async {
......@@ -337,7 +323,6 @@ Future<vm_service.VmService> connectToVmService(
device: device,
reloadMethod: reloadMethod,
getSkSLMethod: getSkSLMethod,
printStructuredErrorLogMethod: printStructuredErrorLogMethod,
);
}
......@@ -348,7 +333,6 @@ Future<vm_service.VmService> _connect(
CompileExpression compileExpression,
ReloadMethod reloadMethod,
GetSkSLMethod getSkSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
io.CompressionOptions compression = io.CompressionOptions.compressionDefault,
Device device,
}) async {
......@@ -370,7 +354,6 @@ Future<vm_service.VmService> _connect(
device,
reloadMethod,
getSkSLMethod,
printStructuredErrorLogMethod,
delegateService,
);
_httpAddressExpando[service] = httpUri;
......
......@@ -705,7 +705,6 @@ VMServiceConnector getFakeVmServiceFactory({
CompileExpression compileExpression,
ReloadMethod reloadMethod,
GetSkSLMethod getSkSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
CompressionOptions compression,
Device device,
}) async {
......
......@@ -135,7 +135,6 @@ class TestFlutterDevice extends FlutterDevice {
CompileExpression compileExpression,
ReloadMethod reloadMethod,
GetSkSLMethod getSkSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
}) async {
throw exception;
}
......
......@@ -510,7 +510,6 @@ class TestFlutterDevice extends FlutterDevice {
CompileExpression compileExpression,
ReloadMethod reloadMethod,
GetSkSLMethod getSkSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
}) async {
throw exception;
}
......
......@@ -1357,7 +1357,6 @@ void main() {
CompileExpression compileExpression,
ReloadMethod reloadMethod,
GetSkSLMethod getSkSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
io.CompressionOptions compression,
Device device,
}) async => mockVMService,
......
......@@ -4,7 +4,6 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:dwds/dwds.dart';
import 'package:flutter_tools/src/base/common.dart';
......@@ -57,12 +56,6 @@ const List<VmServiceExpectation> kAttachIsolateExpectations = <VmServiceExpectat
'streamId': 'Isolate'
}
),
FakeVmServiceRequest(
method: 'streamListen',
args: <String, Object>{
'streamId': 'Extension',
},
),
FakeVmServiceRequest(
method: 'registerService',
args: <String, Object>{
......@@ -347,68 +340,6 @@ void main() {
expect(testLogger.statusText, contains('SO IS THIS'));
}));
test('Listens to extension events with structured errors', () => testbed.run(() async {
final Map<String, String> extensionData = <String, String>{
'test': 'data',
'renderedErrorText': 'error text',
};
final Map<String, String> emptyExtensionData = <String, String>{
'test': 'data',
'renderedErrorText': '',
};
final Map<String, String> nonStructuredErrorData = <String, String>{
'other': 'other stuff',
};
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
...kAttachExpectations,
FakeVmServiceStreamResponse(
streamId: 'Extension',
event: vm_service.Event(
timestamp: 0,
extensionKind: 'Flutter.Error',
extensionData: vm_service.ExtensionData.parse(extensionData),
kind: vm_service.EventStreams.kExtension,
),
),
// Empty error text should not break anything.
FakeVmServiceStreamResponse(
streamId: 'Extension',
event: vm_service.Event(
timestamp: 0,
extensionKind: 'Flutter.Error',
extensionData: vm_service.ExtensionData.parse(emptyExtensionData),
kind: vm_service.EventStreams.kExtension,
),
),
// This is not Flutter.Error kind data, so it should not be logged.
FakeVmServiceStreamResponse(
streamId: 'Extension',
event: vm_service.Event(
timestamp: 0,
extensionKind: 'Other',
extensionData: vm_service.ExtensionData.parse(nonStructuredErrorData),
kind: vm_service.EventStreams.kExtension,
),
),
]);
_setupMocks();
final Completer<DebugConnectionInfo> connectionInfoCompleter = Completer<DebugConnectionInfo>();
unawaited(residentWebRunner.run(
connectionInfoCompleter: connectionInfoCompleter,
));
await connectionInfoCompleter.future;
// Need these to run events, otherwise expect statements below run before
// structured errors are processed.
await null;
await null;
await null;
expect(testLogger.statusText, contains('\nerror text'));
expect(testLogger.statusText, isNot(contains('other stuff')));
}));
test('Does not run main with --start-paused', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: kAttachExpectations.toList());
residentWebRunner = DwdsWebRunnerFactory().createWebRunner(
......@@ -1142,7 +1073,19 @@ void main() {
test('Sends launched app.webLaunchUrl event for Chrome device', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
...kAttachLogExpectations,
...kAttachIsolateExpectations,
const FakeVmServiceRequest(
method: 'streamListen',
args: <String, Object>{
'streamId': 'Isolate'
}
),
const FakeVmServiceRequest(
method: 'registerService',
args: <String, Object>{
'service': 'reloadSources',
'alias': 'FlutterTools',
}
)
]);
_setupMocks();
final ChromiumLauncher chromiumLauncher = MockChromeLauncher();
......
......@@ -104,7 +104,6 @@ void main() {
null,
null,
null,
null,
mockVMService,
);
......@@ -124,7 +123,6 @@ void main() {
null,
reloadMethod,
null,
null,
mockVMService,
);
......@@ -144,7 +142,6 @@ void main() {
mockDevice,
null,
null,
null,
mockVMService,
);
......@@ -162,7 +159,6 @@ void main() {
null,
null,
() async => 'hello',
null,
mockVMService,
);
......@@ -171,26 +167,6 @@ void main() {
Logger: () => BufferLogger.test()
});
testUsingContext('VmService registers flutterPrintStructuredErrorLogMethod', () async {
final MockVMService mockVMService = MockVMService();
when(mockVMService.onExtensionEvent).thenAnswer((Invocation invocation) {
return const Stream<vm_service.Event>.empty();
});
setUpVmService(
null,
null,
null,
null,
null,
null,
(vm_service.Event event) async => 'hello',
mockVMService,
);
verify(mockVMService.streamListen(vm_service.EventStreams.kExtension)).called(1);
}, overrides: <Type, Generator>{
Logger: () => BufferLogger.test()
});
testUsingContext('VMService returns correct FlutterVersion', () async {
final MockVMService mockVMService = MockVMService();
setUpVmService(
......@@ -200,7 +176,6 @@ void main() {
null,
null,
null,
null,
mockVMService,
);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment