Version 2.15.0-209.0.dev

Merge commit 'c5f432668c6ea275d406a4bc622971dc1b86bdcb' into 'dev'
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index b0eccb6..0d71dc5 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -1722,7 +1722,7 @@
   }
 
   /// Serialize the given [resolvedUnit] errors and index into bytes.
-  List<int> _serializeResolvedUnit(
+  Uint8List _serializeResolvedUnit(
       CompilationUnit resolvedUnit, List<AnalysisError> errors) {
     AnalysisDriverUnitIndexBuilder index = enableIndex
         ? indexUnit(resolvedUnit)
@@ -1755,7 +1755,7 @@
               exception: exception.toString(),
               stackTrace: stackTrace.toString(),
               files: contextFiles);
-      List<int> bytes = contextBuilder.toBuffer();
+      var bytes = contextBuilder.toBuffer();
 
       String _twoDigits(int n) {
         if (n >= 10) return '$n';
diff --git a/pkg/analyzer/lib/src/summary/format.dart b/pkg/analyzer/lib/src/summary/format.dart
index 42602414..9e2e91b 100644
--- a/pkg/analyzer/lib/src/summary/format.dart
+++ b/pkg/analyzer/lib/src/summary/format.dart
@@ -13,6 +13,7 @@
 library analyzer.src.summary.format;
 
 import 'dart:convert' as convert;
+import 'dart:typed_data' as typed_data;
 
 import 'package:analyzer/src/summary/api_signature.dart' as api_sig;
 import 'package:analyzer/src/summary/flat_buffers.dart' as fb;
@@ -137,7 +138,7 @@
     }
   }
 
-  List<int> toBuffer() {
+  typed_data.Uint8List toBuffer() {
     fb.Builder fbBuilder = fb.Builder();
     return fbBuilder.finish(finish(fbBuilder), "ADEC");
   }
@@ -438,7 +439,7 @@
     this._index?.collectApiSignature(signatureSink);
   }
 
-  List<int> toBuffer() {
+  typed_data.Uint8List toBuffer() {
     fb.Builder fbBuilder = fb.Builder();
     return fbBuilder.finish(finish(fbBuilder), "ADRU");
   }
@@ -1360,7 +1361,7 @@
     }
   }
 
-  List<int> toBuffer() {
+  typed_data.Uint8List toBuffer() {
     fb.Builder fbBuilder = fb.Builder();
     return fbBuilder.finish(finish(fbBuilder), "ADUI");
   }
@@ -2766,7 +2767,7 @@
     }
   }
 
-  List<int> toBuffer() {
+  typed_data.Uint8List toBuffer() {
     fb.Builder fbBuilder = fb.Builder();
     return fbBuilder.finish(finish(fbBuilder), "UICF");
   }
@@ -3270,7 +3271,7 @@
     }
   }
 
-  List<int> toBuffer() {
+  typed_data.Uint8List toBuffer() {
     fb.Builder fbBuilder = fb.Builder();
     return fbBuilder.finish(finish(fbBuilder), "CUEr");
   }
@@ -3641,7 +3642,7 @@
     this._unlinkedUnit?.collectApiSignature(signatureSink);
   }
 
-  List<int> toBuffer() {
+  typed_data.Uint8List toBuffer() {
     fb.Builder fbBuilder = fb.Builder();
     return fbBuilder.finish(finish(fbBuilder), "CUUN");
   }
@@ -4106,7 +4107,7 @@
     signatureSink.addInt(this._fake ?? 0);
   }
 
-  List<int> toBuffer() {
+  typed_data.Uint8List toBuffer() {
     fb.Builder fbBuilder = fb.Builder();
     return fbBuilder.finish(finish(fbBuilder), "PBdl");
   }
@@ -4611,7 +4612,7 @@
     signatureSink.addString(this._partOfName ?? '');
   }
 
-  List<int> toBuffer() {
+  typed_data.Uint8List toBuffer() {
     fb.Builder fbBuilder = fb.Builder();
     return fbBuilder.finish(finish(fbBuilder), "UUN2");
   }
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_tag.dart b/pkg/analyzer/lib/src/summary2/ast_binary_tag.dart
index dfb26a2..a8033ec 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_tag.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_tag.dart
@@ -7,16 +7,6 @@
   static const int genericFunctionElement = 1;
 }
 
