Skip to content

Commit

Permalink
Register reload sources call and make 'r' restart for web (#39950)
Browse files Browse the repository at this point in the history
  • Loading branch information
jonahwilliams committed Sep 6, 2019
1 parent 8b90d9d commit b4c3671
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 17 deletions.
Expand Up @@ -43,11 +43,6 @@ class DwdsWebRunnerFactory extends WebRunnerFactory {
}
}

// TODO(jonahwilliams): remove this constant when the error message is removed.
// The web engine is currently spamming this message on certain pages. Filter it out
// until we remove it entirely. See flutter/flutter##37625.
const String _kBadError = 'WARNING: 3D transformation matrix was passed to BitmapCanvas.';

/// A hot-runner which handles browser specific delegation.
class ResidentWebRunner extends ResidentRunner {
ResidentWebRunner(this.device, {
Expand Down Expand Up @@ -207,11 +202,9 @@ class ResidentWebRunner extends ResidentRunner {
if (supportsServiceProtocol) {
_stdOutSub = _debugConnection.vmService.onStdoutEvent.listen((vmservice.Event log) {
final String message = utf8.decode(base64.decode(log.bytes)).trim();
// TODO(jonahwilliams): remove this error once it is gone from the engine #37625.
if (!message.contains(_kBadError)) {
printStatus(message);
}
printStatus(message);
});
unawaited(_debugConnection.vmService.registerService('reloadSources', 'FlutterTools'));
websocketUri = Uri.parse(_debugConnection.uri);
}
if (websocketUri != null) {
Expand All @@ -232,9 +225,6 @@ class ResidentWebRunner extends ResidentRunner {
String reason,
bool benchmarkMode = false,
}) async {
if (!fullRestart) {
return OperationResult(1, 'hot reload not supported on the web.');
}
final Stopwatch timer = Stopwatch()..start();
final Status status = logger.startProgress(
'Performing hot restart...',
Expand Down
Expand Up @@ -114,21 +114,27 @@ void main() {
));
final DebugConnectionInfo debugConnectionInfo = await connectionInfoCompleter.future;

verify(mockVmService.registerService('reloadSources', 'FlutterTools')).called(1);
expect(bufferLogger.statusText, contains('Debug service listening on ws://127.0.0.1/abcd/'));
expect(debugConnectionInfo.wsUri.toString(), 'ws://127.0.0.1/abcd/');
}));

test('Can not hot reload after attaching', () => testbed.run(() async {
_setupMocks();
test('Can hot reload after attaching', () => testbed.run(() async {
_setupMocks();
final Completer<DebugConnectionInfo> connectionInfoCompleter = Completer<DebugConnectionInfo>();
unawaited(residentWebRunner.run(
connectionInfoCompleter: connectionInfoCompleter,
));
await connectionInfoCompleter.future;
when(mockWebFs.recompile()).thenAnswer((Invocation _) async {
return true;
});
when(mockVmService.callServiceExtension('hotRestart')).thenAnswer((Invocation _) async {
return Response.parse(<String, Object>{'type': 'Success'});
});
final OperationResult result = await residentWebRunner.restart(fullRestart: false);

expect(result.code, 1);
expect(result.message, contains('hot reload not supported on the web.'));
expect(result.code, 0);
}));

test('Can hot restart after attaching', () => testbed.run(() async {
Expand Down Expand Up @@ -374,7 +380,6 @@ void main() {
}));
}


class MockWebDevice extends Mock implements Device {}
class MockBuildDaemonCreator extends Mock implements BuildDaemonCreator {}
class MockFlutterWebFs extends Mock implements WebFs {}
Expand Down

0 comments on commit b4c3671

Please sign in to comment.