Index: pkg/analysis_server/tool/instrumentation/page/page_writer.dart |
diff --git a/pkg/analysis_server/tool/instrumentation/page/page_writer.dart b/pkg/analysis_server/tool/instrumentation/page/page_writer.dart |
index bd7e7697044cffe61474def132ed6630f471ce7d..dca5673452bd49c916f3fb9fd3492dd089bbd300 100644 |
--- a/pkg/analysis_server/tool/instrumentation/page/page_writer.dart |
+++ b/pkg/analysis_server/tool/instrumentation/page/page_writer.dart |
@@ -48,7 +48,11 @@ abstract class PageWriter { |
* Return an escaped version of the given [unsafe] text. |
*/ |
String escape(String unsafe) { |
- return htmlEscape.convert(unsafe); |
+ // We double escape single quotes because the escaped characters are |
+ // processed as part of reading the HTML, which means that single quotes |
+ // end up terminating string literals too early when they appear in event |
+ // handlers (which in turn leads to JavaScript syntax errors). |
+ return htmlEscape.convert(unsafe).replaceAll(''', '''); |
} |
/** |
@@ -273,8 +277,8 @@ th.narrow { |
*/ |
void writeTwoColumns(StringSink sink, String leftColumnId, |
Writer writeLeftColumn, String rightColumnId, Writer writeRightColumn) { |
- sink.writeln('<div>'); |
- sink.writeln(' <div>'); |
+ sink.writeln('<div id="container">'); |
+ sink.writeln(' <div id="content">'); |
sink.writeln(' <div id="$leftColumnId">'); |
sink.writeln(' <div class="inset">'); |
writeLeftColumn(sink); |