-/// A `MethodInvocation` in unresolved AST might be rewritten later as
-/// another kinds of AST node. We store this rewrite with resolution data.
-class MethodInvocationRewriteTag {
-  static const int extensionOverride = 1;
-  static const int functionExpressionInvocation = 2;
-  static const int instanceCreationExpression_withName = 3;
-  static const int instanceCreationExpression_withoutName = 4;
-  static const int none = 5;
-}
-
 class Tag {
   static const int Nothing = 0;
   static const int Something = 1;
diff --git a/pkg/analyzer/tool/summary/generate.dart b/pkg/analyzer/tool/summary/generate.dart
index a4fc1ce..b18c095 100644
--- a/pkg/analyzer/tool/summary/generate.dart
+++ b/pkg/analyzer/tool/summary/generate.dart
@@ -485,7 +485,7 @@
   void _generateToBuffer() {
     if (cls.isTopLevel) {
       out();
-      out('List<int> toBuffer() {');
+      out('typed_data.Uint8List toBuffer() {');
       indent(() {
         out('fb.Builder fbBuilder = fb.Builder();');
         var idOrNull = cls.fileIdentifier;
@@ -658,6 +658,7 @@
     out('library analyzer.src.summary.format;');
     out();
     out("import 'dart:convert' as convert;");
+    out("import 'dart:typed_data' as typed_data;");
     out();
     out("import 'package:analyzer/src/summary/api_signature.dart' as api_sig;");
     out("import 'package:analyzer/src/summary/flat_buffers.dart' as fb;");
diff --git a/runtime/observatory/lib/elements.dart b/runtime/observatory/lib/elements.dart
index 80f325c..9d90403 100644
--- a/runtime/observatory/lib/elements.dart
+++ b/runtime/observatory/lib/elements.dart
@@ -92,7 +92,6 @@
 export 'package:observatory/src/elements/unknown_ref.dart';
 export 'package:observatory/src/elements/unlinkedcall_ref.dart';
 export 'package:observatory/src/elements/unlinkedcall_view.dart';
-export 'package:observatory/src/elements/view_footer.dart';
 export 'package:observatory/src/elements/vm_connect.dart';
 export 'package:observatory/src/elements/vm_connect_target.dart';
 export 'package:observatory/src/elements/vm_view.dart';
diff --git a/runtime/observatory/lib/src/elements/class_view.dart b/runtime/observatory/lib/src/elements/class_view.dart
index 6ac2e06..27c8cb0 100644
--- a/runtime/observatory/lib/src/elements/class_view.dart
+++ b/runtime/observatory/lib/src/elements/class_view.dart
@@ -30,7 +30,6 @@
 import 'package:observatory/src/elements/object_common.dart';
 import 'package:observatory/src/elements/source_inset.dart';
 import 'package:observatory/src/elements/source_link.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class ClassViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<ClassViewElement> _r;
@@ -257,8 +256,6 @@
                         .element
                   ]
                 : const [],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/context_view.dart b/runtime/observatory/lib/src/elements/context_view.dart
index 8cfb76c..bb72e98 100644
--- a/runtime/observatory/lib/src/elements/context_view.dart
+++ b/runtime/observatory/lib/src/elements/context_view.dart
@@ -19,7 +19,6 @@
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
 import 'package:observatory/src/elements/object_common.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class ContextViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<ContextViewElement> _r;
@@ -187,9 +186,6 @@
           ]
       ]);
     }
-    content.add(new DivElement()
-      ..classes = ['content-centered-big']
-      ..children = <Element>[new ViewFooterElement(queue: _r.queue).element]);
     children = content;
   }
 }
diff --git a/runtime/observatory/lib/src/elements/error_view.dart b/runtime/observatory/lib/src/elements/error_view.dart
index 893e865..683c0a4 100644
--- a/runtime/observatory/lib/src/elements/error_view.dart
+++ b/runtime/observatory/lib/src/elements/error_view.dart
@@ -12,7 +12,6 @@
 import 'package:observatory/src/elements/helpers/custom_element.dart';
 import 'package:observatory/src/elements/nav/notify.dart';
 import 'package:observatory/src/elements/nav/top_menu.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class ErrorViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<ErrorViewElement> _r;
@@ -67,7 +66,6 @@
             ..classes = ['well']
             ..children = <Element>[new PreElement()..text = error.message]
         ],
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 
diff --git a/runtime/observatory/lib/src/elements/field_view.dart b/runtime/observatory/lib/src/elements/field_view.dart
index 2844b8f..1827ccb 100644
--- a/runtime/observatory/lib/src/elements/field_view.dart
+++ b/runtime/observatory/lib/src/elements/field_view.dart
@@ -24,7 +24,6 @@
 import 'package:observatory/src/elements/object_common.dart';
 import 'package:observatory/src/elements/script_inset.dart';
 import 'package:observatory/src/elements/source_link.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class FieldViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<FieldViewElement> _r;
@@ -162,7 +161,6 @@
                             queue: _r.queue)
                         .element
                   ],
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/flag_list.dart b/runtime/observatory/lib/src/elements/flag_list.dart
index d01b782..e7dfc42 100644
--- a/runtime/observatory/lib/src/elements/flag_list.dart
+++ b/runtime/observatory/lib/src/elements/flag_list.dart
@@ -16,7 +16,6 @@
 import 'package:observatory/src/elements/nav/refresh.dart';
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class FlagListElement extends CustomElement implements Renderable {
   late RenderingScheduler<FlagListElement> _r;
@@ -108,7 +107,6 @@
       new DivElement()
         ..classes = ['content-centered']
         ..children = content,
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 
diff --git a/runtime/observatory/lib/src/elements/function_view.dart b/runtime/observatory/lib/src/elements/function_view.dart
index f4ecbfc..f8b4443 100644
--- a/runtime/observatory/lib/src/elements/function_view.dart
+++ b/runtime/observatory/lib/src/elements/function_view.dart
@@ -27,7 +27,6 @@
 import 'package:observatory/src/elements/object_common.dart';
 import 'package:observatory/src/elements/source_inset.dart';
 import 'package:observatory/src/elements/source_link.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class FunctionViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<FunctionViewElement> _r;
@@ -145,7 +144,6 @@
                             queue: _r.queue)
                         .element
                   ],
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/icdata_view.dart b/runtime/observatory/lib/src/elements/icdata_view.dart
index 90a0a3e..986e637 100644
--- a/runtime/observatory/lib/src/elements/icdata_view.dart
+++ b/runtime/observatory/lib/src/elements/icdata_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
 import 'package:observatory/src/elements/object_common.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class ICDataViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<ICDataViewElement> _r;
@@ -182,7 +181,6 @@
                 ]
             ],
           new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/instance_view.dart b/runtime/observatory/lib/src/elements/instance_view.dart
index ca36d45..2063c28 100644
--- a/runtime/observatory/lib/src/elements/instance_view.dart
+++ b/runtime/observatory/lib/src/elements/instance_view.dart
@@ -29,7 +29,6 @@
 import 'package:observatory/src/elements/object_common.dart';
 import 'package:observatory/src/elements/source_inset.dart';
 import 'package:observatory/src/elements/source_link.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 import 'package:observatory/utils.dart';
 
 class InstanceViewElement extends CustomElement implements Renderable {
@@ -163,8 +162,6 @@
             .element
       ]);
     }
