Migrate Runtime.js to ESM

Introduce a new namespace "Root" to be able to disambiguate between
Runtime the namespace and Runtime the object.

roll CodeMirror
The above line is necessary to fix the presubmit, which complains
about CodeMirror changes. This is only updating a type reference.

Bug: 1006759
Change-Id: I04941d9f18649701060e3035f7eeb2ef3abb51e4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1829708
Reviewed-by: Yang Guo <[email protected]>
Commit-Queue: Tim Van der Lippe <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#701257}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 17cc008cf6ad28c6e8c07c638a1b380ca30e7f79
diff --git a/front_end/externs.js b/front_end/externs.js
index eaaf2a7..00ac005 100644
--- a/front_end/externs.js
+++ b/front_end/externs.js
@@ -1475,4 +1475,29 @@
     statusCode: number,
     headers: (!Object.<string, string>|undefined)
 }} */
-InspectorFrontendHostAPI.LoadNetworkResourceResult;
\ No newline at end of file
+InspectorFrontendHostAPI.LoadNetworkResourceResult;
+
+/**
+ * @interface
+ */
+class ServicePort {
+  /**
+   * @param {function(string)} messageHandler
+   * @param {function(string)} closeHandler
+   */
+  setHandlers(messageHandler, closeHandler) {
+  }
+
+  /**
+   * @param {string} message
+   * @return {!Promise<boolean>}
+   */
+  send(message) {
+  }
+
+  /**
+   * @return {!Promise<boolean>}
+   */
+  close() {
+  }
+}
\ No newline at end of file