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

Side by Side Diff: pkg/analysis_server/lib/src/get_handler.dart

Issue 855643004: Use UTF-8 when serving web pages for analysis server debug. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/server/http_server.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library analysis_server.src.get_handler; 5 library analysis_server.src.get_handler;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 import 'dart:convert'; 8 import 'dart:convert';
9 import 'dart:io'; 9 import 'dart:io';
10 import 'dart:math'; 10 import 'dart:math';
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 'Query parameter $SOURCE_QUERY_PARAM required'); 345 'Query parameter $SOURCE_QUERY_PARAM required');
346 } 346 }
347 347
348 AnalysisServer analysisServer = _server.analysisServer; 348 AnalysisServer analysisServer = _server.analysisServer;
349 if (analysisServer == null) { 349 if (analysisServer == null) {
350 return _returnFailure(request, 'Analysis server not running'); 350 return _returnFailure(request, 'Analysis server not running');
351 } 351 }
352 352
353 HttpResponse response = request.response; 353 HttpResponse response = request.response;
354 response.statusCode = HttpStatus.OK; 354 response.statusCode = HttpStatus.OK;
355 response.headers.add(HttpHeaders.CONTENT_TYPE, "text/html"); 355 response.headers.contentType =
356 new ContentType("text", "html", charset: "utf-8");
Brian Wilkerson 2015/01/21 00:27:09 Can we use a static const?
Paul Berry 2015/01/21 17:57:37 It looks like the ContentType constructor is non-c
356 response.write('<html>'); 357 response.write('<html>');
357 response.write('<head>'); 358 response.write('<head>');
358 response.write('<title>Dart Analysis Server - Search result</title>'); 359 response.write('<title>Dart Analysis Server - Search result</title>');
359 response.write('</head>'); 360 response.write('</head>');
360 response.write('<body>'); 361 response.write('<body>');
361 response.write('<h1>'); 362 response.write('<h1>');
362 response.write('File ${HTML_ESCAPE.convert(sourceUri)}'); 363 response.write('File ${HTML_ESCAPE.convert(sourceUri)}');
363 response.write(' in context ${HTML_ESCAPE.convert(contextFilter)}'); 364 response.write(' in context ${HTML_ESCAPE.convert(contextFilter)}');
364 response.write('</h1>'); 365 response.write('</h1>');
365 analysisServer.folderMap.forEach( 366 analysisServer.folderMap.forEach(
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 request, 521 request,
521 'Query parameter $DESCRIPTOR_QUERY_PARAM required'); 522 'Query parameter $DESCRIPTOR_QUERY_PARAM required');
522 } 523 }
523 524
524 AnalysisServer analysisServer = _server.analysisServer; 525 AnalysisServer analysisServer = _server.analysisServer;
525 if (analysisServer == null) { 526 if (analysisServer == null) {
526 return _returnFailure(request, 'Analysis server not running'); 527 return _returnFailure(request, 'Analysis server not running');
527 } 528 }
528 HttpResponse response = request.response; 529 HttpResponse response = request.response;
529 response.statusCode = HttpStatus.OK; 530 response.statusCode = HttpStatus.OK;
530 response.headers.add(HttpHeaders.CONTENT_TYPE, "text/html"); 531 response.headers.contentType =
532 new ContentType("text", "html", charset: "utf-8");
531 response.write('<html>'); 533 response.write('<html>');
532 response.write('<head>'); 534 response.write('<head>');
533 response.write('<title>Dart Analysis Server - Search result</title>'); 535 response.write('<title>Dart Analysis Server - Search result</title>');
534 response.write('</head>'); 536 response.write('</head>');
535 response.write('<body>'); 537 response.write('<body>');
536 response.write('<h1>'); 538 response.write('<h1>');
537 response.write('Files with state ${HTML_ESCAPE.convert(stateQueryParam)}'); 539 response.write('Files with state ${HTML_ESCAPE.convert(stateQueryParam)}');
538 response.write(' for descriptor ${HTML_ESCAPE.convert(descriptorFilter)}'); 540 response.write(' for descriptor ${HTML_ESCAPE.convert(descriptorFilter)}');
539 response.write(' in context ${HTML_ESCAPE.convert(contextFilter)}'); 541 response.write(' in context ${HTML_ESCAPE.convert(contextFilter)}');
540 response.write('</h1>'); 542 response.write('</h1>');
(...skipping 26 matching lines...) Expand all
567 } 569 }
568 570
569 /** 571 /**
570 * Return a response displaying code completion information. 572 * Return a response displaying code completion information.
571 */ 573 */
572 void _returnCompletionInfo(HttpRequest request) { 574 void _returnCompletionInfo(HttpRequest request) {
573 var refresh = request.requestedUri.queryParameters['refresh']; 575 var refresh = request.requestedUri.queryParameters['refresh'];
574 var maxCount = request.requestedUri.queryParameters['maxCount']; 576 var maxCount = request.requestedUri.queryParameters['maxCount'];
575 HttpResponse response = request.response; 577 HttpResponse response = request.response;
576 response.statusCode = HttpStatus.OK; 578 response.statusCode = HttpStatus.OK;
577 response.headers.add(HttpHeaders.CONTENT_TYPE, "text/html"); 579 response.headers.contentType =
580 new ContentType("text", "html", charset: "utf-8");
578 response.write('<html>'); 581 response.write('<html>');
579 response.write('<head>'); 582 response.write('<head>');
580 response.write('<title>Dart Analysis Server - Completion Stats</title>'); 583 response.write('<title>Dart Analysis Server - Completion Stats</title>');
581 response.write('<style>'); 584 response.write('<style>');
582 response.write('td.right {text-align: right;}'); 585 response.write('td.right {text-align: right;}');
583 response.write('</style>'); 586 response.write('</style>');
584 if (refresh is String) { 587 if (refresh is String) {
585 int seconds = int.parse(refresh, onError: (_) => 5); 588 int seconds = int.parse(refresh, onError: (_) => 5);
586 response.write('<meta http-equiv="refresh" content="$seconds">'); 589 response.write('<meta http-equiv="refresh" content="$seconds">');
587 } 590 }
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 return; 777 return;
775 } 778 }
776 element.accept(new ElementWriter(buffer)); 779 element.accept(new ElementWriter(buffer));
777 }); 780 });
778 }); 781 });
779 } 782 }
780 783
781 void _returnFailure(HttpRequest request, String message) { 784 void _returnFailure(HttpRequest request, String message) {
782 HttpResponse response = request.response; 785 HttpResponse response = request.response;
783 response.statusCode = HttpStatus.OK; 786 response.statusCode = HttpStatus.OK;
784 response.headers.add(HttpHeaders.CONTENT_TYPE, "text/html"); 787 response.headers.contentType =
788 new ContentType("text", "html", charset: "utf-8");
785 response.write('<html>'); 789 response.write('<html>');
786 response.write('<head>'); 790 response.write('<head>');
787 response.write('<title>Dart Analysis Server - Failure</title>'); 791 response.write('<title>Dart Analysis Server - Failure</title>');
788 response.write('</head>'); 792 response.write('</head>');
789 response.write('<body>'); 793 response.write('<body>');
790 response.write(HTML_ESCAPE.convert(message)); 794 response.write(HTML_ESCAPE.convert(message));
791 response.write('</body>'); 795 response.write('</body>');
792 response.write('</html>'); 796 response.write('</html>');
793 response.close(); 797 response.close();
794 } 798 }
795 799
796 void _returnOverlayContents(HttpRequest request) { 800 void _returnOverlayContents(HttpRequest request) {
797 String idString = request.requestedUri.queryParameters[ID_PARAM]; 801 String idString = request.requestedUri.queryParameters[ID_PARAM];
798 int id = int.parse(idString); 802 int id = int.parse(idString);
799 String contents = _overlayContents[id]; 803 String contents = _overlayContents[id];
800 HttpResponse response = request.response; 804 HttpResponse response = request.response;
801 response.statusCode = HttpStatus.OK; 805 response.statusCode = HttpStatus.OK;
802 response.headers.add(HttpHeaders.CONTENT_TYPE, "text/html"); 806 response.headers.contentType =
807 new ContentType("text", "html", charset: "utf-8");
803 response.write('<html>'); 808 response.write('<html>');
804 response.write('<head>'); 809 response.write('<head>');
805 response.write('<title>Dart Analysis Server - Overlay</title>'); 810 response.write('<title>Dart Analysis Server - Overlay</title>');
806 response.write('</head>'); 811 response.write('</head>');
807 response.write('<body>'); 812 response.write('<body>');
808 response.write('<pre>${HTML_ESCAPE.convert(contents)}</pre>'); 813 response.write('<pre>${HTML_ESCAPE.convert(contents)}</pre>');
809 response.write('</body>'); 814 response.write('</body>');
810 response.write('</html>'); 815 response.write('</html>');
811 response.close(); 816 response.close();
812 } 817 }
813 818
814 /** 819 /**
815 * Return a response displaying overlays information. 820 * Return a response displaying overlays information.
816 */ 821 */
817 void _returnOverlaysInfo(HttpRequest request) { 822 void _returnOverlaysInfo(HttpRequest request) {
818 AnalysisServer analysisServer = _server.analysisServer; 823 AnalysisServer analysisServer = _server.analysisServer;
819 if (analysisServer == null) { 824 if (analysisServer == null) {
820 return _returnFailure(request, 'Analysis server is not running'); 825 return _returnFailure(request, 'Analysis server is not running');
821 } 826 }
822 HttpResponse response = request.response; 827 HttpResponse response = request.response;
823 response.statusCode = HttpStatus.OK; 828 response.statusCode = HttpStatus.OK;
824 response.headers.add(HttpHeaders.CONTENT_TYPE, "text/html"); 829 response.headers.contentType =
830 new ContentType("text", "html", charset: "utf-8");
825 response.write('<html>'); 831 response.write('<html>');
826 response.write('<head>'); 832 response.write('<head>');
827 response.write('<title>Dart Analysis Server - Overlays</title>'); 833 response.write('<title>Dart Analysis Server - Overlays</title>');
828 response.write('</head>'); 834 response.write('</head>');
829 response.write('<body>'); 835 response.write('<body>');
830 response.write('<h1>Dart Analysis Server - Overlays</h1>'); 836 response.write('<h1>Dart Analysis Server - Overlays</h1>');
831 response.write('<table border="1">'); 837 response.write('<table border="1">');
832 int count = 0; 838 int count = 0;
833 _overlayContents.clear(); 839 _overlayContents.clear();
834 analysisServer.folderMap.forEach((_, AnalysisContextImpl context) { 840 analysisServer.folderMap.forEach((_, AnalysisContextImpl context) {
(...skipping 15 matching lines...) Expand all
850 response.write('</html>'); 856 response.write('</html>');
851 response.close(); 857 response.close();
852 } 858 }
853 859
854 /** 860 /**
855 * Return a response indicating the status of the analysis server. 861 * Return a response indicating the status of the analysis server.
856 */ 862 */
857 void _returnServerStatus(HttpRequest request) { 863 void _returnServerStatus(HttpRequest request) {
858 HttpResponse response = request.response; 864 HttpResponse response = request.response;
859 response.statusCode = HttpStatus.OK; 865 response.statusCode = HttpStatus.OK;
860 response.headers.add(HttpHeaders.CONTENT_TYPE, "text/html"); 866 response.headers.contentType =
867 new ContentType("text", "html", charset: "utf-8");
861 response.write('<html>'); 868 response.write('<html>');
862 response.write('<head>'); 869 response.write('<head>');
863 response.write('<title>Dart Analysis Server - Status</title>'); 870 response.write('<title>Dart Analysis Server - Status</title>');
864 response.write('<style>'); 871 response.write('<style>');
865 response.write('td.right {text-align: right;}'); 872 response.write('td.right {text-align: right;}');
866 response.write('</style>'); 873 response.write('</style>');
867 response.write('</head>'); 874 response.write('</head>');
868 response.write('<body>'); 875 response.write('<body>');
869 response.write('<h1>Analysis Server</h1>'); 876 response.write('<h1>Analysis Server</h1>');
870 AnalysisServer analysisServer = _server.analysisServer; 877 AnalysisServer analysisServer = _server.analysisServer;
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
972 }); 979 });
973 } 980 }
974 981
975 /** 982 /**
976 * Return an error in response to an unrecognized request received by the HTTP 983 * Return an error in response to an unrecognized request received by the HTTP
977 * server. 984 * server.
978 */ 985 */
979 void _returnUnknownRequest(HttpRequest request) { 986 void _returnUnknownRequest(HttpRequest request) {
980 HttpResponse response = request.response; 987 HttpResponse response = request.response;
981 response.statusCode = HttpStatus.NOT_FOUND; 988 response.statusCode = HttpStatus.NOT_FOUND;
982 response.headers.add(HttpHeaders.CONTENT_TYPE, "text/html"); 989 response.headers.contentType =
990 new ContentType("text", "html", charset: "utf-8");
983 response.write('<html>'); 991 response.write('<html>');
984 response.write('<head>'); 992 response.write('<head>');
985 response.write('<title>Dart Analysis Server - Page Not Found</title>'); 993 response.write('<title>Dart Analysis Server - Page Not Found</title>');
986 response.write('</head>'); 994 response.write('</head>');
987 response.write('<body>'); 995 response.write('<body>');
988 response.write('<h1>Page Not Found</h1>'); 996 response.write('<h1>Page Not Found</h1>');
989 response.write('<p>Try one of these links instead:</p>'); 997 response.write('<p>Try one of these links instead:</p>');
990 response.write('<ul>'); 998 response.write('<ul>');
991 response.write('<li><a href="$STATUS_PATH">Server Status</a></li>'); 999 response.write('<li><a href="$STATUS_PATH">Server Status</a></li>');
992 response.write('<li><a href="$COMPLETION_PATH">Completion Stats</a></li>'); 1000 response.write('<li><a href="$COMPLETION_PATH">Completion Stats</a></li>');
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
1359 } else { 1367 } else {
1360 buffer.write('<pre>'); 1368 buffer.write('<pre>');
1361 buffer.write(output); 1369 buffer.write(output);
1362 buffer.write('</pre>'); 1370 buffer.write('</pre>');
1363 } 1371 }
1364 } 1372 }
1365 1373
1366 void _writeResponse(HttpRequest request, HtmlGenerator writePage) { 1374 void _writeResponse(HttpRequest request, HtmlGenerator writePage) {
1367 HttpResponse response = request.response; 1375 HttpResponse response = request.response;
1368 response.statusCode = HttpStatus.OK; 1376 response.statusCode = HttpStatus.OK;
1369 response.headers.add(HttpHeaders.CONTENT_TYPE, "text/html"); 1377 response.headers.contentType =
1378 new ContentType("text", "html", charset: "utf-8");
1370 try { 1379 try {
1371 StringBuffer buffer = new StringBuffer(); 1380 StringBuffer buffer = new StringBuffer();
1372 try { 1381 try {
1373 writePage(buffer); 1382 writePage(buffer);
1374 } catch (exception, stackTrace) { 1383 } catch (exception, stackTrace) {
1375 buffer.clear(); 1384 buffer.clear();
1376 _writePage(buffer, 'Internal Exception', [], (StringBuffer buffer) { 1385 _writePage(buffer, 'Internal Exception', [], (StringBuffer buffer) {
1377 _writeException(buffer, new CaughtException(exception, stackTrace)); 1386 _writeException(buffer, new CaughtException(exception, stackTrace));
1378 }); 1387 });
1379 } 1388 }
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1608 } else if (value is Element) { 1617 } else if (value is Element) {
1609 String link = 1618 String link =
1610 _makeLink(ELEMENT_PATH, linkParameters, value.runtimeType.toString()); 1619 _makeLink(ELEMENT_PATH, linkParameters, value.runtimeType.toString());
1611 buffer.write('<i>$link</i>'); 1620 buffer.write('<i>$link</i>');
1612 } else { 1621 } else {
1613 buffer.write(HTML_ESCAPE.convert(value.toString())); 1622 buffer.write(HTML_ESCAPE.convert(value.toString()));
1614 buffer.write(' <i>(${value.runtimeType.toString()})</i>'); 1623 buffer.write(' <i>(${value.runtimeType.toString()})</i>');
1615 } 1624 }
1616 } 1625 }
1617 } 1626 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/server/http_server.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698