Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(555)

Unified Diff: pkg/analysis_server/lib/src/server/http_server.dart

Issue 2927783002: add memory usage to the diagnostics page (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/lib/src/server/http_server.dart
diff --git a/pkg/analysis_server/lib/src/server/http_server.dart b/pkg/analysis_server/lib/src/server/http_server.dart
index 67705d471e1d1180804675cab7dfdcacbebae55f..50da1549ea1ae6eaa19a72fba35f568063ae9eea 100644
--- a/pkg/analysis_server/lib/src/server/http_server.dart
+++ b/pkg/analysis_server/lib/src/server/http_server.dart
@@ -5,7 +5,6 @@
import 'dart:async';
import 'dart:io';
-import 'package:analysis_server/src/channel/web_socket_channel.dart';
import 'package:analysis_server/src/socket_server.dart';
import 'package:analysis_server/src/status/diagnostics.dart';
@@ -36,7 +35,7 @@ class HttpAnalysisServer {
/**
* Future that is completed with the HTTP server once it is running.
*/
- Future<HttpServer> _server;
+ Future<HttpServer> _serverFuture;
/**
* Last PRINT_BUFFER_LENGTH lines printed.
@@ -51,10 +50,10 @@ class HttpAnalysisServer {
/**
* Return the port this server is bound to.
*/
- Future<int> get boundPort async => (await _server)?.port;
+ Future<int> get boundPort async => (await _serverFuture)?.port;
void close() {
- _server.then((HttpServer server) {
+ _serverFuture.then((HttpServer server) {
server.close();
});
}
@@ -74,17 +73,22 @@ class HttpAnalysisServer {
* Begin serving HTTP requests over the given port.
*/
Future<int> serveHttp([int initialPort]) async {
- if (_server != null) {
+ if (_serverFuture != null) {
return boundPort;
}
try {
- _server =
- HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, initialPort ?? 0);
- HttpServer server = await _server;
+ _serverFuture =
+ HttpServer.bind(InternetAddress.LOOPBACK_IP_V6, initialPort ?? 0);
+
+ HttpServer server = await _serverFuture;
_handleServer(server);
return server.port;
} catch (ignore) {
+ // If we can't bind to the specified port, don't remember the broken
+ // server.
+ _serverFuture = null;
+
return null;
}
}
@@ -110,12 +114,18 @@ class HttpAnalysisServer {
void _handleServer(HttpServer httpServer) {
httpServer.listen((HttpRequest request) {
List<String> updateValues = request.headers[HttpHeaders.UPGRADE];
- if (updateValues != null && updateValues.indexOf('websocket') >= 0) {
- WebSocketTransformer.upgrade(request).then((WebSocket websocket) {
- _handleWebSocket(websocket);
- });
- } else if (request.method == 'GET') {
+ if (request.method == 'GET') {
_handleGetRequest(request);
+ } else if (updateValues != null &&
+ updateValues.indexOf('websocket') >= 0) {
+ // We no longer support serving analysis server communications over
+ // WebSocket connections.
+ HttpResponse response = request.response;
+ response.statusCode = HttpStatus.NOT_FOUND;
+ response.headers.contentType = ContentType.TEXT;
+ response.write(
+ 'WebSocket connections not supported (${request.uri.path}).');
+ response.close();
} else {
_returnUnknownRequest(request);
}
@@ -123,25 +133,13 @@ class HttpAnalysisServer {
}
/**
- * Handle an UPGRADE request received by the HTTP server by creating and
- * running an analysis server on a [WebSocket]-based communication channel.
- */
- void _handleWebSocket(WebSocket socket) {
- // TODO(devoncarew): This serves the analysis server over a websocket
- // connection for historical reasons (and should probably be removed).
- socketServer.createAnalysisServer(new WebSocketServerChannel(
- socket, socketServer.instrumentationService));
- }
-
- /**
* Return an error in response to an unrecognized request received by the HTTP
* server.
*/
void _returnUnknownRequest(HttpRequest request) {
HttpResponse response = request.response;
response.statusCode = HttpStatus.NOT_FOUND;
- response.headers.contentType =
- new ContentType("text", "plain", charset: "utf-8");
+ response.headers.contentType = ContentType.TEXT;
response.write('Not found');
response.close();
}
« no previous file with comments | « pkg/analysis_server/lib/src/domain_diagnostic.dart ('k') | pkg/analysis_server/lib/src/status/diagnostics.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698