Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 } |
| OLD | NEW |