-    content.addAll(
-        [new HRElement(), new ViewFooterElement(queue: _r.queue).element]);
     children = <Element>[
       navBar(_createMenu()),
       new DivElement()
diff --git a/runtime/observatory/lib/src/elements/isolate_reconnect.dart b/runtime/observatory/lib/src/elements/isolate_reconnect.dart
index c6a02f9..16f8eed 100644
--- a/runtime/observatory/lib/src/elements/isolate_reconnect.dart
+++ b/runtime/observatory/lib/src/elements/isolate_reconnect.dart
@@ -13,7 +13,6 @@
 import 'package:observatory/src/elements/helpers/uris.dart';
 import 'package:observatory/src/elements/nav/notify.dart';
 import 'package:observatory/src/elements/nav/top_menu.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class IsolateReconnectElement extends CustomElement implements Renderable {
   late RenderingScheduler<IsolateReconnectElement> _r;
@@ -104,7 +103,6 @@
                   new AnchorElement(href: Uris.vm())..text = 'isolates summary',
                 ]))
         ],
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 }
diff --git a/runtime/observatory/lib/src/elements/isolate_view.dart b/runtime/observatory/lib/src/elements/isolate_view.dart
index d792d03..bd60064 100644
--- a/runtime/observatory/lib/src/elements/isolate_view.dart
+++ b/runtime/observatory/lib/src/elements/isolate_view.dart
@@ -27,7 +27,6 @@
 import 'package:observatory/src/elements/nav/vm_menu.dart';
 import 'package:observatory/src/elements/script_inset.dart';
 import 'package:observatory/src/elements/source_inset.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 import 'package:observatory/utils.dart';
 
 class IsolateViewElement extends CustomElement implements Renderable {
@@ -305,8 +304,6 @@
                         .element
                   ]
                 : const [],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/json_view.dart b/runtime/observatory/lib/src/elements/json_view.dart
index 9e59278..fd406b8 100644
--- a/runtime/observatory/lib/src/elements/json_view.dart
+++ b/runtime/observatory/lib/src/elements/json_view.dart
@@ -12,7 +12,6 @@
 import 'package:observatory/src/elements/helpers/custom_element.dart';
 import 'package:observatory/src/elements/nav/notify.dart';
 import 'package:observatory/src/elements/nav/top_menu.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class JSONViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<JSONViewElement> _r;
@@ -63,8 +62,6 @@
           new HeadingElement.h2()..text = 'Object',
           new HRElement(),
           new PreElement()..text = JSONPretty.stringify(_map),
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/library_view.dart b/runtime/observatory/lib/src/elements/library_view.dart
index 849eaba..8ac928e 100644
--- a/runtime/observatory/lib/src/elements/library_view.dart
+++ b/runtime/observatory/lib/src/elements/library_view.dart
@@ -26,7 +26,6 @@
 import 'package:observatory/src/elements/object_common.dart';
 import 'package:observatory/src/elements/script_ref.dart';
 import 'package:observatory/src/elements/script_inset.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class LibraryViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<LibraryViewElement> _r;
@@ -190,8 +189,6 @@
                     queue: _r.queue)
                 .element
           ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/logging.dart b/runtime/observatory/lib/src/elements/logging.dart
index 349401d..af7d201 100644
--- a/runtime/observatory/lib/src/elements/logging.dart
+++ b/runtime/observatory/lib/src/elements/logging.dart
@@ -19,7 +19,6 @@
 import 'package:observatory/src/elements/nav/refresh.dart';
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class LoggingPageElement extends CustomElement implements Renderable {
   late RenderingScheduler<LoggingPageElement> _r;
diff --git a/runtime/observatory/lib/src/elements/megamorphiccache_view.dart b/runtime/observatory/lib/src/elements/megamorphiccache_view.dart
index fab2513..6bf2674 100644
--- a/runtime/observatory/lib/src/elements/megamorphiccache_view.dart
+++ b/runtime/observatory/lib/src/elements/megamorphiccache_view.dart
@@ -20,7 +20,6 @@
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
 import 'package:observatory/src/elements/object_common.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class MegamorphicCacheViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<MegamorphicCacheViewElement> _r;
@@ -177,8 +176,6 @@
                     ]
                 ]
             ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/object_view.dart b/runtime/observatory/lib/src/elements/object_view.dart
index 7ff7708..c9f6cca 100644
--- a/runtime/observatory/lib/src/elements/object_view.dart
+++ b/runtime/observatory/lib/src/elements/object_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
 import 'package:observatory/src/elements/object_common.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class ObjectViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<ObjectViewElement> _r;
@@ -116,8 +115,6 @@
                   _reachableSizes, _references, _retainingPaths, _objects,
                   queue: _r.queue)
               .element,
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/objectpool_view.dart b/runtime/observatory/lib/src/elements/objectpool_view.dart
index 1967324..4a07333 100644
--- a/runtime/observatory/lib/src/elements/objectpool_view.dart
+++ b/runtime/observatory/lib/src/elements/objectpool_view.dart
@@ -20,7 +20,6 @@
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
 import 'package:observatory/src/elements/object_common.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class ObjectPoolViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<ObjectPoolViewElement> _r;
@@ -140,8 +139,6 @@
                       ..children = _createEntry(entry)
                   ])
                 .toList(),
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/objectstore_view.dart b/runtime/observatory/lib/src/elements/objectstore_view.dart
index 59c4003..d040f7f 100644
--- a/runtime/observatory/lib/src/elements/objectstore_view.dart
+++ b/runtime/observatory/lib/src/elements/objectstore_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory/src/elements/nav/refresh.dart';
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class ObjectStoreViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<ObjectStoreViewElement> _r;
@@ -116,7 +115,6 @@
                           ]
                       ])
                     .toList()),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/ports.dart b/runtime/observatory/lib/src/elements/ports.dart
index 4a40a89..3a26377 100644
--- a/runtime/observatory/lib/src/elements/ports.dart
+++ b/runtime/observatory/lib/src/elements/ports.dart
@@ -16,7 +16,6 @@
 import 'package:observatory/src/elements/nav/refresh.dart';
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class PortsElement extends CustomElement implements Renderable {
   late RenderingScheduler<PortsElement> _r;
@@ -101,7 +100,6 @@
           new BRElement(),
           new DivElement()..children = _createList(),
         ],
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 
diff --git a/runtime/observatory/lib/src/elements/script_view.dart b/runtime/observatory/lib/src/elements/script_view.dart
index 44fb84e..bbffe71 100644
--- a/runtime/observatory/lib/src/elements/script_view.dart
+++ b/runtime/observatory/lib/src/elements/script_view.dart
@@ -21,7 +21,6 @@
 import 'package:observatory/src/elements/nav/vm_menu.dart';
 import 'package:observatory/src/elements/object_common.dart';
 import 'package:observatory/src/elements/script_inset.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class ScriptViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<ScriptViewElement> _r;
@@ -149,7 +148,6 @@
           new ScriptInsetElement(_isolate, _script, _scripts, _objects, _events,
                   currentPos: _pos, queue: _r.queue)
               .element,
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/sentinel_view.dart b/runtime/observatory/lib/src/elements/sentinel_view.dart
index dd45ef5..83082fb 100644
--- a/runtime/observatory/lib/src/elements/sentinel_view.dart
+++ b/runtime/observatory/lib/src/elements/sentinel_view.dart
@@ -13,7 +13,6 @@
 import 'package:observatory/src/elements/nav/notify.dart';
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class SentinelViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<SentinelViewElement> _r;
@@ -82,8 +81,6 @@
             ..text = 'Sentinel: #{_sentinel.valueAsString}',
           new HRElement(),
           new DivElement()..text = _sentinelKindToDescription(_sentinel.kind),
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/singletargetcache_view.dart b/runtime/observatory/lib/src/elements/singletargetcache_view.dart
index 6d0fdd3..66ad939 100644
--- a/runtime/observatory/lib/src/elements/singletargetcache_view.dart
+++ b/runtime/observatory/lib/src/elements/singletargetcache_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
 import 'package:observatory/src/elements/object_common.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class SingleTargetCacheViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<SingleTargetCacheViewElement> _r;
@@ -170,8 +169,6 @@
                     ]
                 ]
             ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/subtypetestcache_view.dart b/runtime/observatory/lib/src/elements/subtypetestcache_view.dart
index 5734b7d..2e3c6cf 100644
--- a/runtime/observatory/lib/src/elements/subtypetestcache_view.dart
+++ b/runtime/observatory/lib/src/elements/subtypetestcache_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
 import 'package:observatory/src/elements/object_common.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class SubtypeTestCacheViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<SubtypeTestCacheViewElement> _r;
@@ -141,8 +140,6 @@
                     ]
                 ]
             ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/unlinkedcall_view.dart b/runtime/observatory/lib/src/elements/unlinkedcall_view.dart
index a346b48..d1efd9f 100644
--- a/runtime/observatory/lib/src/elements/unlinkedcall_view.dart
+++ b/runtime/observatory/lib/src/elements/unlinkedcall_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
 import 'package:observatory/src/elements/object_common.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 
 class UnlinkedCallViewElement extends CustomElement implements Renderable {
   late RenderingScheduler<UnlinkedCallViewElement> _r;
@@ -153,8 +152,6 @@
                     ]
                 ]
             ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory/lib/src/elements/view_footer.dart b/runtime/observatory/lib/src/elements/view_footer.dart
deleted file mode 100644
index 1c8505b..0000000
--- a/runtime/observatory/lib/src/elements/view_footer.dart
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library view_footer_element;
-
-import 'dart:html';
-import 'dart:async';
-import 'package:observatory/src/elements/helpers/custom_element.dart';
-import 'package:observatory/src/elements/helpers/rendering_scheduler.dart';
-
-class ViewFooterElement extends CustomElement implements Renderable {
-  late RenderingScheduler<ViewFooterElement> _r;
-
-  Stream<RenderedEvent<ViewFooterElement>> get onRendered => _r.onRendered;
-
-  factory ViewFooterElement({RenderingQueue? queue}) {
-    ViewFooterElement e = new ViewFooterElement.created();
-    e._r = new RenderingScheduler<ViewFooterElement>(e, queue: queue);
-    return e;
-  }
-
-  ViewFooterElement.created() : super.created('view-footer');
-
-  @override
-  void attached() {
-    super.attached();
-    _r.enable();
-  }
-
-  @override
-  void detached() {
-    super.detached();
-    children = <Element>[];
-    _r.disable(notify: true);
-  }
-
-  void render() {
-    children = <Element>[
-      new AnchorElement()
-        // ignore: unsafe_html
-        ..href = 'https://dart-lang.github.io/observatory/'
-        ..text = 'View documentation',
-      new AnchorElement()
-        // ignore: unsafe_html
-        ..href =
-            'https://github.com/dart-lang/sdk/issues/new?title=Observatory:&amp;body=Observatory%20Feedback'
-        ..text = 'File a bug report'
-    ];
-  }
-}
diff --git a/runtime/observatory/lib/src/elements/vm_connect.dart b/runtime/observatory/lib/src/elements/vm_connect.dart
index 26bfb17..c90c7ab 100644
--- a/runtime/observatory/lib/src/elements/vm_connect.dart
+++ b/runtime/observatory/lib/src/elements/vm_connect.dart
@@ -13,7 +13,6 @@
 import 'package:observatory/src/elements/helpers/custom_element.dart';
 import 'package:observatory/src/elements/nav/notify.dart';
 import 'package:observatory/src/elements/nav/top_menu.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 import 'package:observatory/src/elements/vm_connect_target.dart';
 
 class VMConnectElement extends CustomElement implements Renderable {
@@ -114,7 +113,6 @@
               new DivElement()..classes = ['flex-item-20-percent'],
             ],
         ],
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 
diff --git a/runtime/observatory/lib/src/elements/vm_view.dart b/runtime/observatory/lib/src/elements/vm_view.dart
index 4bcec55..80c2910 100644
--- a/runtime/observatory/lib/src/elements/vm_view.dart
+++ b/runtime/observatory/lib/src/elements/vm_view.dart
@@ -16,7 +16,6 @@
 import 'package:observatory/src/elements/nav/refresh.dart';
 import 'package:observatory/src/elements/nav/top_menu.dart';
 import 'package:observatory/src/elements/nav/vm_menu.dart';
-import 'package:observatory/src/elements/view_footer.dart';
 import 'package:observatory/utils.dart';
 
 class VMViewElement extends CustomElement implements Renderable {
@@ -119,7 +118,6 @@
       describeVM(),
       describeIsolateGroups(),
       describeSystemIsolateGroups(),
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 
diff --git a/runtime/observatory/observatory_sources.gni b/runtime/observatory/observatory_sources.gni
index 88db18e..8ea8e7c 100644
--- a/runtime/observatory/observatory_sources.gni
+++ b/runtime/observatory/observatory_sources.gni
@@ -137,7 +137,6 @@
   "lib/src/elements/unknown_ref.dart",
   "lib/src/elements/unlinkedcall_ref.dart",
   "lib/src/elements/unlinkedcall_view.dart",
-  "lib/src/elements/view_footer.dart",
   "lib/src/elements/vm_connect.dart",
   "lib/src/elements/vm_connect_target.dart",
   "lib/src/elements/vm_view.dart",
diff --git a/runtime/observatory_2/lib/elements.dart b/runtime/observatory_2/lib/elements.dart
index b4f60b7..9f18b1c 100644
--- a/runtime/observatory_2/lib/elements.dart
+++ b/runtime/observatory_2/lib/elements.dart
@@ -93,7 +93,6 @@
 export 'package:observatory_2/src/elements/unknown_ref.dart';
 export 'package:observatory_2/src/elements/unlinkedcall_ref.dart';
 export 'package:observatory_2/src/elements/unlinkedcall_view.dart';
-export 'package:observatory_2/src/elements/view_footer.dart';
 export 'package:observatory_2/src/elements/vm_connect.dart';
 export 'package:observatory_2/src/elements/vm_connect_target.dart';
 export 'package:observatory_2/src/elements/vm_view.dart';
diff --git a/runtime/observatory_2/lib/src/elements/class_view.dart b/runtime/observatory_2/lib/src/elements/class_view.dart
index 4dd190e..188514c 100644
--- a/runtime/observatory_2/lib/src/elements/class_view.dart
+++ b/runtime/observatory_2/lib/src/elements/class_view.dart
@@ -30,7 +30,6 @@
 import 'package:observatory_2/src/elements/object_common.dart';
 import 'package:observatory_2/src/elements/source_inset.dart';
 import 'package:observatory_2/src/elements/source_link.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class ClassViewElement extends CustomElement implements Renderable {
   RenderingScheduler<ClassViewElement> _r;
@@ -257,8 +256,6 @@
                         .element
                   ]
                 : const [],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/context_view.dart b/runtime/observatory_2/lib/src/elements/context_view.dart
index 3b759eb..27030ec 100644
--- a/runtime/observatory_2/lib/src/elements/context_view.dart
+++ b/runtime/observatory_2/lib/src/elements/context_view.dart
@@ -19,7 +19,6 @@
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
 import 'package:observatory_2/src/elements/object_common.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class ContextViewElement extends CustomElement implements Renderable {
   RenderingScheduler<ContextViewElement> _r;
@@ -187,9 +186,6 @@
           ]
       ]);
     }
-    content.add(new DivElement()
-      ..classes = ['content-centered-big']
-      ..children = <Element>[new ViewFooterElement(queue: _r.queue).element]);
     children = content;
   }
 }
diff --git a/runtime/observatory_2/lib/src/elements/error_view.dart b/runtime/observatory_2/lib/src/elements/error_view.dart
index d4edfb2..2d7393e 100644
--- a/runtime/observatory_2/lib/src/elements/error_view.dart
+++ b/runtime/observatory_2/lib/src/elements/error_view.dart
@@ -12,7 +12,6 @@
 import 'package:observatory_2/src/elements/helpers/custom_element.dart';
 import 'package:observatory_2/src/elements/nav/notify.dart';
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class ErrorViewElement extends CustomElement implements Renderable {
   RenderingScheduler<ErrorViewElement> _r;
@@ -67,7 +66,6 @@
             ..classes = ['well']
             ..children = <Element>[new PreElement()..text = error.message]
         ],
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 
diff --git a/runtime/observatory_2/lib/src/elements/field_view.dart b/runtime/observatory_2/lib/src/elements/field_view.dart
index 5e4979f..50c9c17 100644
--- a/runtime/observatory_2/lib/src/elements/field_view.dart
+++ b/runtime/observatory_2/lib/src/elements/field_view.dart
@@ -24,7 +24,6 @@
 import 'package:observatory_2/src/elements/object_common.dart';
 import 'package:observatory_2/src/elements/script_inset.dart';
 import 'package:observatory_2/src/elements/source_link.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class FieldViewElement extends CustomElement implements Renderable {
   RenderingScheduler<FieldViewElement> _r;
@@ -162,7 +161,6 @@
                             queue: _r.queue)
                         .element
                   ],
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/flag_list.dart b/runtime/observatory_2/lib/src/elements/flag_list.dart
index 5f540fc..be6f863 100644
--- a/runtime/observatory_2/lib/src/elements/flag_list.dart
+++ b/runtime/observatory_2/lib/src/elements/flag_list.dart
@@ -16,7 +16,6 @@
 import 'package:observatory_2/src/elements/nav/refresh.dart';
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class FlagListElement extends CustomElement implements Renderable {
   RenderingScheduler<FlagListElement> _r;
@@ -108,7 +107,6 @@
       new DivElement()
         ..classes = ['content-centered']
         ..children = content,
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 
diff --git a/runtime/observatory_2/lib/src/elements/function_view.dart b/runtime/observatory_2/lib/src/elements/function_view.dart
index 963ecc4..9850fde 100644
--- a/runtime/observatory_2/lib/src/elements/function_view.dart
+++ b/runtime/observatory_2/lib/src/elements/function_view.dart
@@ -27,7 +27,6 @@
 import 'package:observatory_2/src/elements/object_common.dart';
 import 'package:observatory_2/src/elements/source_inset.dart';
 import 'package:observatory_2/src/elements/source_link.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class FunctionViewElement extends CustomElement implements Renderable {
   RenderingScheduler<FunctionViewElement> _r;
@@ -145,7 +144,6 @@
                             queue: _r.queue)
                         .element
                   ],
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/icdata_view.dart b/runtime/observatory_2/lib/src/elements/icdata_view.dart
index 8018897..e52c5a4 100644
--- a/runtime/observatory_2/lib/src/elements/icdata_view.dart
+++ b/runtime/observatory_2/lib/src/elements/icdata_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
 import 'package:observatory_2/src/elements/object_common.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class ICDataViewElement extends CustomElement implements Renderable {
   RenderingScheduler<ICDataViewElement> _r;
@@ -181,8 +180,6 @@
                     ]
                 ]
             ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/instance_view.dart b/runtime/observatory_2/lib/src/elements/instance_view.dart
index 1b78e7d..fcc1812 100644
--- a/runtime/observatory_2/lib/src/elements/instance_view.dart
+++ b/runtime/observatory_2/lib/src/elements/instance_view.dart
@@ -29,7 +29,6 @@
 import 'package:observatory_2/src/elements/object_common.dart';
 import 'package:observatory_2/src/elements/source_inset.dart';
 import 'package:observatory_2/src/elements/source_link.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 import 'package:observatory_2/utils.dart';
 
 class InstanceViewElement extends CustomElement implements Renderable {
@@ -162,8 +161,6 @@
             .element
       ]);
     }
-    content.addAll(
-        [new HRElement(), new ViewFooterElement(queue: _r.queue).element]);
     children = <Element>[
       navBar(_createMenu()),
       new DivElement()
diff --git a/runtime/observatory_2/lib/src/elements/isolate_reconnect.dart b/runtime/observatory_2/lib/src/elements/isolate_reconnect.dart
index f4b9e23..6beb606 100644
--- a/runtime/observatory_2/lib/src/elements/isolate_reconnect.dart
+++ b/runtime/observatory_2/lib/src/elements/isolate_reconnect.dart
@@ -13,7 +13,6 @@
 import 'package:observatory_2/src/elements/helpers/uris.dart';
 import 'package:observatory_2/src/elements/nav/notify.dart';
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class IsolateReconnectElement extends CustomElement implements Renderable {
   RenderingScheduler<IsolateReconnectElement> _r;
@@ -104,7 +103,6 @@
                   new AnchorElement(href: Uris.vm())..text = 'isolates summary',
                 ]))
         ],
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 }
diff --git a/runtime/observatory_2/lib/src/elements/isolate_view.dart b/runtime/observatory_2/lib/src/elements/isolate_view.dart
index 59104c9..08f281e 100644
--- a/runtime/observatory_2/lib/src/elements/isolate_view.dart
+++ b/runtime/observatory_2/lib/src/elements/isolate_view.dart
@@ -27,7 +27,6 @@
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
 import 'package:observatory_2/src/elements/script_inset.dart';
 import 'package:observatory_2/src/elements/source_inset.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 import 'package:observatory_2/utils.dart';
 
 class IsolateViewElement extends CustomElement implements Renderable {
@@ -305,8 +304,6 @@
                         .element
                   ]
                 : const [],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/json_view.dart b/runtime/observatory_2/lib/src/elements/json_view.dart
index f003d60..b3cf6f2 100644
--- a/runtime/observatory_2/lib/src/elements/json_view.dart
+++ b/runtime/observatory_2/lib/src/elements/json_view.dart
@@ -12,7 +12,6 @@
 import 'package:observatory_2/src/elements/helpers/custom_element.dart';
 import 'package:observatory_2/src/elements/nav/notify.dart';
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class JSONViewElement extends CustomElement implements Renderable {
   RenderingScheduler<JSONViewElement> _r;
@@ -63,8 +62,6 @@
           new HeadingElement.h2()..text = 'Object',
           new HRElement(),
           new PreElement()..text = JSONPretty.stringify(_map),
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/library_view.dart b/runtime/observatory_2/lib/src/elements/library_view.dart
index b1c9656..6487337 100644
--- a/runtime/observatory_2/lib/src/elements/library_view.dart
+++ b/runtime/observatory_2/lib/src/elements/library_view.dart
@@ -26,7 +26,6 @@
 import 'package:observatory_2/src/elements/object_common.dart';
 import 'package:observatory_2/src/elements/script_ref.dart';
 import 'package:observatory_2/src/elements/script_inset.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class LibraryViewElement extends CustomElement implements Renderable {
   RenderingScheduler<LibraryViewElement> _r;
@@ -190,8 +189,6 @@
                     queue: _r.queue)
                 .element
           ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/logging.dart b/runtime/observatory_2/lib/src/elements/logging.dart
index dd922a2..6673491 100644
--- a/runtime/observatory_2/lib/src/elements/logging.dart
+++ b/runtime/observatory_2/lib/src/elements/logging.dart
@@ -19,7 +19,6 @@
 import 'package:observatory_2/src/elements/nav/refresh.dart';
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class LoggingPageElement extends CustomElement implements Renderable {
   RenderingScheduler<LoggingPageElement> _r;
diff --git a/runtime/observatory_2/lib/src/elements/megamorphiccache_view.dart b/runtime/observatory_2/lib/src/elements/megamorphiccache_view.dart
index 71bb435..95f3aba 100644
--- a/runtime/observatory_2/lib/src/elements/megamorphiccache_view.dart
+++ b/runtime/observatory_2/lib/src/elements/megamorphiccache_view.dart
@@ -20,7 +20,6 @@
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
 import 'package:observatory_2/src/elements/object_common.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class MegamorphicCacheViewElement extends CustomElement implements Renderable {
   RenderingScheduler<MegamorphicCacheViewElement> _r;
@@ -177,8 +176,6 @@
                     ]
                 ]
             ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/object_view.dart b/runtime/observatory_2/lib/src/elements/object_view.dart
index ee41d78..6a6f01c 100644
--- a/runtime/observatory_2/lib/src/elements/object_view.dart
+++ b/runtime/observatory_2/lib/src/elements/object_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
 import 'package:observatory_2/src/elements/object_common.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class ObjectViewElement extends CustomElement implements Renderable {
   RenderingScheduler<ObjectViewElement> _r;
@@ -117,8 +116,6 @@
                   _reachableSizes, _references, _retainingPaths, _objects,
                   queue: _r.queue)
               .element,
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/objectpool_view.dart b/runtime/observatory_2/lib/src/elements/objectpool_view.dart
index a99091a..fa74651 100644
--- a/runtime/observatory_2/lib/src/elements/objectpool_view.dart
+++ b/runtime/observatory_2/lib/src/elements/objectpool_view.dart
@@ -20,7 +20,6 @@
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
 import 'package:observatory_2/src/elements/object_common.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class ObjectPoolViewElement extends CustomElement implements Renderable {
   RenderingScheduler<ObjectPoolViewElement> _r;
@@ -140,8 +139,6 @@
                       ..children = _createEntry(entry)
                   ])
                 .toList(),
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/objectstore_view.dart b/runtime/observatory_2/lib/src/elements/objectstore_view.dart
index 864ca59..1c6cdb9 100644
--- a/runtime/observatory_2/lib/src/elements/objectstore_view.dart
+++ b/runtime/observatory_2/lib/src/elements/objectstore_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory_2/src/elements/nav/refresh.dart';
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class ObjectStoreViewElement extends CustomElement implements Renderable {
   RenderingScheduler<ObjectStoreViewElement> _r;
@@ -116,7 +115,6 @@
                           ]
                       ])
                     .toList()),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/ports.dart b/runtime/observatory_2/lib/src/elements/ports.dart
index e8e4a49..3d44346 100644
--- a/runtime/observatory_2/lib/src/elements/ports.dart
+++ b/runtime/observatory_2/lib/src/elements/ports.dart
@@ -16,7 +16,6 @@
 import 'package:observatory_2/src/elements/nav/refresh.dart';
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class PortsElement extends CustomElement implements Renderable {
   RenderingScheduler<PortsElement> _r;
@@ -101,7 +100,6 @@
           new BRElement(),
           new DivElement()..children = _createList(),
         ],
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 
diff --git a/runtime/observatory_2/lib/src/elements/script_view.dart b/runtime/observatory_2/lib/src/elements/script_view.dart
index 349aabc..e90c1b6 100644
--- a/runtime/observatory_2/lib/src/elements/script_view.dart
+++ b/runtime/observatory_2/lib/src/elements/script_view.dart
@@ -21,7 +21,6 @@
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
 import 'package:observatory_2/src/elements/object_common.dart';
 import 'package:observatory_2/src/elements/script_inset.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class ScriptViewElement extends CustomElement implements Renderable {
   RenderingScheduler<ScriptViewElement> _r;
@@ -149,7 +148,6 @@
           new ScriptInsetElement(_isolate, _script, _scripts, _objects, _events,
                   currentPos: _pos, queue: _r.queue)
               .element,
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/sentinel_view.dart b/runtime/observatory_2/lib/src/elements/sentinel_view.dart
index 5628e78..33fde81 100644
--- a/runtime/observatory_2/lib/src/elements/sentinel_view.dart
+++ b/runtime/observatory_2/lib/src/elements/sentinel_view.dart
@@ -13,7 +13,6 @@
 import 'package:observatory_2/src/elements/nav/notify.dart';
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class SentinelViewElement extends CustomElement implements Renderable {
   RenderingScheduler<SentinelViewElement> _r;
@@ -82,8 +81,6 @@
             ..text = 'Sentinel: #{_sentinel.valueAsString}',
           new HRElement(),
           new DivElement()..text = _sentinelKindToDescription(_sentinel.kind),
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/singletargetcache_view.dart b/runtime/observatory_2/lib/src/elements/singletargetcache_view.dart
index b8d3224..8aabfa3 100644
--- a/runtime/observatory_2/lib/src/elements/singletargetcache_view.dart
+++ b/runtime/observatory_2/lib/src/elements/singletargetcache_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
 import 'package:observatory_2/src/elements/object_common.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class SingleTargetCacheViewElement extends CustomElement implements Renderable {
   RenderingScheduler<SingleTargetCacheViewElement> _r;
@@ -170,8 +169,6 @@
                     ]
                 ]
             ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/subtypetestcache_view.dart b/runtime/observatory_2/lib/src/elements/subtypetestcache_view.dart
index ba42732..37ff6b0 100644
--- a/runtime/observatory_2/lib/src/elements/subtypetestcache_view.dart
+++ b/runtime/observatory_2/lib/src/elements/subtypetestcache_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
 import 'package:observatory_2/src/elements/object_common.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class SubtypeTestCacheViewElement extends CustomElement implements Renderable {
   RenderingScheduler<SubtypeTestCacheViewElement> _r;
@@ -141,8 +140,6 @@
                     ]
                 ]
             ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/unlinkedcall_view.dart b/runtime/observatory_2/lib/src/elements/unlinkedcall_view.dart
index 76c29c0..a84edf7 100644
--- a/runtime/observatory_2/lib/src/elements/unlinkedcall_view.dart
+++ b/runtime/observatory_2/lib/src/elements/unlinkedcall_view.dart
@@ -17,7 +17,6 @@
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
 import 'package:observatory_2/src/elements/object_common.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 
 class UnlinkedCallViewElement extends CustomElement implements Renderable {
   RenderingScheduler<UnlinkedCallViewElement> _r;
@@ -153,8 +152,6 @@
                     ]
                 ]
             ],
-          new HRElement(),
-          new ViewFooterElement(queue: _r.queue).element
         ]
     ];
   }
diff --git a/runtime/observatory_2/lib/src/elements/view_footer.dart b/runtime/observatory_2/lib/src/elements/view_footer.dart
deleted file mode 100644
index 2f02451..0000000
--- a/runtime/observatory_2/lib/src/elements/view_footer.dart
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library view_footer_element;
-
-import 'dart:html';
-import 'dart:async';
-import 'package:observatory_2/src/elements/helpers/custom_element.dart';
-import 'package:observatory_2/src/elements/helpers/rendering_scheduler.dart';
-
-class ViewFooterElement extends CustomElement implements Renderable {
-  RenderingScheduler<ViewFooterElement> _r;
-
-  Stream<RenderedEvent<ViewFooterElement>> get onRendered => _r.onRendered;
-
-  factory ViewFooterElement({RenderingQueue queue}) {
-    ViewFooterElement e = new ViewFooterElement.created();
-    e._r = new RenderingScheduler<ViewFooterElement>(e, queue: queue);
-    return e;
-  }
-
-  ViewFooterElement.created() : super.created('view-footer');
-
-  @override
-  void attached() {
-    super.attached();
-    _r.enable();
-  }
-
-  @override
-  void detached() {
-    super.detached();
-    children = <Element>[];
-    _r.disable(notify: true);
-  }
-
-  void render() {
-    children = <Element>[
-      new AnchorElement()
-        // ignore: unsafe_html
-        ..href = 'https://dart-lang.github.io/observatory/'
-        ..text = 'View documentation',
-      new AnchorElement()
-        // ignore: unsafe_html
-        ..href =
-            'https://github.com/dart-lang/sdk/issues/new?title=Observatory:&amp;body=Observatory%20Feedback'
-        ..text = 'File a bug report'
-    ];
-  }
-}
diff --git a/runtime/observatory_2/lib/src/elements/vm_connect.dart b/runtime/observatory_2/lib/src/elements/vm_connect.dart
index fe30bc9..8cf099e 100644
--- a/runtime/observatory_2/lib/src/elements/vm_connect.dart
+++ b/runtime/observatory_2/lib/src/elements/vm_connect.dart
@@ -13,7 +13,6 @@
 import 'package:observatory_2/src/elements/helpers/custom_element.dart';
 import 'package:observatory_2/src/elements/nav/notify.dart';
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 import 'package:observatory_2/src/elements/vm_connect_target.dart';
 
 class VMConnectElement extends CustomElement implements Renderable {
@@ -114,7 +113,6 @@
               new DivElement()..classes = ['flex-item-20-percent'],
             ],
         ],
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 
diff --git a/runtime/observatory_2/lib/src/elements/vm_view.dart b/runtime/observatory_2/lib/src/elements/vm_view.dart
index b7b6d65..97d4672 100644
--- a/runtime/observatory_2/lib/src/elements/vm_view.dart
+++ b/runtime/observatory_2/lib/src/elements/vm_view.dart
@@ -16,7 +16,6 @@
 import 'package:observatory_2/src/elements/nav/refresh.dart';
 import 'package:observatory_2/src/elements/nav/top_menu.dart';
 import 'package:observatory_2/src/elements/nav/vm_menu.dart';
-import 'package:observatory_2/src/elements/view_footer.dart';
 import 'package:observatory_2/utils.dart';
 
 class VMViewElement extends CustomElement implements Renderable {
@@ -119,7 +118,6 @@
       describeVM(),
       describeIsolateGroups(),
       describeSystemIsolateGroups(),
-      new ViewFooterElement(queue: _r.queue).element
     ];
   }
 
diff --git a/runtime/observatory_2/observatory_sources.gni b/runtime/observatory_2/observatory_sources.gni
index 7bf2bbb..0ee61e2 100644
--- a/runtime/observatory_2/observatory_sources.gni
+++ b/runtime/observatory_2/observatory_sources.gni
@@ -139,7 +139,6 @@
   "lib/src/elements/unknown_ref.dart",
   "lib/src/elements/unlinkedcall_ref.dart",
   "lib/src/elements/unlinkedcall_view.dart",
-  "lib/src/elements/view_footer.dart",
   "lib/src/elements/vm_connect.dart",
   "lib/src/elements/vm_connect_target.dart",
   "lib/src/elements/vm_view.dart",
diff --git a/tools/VERSION b/tools/VERSION
index 5443c65..05bc800 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 15
 PATCH 0
-PRERELEASE 208
+PRERELEASE 209
 PRERELEASE_PATCH 0
\ No newline at end of file