diff --git a/BUILD.gn b/BUILD.gn
index 7a4b5d1..fa1f55e 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -25,7 +25,10 @@
   testonly = true
 
   if (is_qa || is_gold) {
-    deps = [ "//starboard" ]
+    deps = [
+      "//cobalt:default",
+      "//starboard",
+    ]
   } else {
     deps = [ ":gn_all" ]
   }
diff --git a/base/util/values/BUILD.gn b/base/util/values/BUILD.gn
new file mode 100644
index 0000000..9c26a0f
--- /dev/null
+++ b/base/util/values/BUILD.gn
@@ -0,0 +1,21 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("values_util") {
+  sources = [
+    "values_util.cc",
+    "values_util.h",
+  ]
+  deps = [ "//base" ]
+}
diff --git a/build/config/win/visual_studio_version.gni b/build/config/win/visual_studio_version.gni
index 8fc7434..48ecc5b 100644
--- a/build/config/win/visual_studio_version.gni
+++ b/build/config/win/visual_studio_version.gni
@@ -19,6 +19,10 @@
   declare_args() {
     # Path to Visual Studio.
     visual_studio_path = "C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/$visual_studio_version"
+
+    wdk_include_path = "$windows_sdk_path/Include/$wdk_version"
+
+    wdk_lib_path = "$windows_sdk_path/lib/$wdk_version"
   }
 } else {
   declare_args() {
diff --git a/cobalt/BUILD.gn b/cobalt/BUILD.gn
index c35a63f..25ae8bc 100644
--- a/cobalt/BUILD.gn
+++ b/cobalt/BUILD.gn
@@ -14,13 +14,29 @@
 
 group("gn_all") {
   testonly = true
+  deps = [
+    ":default",
+    "//cobalt/layout:layout_test",
+    "//cobalt/web_animations:web_animations_test",
+    "//cobalt/websocket:websocket_test",
+    "//cobalt/xhr:xhr_test",
+  ]
+}
 
+group("default") {
   deps = [
     "//cobalt/account",
     "//cobalt/audio",
     "//cobalt/base",
-    "//cobalt/browser:generated_bindings",
+    "//cobalt/browser",
+    "//cobalt/css_parser",
+    "//cobalt/dom",
+    "//cobalt/dom_parser",
+    "//cobalt/encoding:text_encoding",
     "//cobalt/fetch",
+    "//cobalt/h5vcc",
+    "//cobalt/input",
+    "//cobalt/layout",
     "//cobalt/math",
     "//cobalt/media",
     "//cobalt/media_capture",
@@ -43,6 +59,9 @@
     "//cobalt/subtlecrypto",
     "//cobalt/trace_event",
     "//cobalt/ui_navigation",
+    "//cobalt/webdriver",
+    "//cobalt/websocket",
+    "//cobalt/xhr",
     "//content/browser/speech",
     "//crypto",
     "//nb",
@@ -61,6 +80,8 @@
 
   if (sb_is_evergreen) {
     deps += [
+      "//base/util/values:values_util",
+      "//components/prefs",
       "//third_party/llvm-project/compiler-rt:compiler_rt",
       "//third_party/llvm-project/libcxx:cxx",
       "//third_party/llvm-project/libcxxabi:cxxabi",
diff --git a/cobalt/audio/BUILD.gn b/cobalt/audio/BUILD.gn
index 905cdb1..d24bd06 100644
--- a/cobalt/audio/BUILD.gn
+++ b/cobalt/audio/BUILD.gn
@@ -15,6 +15,10 @@
 static_library("audio") {
   has_pedantic_warnings = true
 
+  # Includes event_target.h and dom_settings.h from //cobalt/dom which depends
+  # on this target
+  check_includes = false
+
   sources = [
     "async_audio_decoder.cc",
     "async_audio_decoder.h",
@@ -53,8 +57,27 @@
 
   deps = [
     "//cobalt/base",
+    "//cobalt/dom:dom_exception",
     "//cobalt/media",
     "//cobalt/script",
     "//starboard:starboard_headers_only",
   ]
+  deps += cobalt_platform_dependencies
+}
+
+target(gtest_target_type, "audio_test") {
+  testonly = true
+  has_pedantic_warnings = true
+
+  sources = [ "audio_node_input_output_test.cc" ]
+
+  deps = [
+    ":audio",
+    "//cobalt/dom",
+    "//cobalt/media",
+    "//cobalt/script",
+    "//cobalt/test:run_all_unittests",
+    "//testing/gtest",
+  ]
+  deps += cobalt_platform_dependencies
 }
diff --git a/cobalt/bindings/bindings_templates.gni b/cobalt/bindings/bindings_templates.gni
index 8eeb453..c2d4daf 100644
--- a/cobalt/bindings/bindings_templates.gni
+++ b/cobalt/bindings/bindings_templates.gni
@@ -56,21 +56,27 @@
     ]
     inputs += invoker.bindings_extra_inputs
 
-    outputs = invoker.outputs
+    generated_file_path =
+        "$generated_source_output_dir/{{source_root_relative_dir}}"
+    generated_file_name = "${generated_bindings_prefix}_{{source_name_part}}"
+    outputs = [
+      "$generated_file_path/$generated_file_name.h",
+      "$generated_file_path/$generated_file_name.cc",
+    ]
 
     args = [
       "python2",
       rebase_path(py_script, root_build_dir),
       "--cache-directory",
-      rebase_path(invoker.cache_directory, root_build_dir),
+      rebase_path(invoker.cache_directory),
       "--output-directory",
-      rebase_path(invoker.output_directory, root_build_dir),
+      rebase_path(invoker.output_directory),
       "--interfaces-info",
-      rebase_path(invoker.interfaces_info, root_build_dir),
+      rebase_path(invoker.interfaces_info),
       "--component-info",
-      rebase_path(invoker.component_info, root_build_dir),
+      rebase_path(invoker.component_info),
       "--extended-attributes",
-      rebase_path(invoker.extended_attributes, root_build_dir),
+      rebase_path(invoker.extended_attributes),
       "{{source}}",
     ]
   }
diff --git a/cobalt/black_box_tests/README.md b/cobalt/black_box_tests/README.md
index 2fd70f4..6a696ea 100644
--- a/cobalt/black_box_tests/README.md
+++ b/cobalt/black_box_tests/README.md
@@ -60,22 +60,22 @@
 work with runner.JSTestsSucceeded() in the python test scripts. Together,
 they allow for test logic to exist in either the python test scripts or
 JavaScript test data.
-e.g. Call OnEndTest() to signal test completion on the JavaScript side,
+e.g. Call OnEndTest() to signal test completion in the JavaScripts,
 JSTestsSucceeded() will react to the signal and return the test status of
-JavaScript test logic; another example is that when the python script wants to
-wait for some setup steps on JavaScript, call runner.WaitForJSTestsSetup().
-Calling setupFinished() in JavaScript whenever ready will unblock the wait.
+JavaScript test logic; another example is that when python script wants to wait
+for some setup steps on JavaScript, call runner.WaitForJSTestsSetup(). Calling
+setupFinished() in JavaScript whenever ready will unblock the wait.
 
 
 ## Test Data
 
-A default local test server will be launched before any unit test starts to
+A default local test server will be launcher before any unit test starts to
 serve the test data in black_box_tests/testdata/. The server's port will be
 passed to the app launcher to fetch test data from.
-Test data can include the target web page for Cobalt to open and any additional
-resources (font file, JavaScripts...).
+Test data can include target web page for Cobalt to open and any additional
+resource(font file, JavaScripts...).
 Tests are free to start their own HTTP servers if the default test server is
-inadequate (e.g. The test is testing that Cobalt handles receipt of a specific
+inadequate(e.g. The test is testing that Cobalt handles receipt of a specific
 HTTP server generated error code properly).
 
 
diff --git a/cobalt/black_box_tests/black_box_tests.py b/cobalt/black_box_tests/black_box_tests.py
index bfb73d8..cae01ff 100644
--- a/cobalt/black_box_tests/black_box_tests.py
+++ b/cobalt/black_box_tests/black_box_tests.py
@@ -65,7 +65,6 @@
     'compression_test',
     'disable_eval_with_csp',
     'persistent_cookie',
-    'soft_mic_platform_service_test',
     'web_debugger',
     'web_platform_tests',
 ]
diff --git a/cobalt/black_box_tests/testdata/soft_mic_platform_service_test.html b/cobalt/black_box_tests/testdata/soft_mic_platform_service_test.html
deleted file mode 100644
index 7b1c8a0..0000000
--- a/cobalt/black_box_tests/testdata/soft_mic_platform_service_test.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-  <head></head>
-  <body>
-    <!--  -->
-    <script src='black_box_js_test_utils.js'></script>
-    <script src='soft_mic_platform_service_test.js'></script>
-  </body>
-</html>
diff --git a/cobalt/black_box_tests/testdata/soft_mic_platform_service_test.js b/cobalt/black_box_tests/testdata/soft_mic_platform_service_test.js
deleted file mode 100644
index b42d528..0000000
--- a/cobalt/black_box_tests/testdata/soft_mic_platform_service_test.js
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright 2021 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-'use strict';
-
-var SOFT_MIC_SERVICE_NAME = "com.google.youtube.tv.SoftMic";
-
-function failTest() {
-  notReached();
-  onEndTest();
-}
-
-/**
-* @param {ArrayBuffer} data to be converted to a String.
-*/
-function ab2str(data) {
-  try {
-    var string_data = new TextDecoder("utf-8").decode(data);
-    return string_data;
-  } catch(error) {
-    console.log(`ab2str() error: ${error}, decoding data: ${data}`);
-    failTest();
-  }
-}
-
-/**
-* @param {String} data to be converted to an ArrayBuffer.
-*/
-function str2ab(data) {
-  try {
-    var array_buffer_data = new TextEncoder().encode(data).buffer;
-    return array_buffer_data;
-  } catch(error) {
-    console.log(`str2ab() error: ${error}, decoding data: ${data}`);
-    failTest();
-  }
-}
-
-function bothUndefined(hard_mic, soft_mic) {
-  assertFalse(hard_mic);
-  assertTrue(soft_mic);
-}
-
-function hardMicUndefinedSoftMicTrue(hard_mic, soft_mic) {
-  assertFalse(hard_mic);
-  assertTrue(soft_mic);
-}
-
-function hardMicUndefinedSoftMicFalse(hard_mic, soft_mic) {
-  assertFalse(hard_mic);
-  assertFalse(soft_mic);
-}
-
-function hardMicTrueSoftMicUndefined(hard_mic, soft_mic) {
-  assertTrue(hard_mic);
-  assertTrue(soft_mic);
-}
-
-function hardMicTrueSoftMicTrue(hard_mic, soft_mic) {
-  assertTrue(hard_mic);
-  assertTrue(soft_mic);
-}
-
-function hardMicTrueSoftMicFalse(hard_mic, soft_mic) {
-  assertTrue(hard_mic);
-  assertFalse(soft_mic);
-}
-
-function hardMicFalseSoftMicUndefined(hard_mic, soft_mic) {
-  assertFalse(hard_mic);
-  assertTrue(soft_mic);
-}
-
-function hardMicFalseSoftMicTrue(hard_mic, soft_mic) {
-  assertFalse(hard_mic);
-  assertTrue(soft_mic);
-}
-
-function hardMicFalseSoftMicFalse(hard_mic, soft_mic) {
-  assertFalse(hard_mic);
-  assertFalse(soft_mic);
-}
-
-function testService(assertCallback) {
-  /**
-  * @param {ArrayBuffer} data
-  */
-   function receiveCallback(service, data) {
-    var str_response = ab2str(data);
-
-    try {
-      var response = JSON.parse(str_response);
-      var has_hard_mic = response["hasHardMicSupport"];
-      var has_soft_mic = response["hasSoftMicSupport"];
-      console.log(`receiveCallback, has_hard_mic: ${has_hard_mic}, has_soft_mic: ${has_soft_mic}`);
-
-      assertCallback(has_hard_mic, has_soft_mic);
-    } catch (error) {
-      console.log(`receiveCallback() error: ${error}`);
-      failTest();
-    }
-
-    soft_mic_service.close();
-    onEndTest();
-  }
-
-  if (!H5vccPlatformService) {
-    console.log("H5vccPlatformService is not implemented");
-    failTest();
-    return;
-  }
-
-  if (!H5vccPlatformService.has(SOFT_MIC_SERVICE_NAME)) {
-    console.log(`H5vccPlatformService.Has(${SOFT_MIC_SERVICE_NAME}) returned false.`);
-    failTest();
-    return;
-  }
-
-  // Open the service and pass the receive_callback.
-  var soft_mic_service = H5vccPlatformService.open(SOFT_MIC_SERVICE_NAME,
-                              receiveCallback);
-
-  if (soft_mic_service === null) {
-    console.log("H5vccPlatformService.open() returned null");
-    failTest();
-    return;
-  }
-
-  soft_mic_service.send(str2ab(JSON.stringify("getMicSupport")));
-}
-
-window.onkeydown = function(event) {
-  if (event.keyCode === 97) {
-    testService(bothUndefined);
-  } else if (event.keyCode === 98) {
-    testService(hardMicUndefinedSoftMicTrue);
-  } else if (event.keyCode === 99) {
-    testService(hardMicUndefinedSoftMicFalse);
-  } else if (event.keyCode === 100) {
-    testService(hardMicTrueSoftMicUndefined);
-  } else if (event.keyCode === 101) {
-    testService(hardMicTrueSoftMicTrue);
-  } else if (event.keyCode === 102) {
-    testService(hardMicTrueSoftMicFalse);
-  } else if (event.keyCode === 103) {
-    testService(hardMicFalseSoftMicUndefined);
-  } else if (event.keyCode === 104) {
-    testService(hardMicFalseSoftMicTrue);
-  } else if (event.keyCode === 105) {
-    testService(hardMicFalseSoftMicFalse);
-  }
-}
diff --git a/cobalt/black_box_tests/tests/soft_mic_platform_service_test.py b/cobalt/black_box_tests/tests/soft_mic_platform_service_test.py
deleted file mode 100644
index 4db7ba4..0000000
--- a/cobalt/black_box_tests/tests/soft_mic_platform_service_test.py
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2021 The Cobalt Authors. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License
-"""Test SoftMicPlatformService messages match between web app and platform"""
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
-import _env  # pylint: disable=unused-import
-
-from cobalt.black_box_tests import black_box_tests
-from cobalt.black_box_tests.threaded_web_server import ThreadedWebServer
-from cobalt.tools.automated_testing import webdriver_utils
-
-keys = webdriver_utils.import_selenium_module('webdriver.common.keys')
-
-
-class SoftMicPlatformServiceTest(black_box_tests.BlackBoxTestCase):
-
-  def test_soft_mic_platform_service(self):
-    with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
-      url = server.GetURL(
-          file_name='testdata/soft_mic_platform_service_test.html')
-
-      # The webpage listens for NUMPAD1 through NUMPAD9 at opening.
-      with self.CreateCobaltRunner(url=url) as runner:
-        # Press NUMPAD1 to test bothUndefined
-        runner.SendKeys(keys.Keys.NUMPAD1)
-        self.assertTrue(runner.JSTestsSucceeded())
-
-      with self.CreateCobaltRunner(
-          url=url, target_params=['--has_soft_mic_support=true']) as runner:
-        # Press NUMPAD2 to test hardMicUndefinedSoftMicTrue
-        runner.SendKeys(keys.Keys.NUMPAD2)
-        self.assertTrue(runner.JSTestsSucceeded())
-
-      with self.CreateCobaltRunner(
-          url=url, target_params=['--has_soft_mic_support=false']) as runner:
-        # Press NUMPAD3 to test hardMicUndefinedSoftMicFalse
-        runner.SendKeys(keys.Keys.NUMPAD3)
-        self.assertTrue(runner.JSTestsSucceeded())
-
-      with self.CreateCobaltRunner(
-          url=url, target_params=['--has_hard_mic_support=true']) as runner:
-        # Press NUMPAD4 to test hardMicTrueSoftMicUndefined
-        runner.SendKeys(keys.Keys.NUMPAD4)
-        self.assertTrue(runner.JSTestsSucceeded())
-
-      with self.CreateCobaltRunner(
-          url=url,
-          target_params=([
-              '--has_hard_mic_support=true', '--has_soft_mic_support=true'
-          ])) as runner:
-        # Press NUMPAD5 to test hardMicTrueSoftMicTrue
-        runner.SendKeys(keys.Keys.NUMPAD5)
-        self.assertTrue(runner.JSTestsSucceeded())
-
-      with self.CreateCobaltRunner(
-          url=url,
-          target_params=([
-              '--has_hard_mic_support=true', '--has_soft_mic_support=false'
-          ])) as runner:
-        # Press NUMPAD6 to test hardMicTrueSoftMicFalse
-        runner.SendKeys(keys.Keys.NUMPAD6)
-        self.assertTrue(runner.JSTestsSucceeded())
-
-      with self.CreateCobaltRunner(
-          url=url, target_params=['--has_hard_mic_support=false']) as runner:
-        # Press NUMPAD7 to test hardMicFalseSoftMicUndefined
-        runner.SendKeys(keys.Keys.NUMPAD7)
-        self.assertTrue(runner.JSTestsSucceeded())
-
-      with self.CreateCobaltRunner(
-          url=url,
-          target_params=([
-              '--has_hard_mic_support=false', '--has_soft_mic_support=true'
-          ])) as runner:
-        # Press NUMPAD8 to test hardMicFalseSoftMicTrue
-        runner.SendKeys(keys.Keys.NUMPAD8)
-        self.assertTrue(runner.JSTestsSucceeded())
-
-      with self.CreateCobaltRunner(
-          url=url,
-          target_params=([
-              '--has_hard_mic_support=false', '--has_soft_mic_support=false'
-          ])) as runner:
-        # Press NUMPAD9 to test hardMicFalseSoftMicFalse
-        runner.SendKeys(keys.Keys.NUMPAD9)
-        self.assertTrue(runner.JSTestsSucceeded())
diff --git a/cobalt/browser/BUILD.gn b/cobalt/browser/BUILD.gn
index 3ce9573..cd760a5 100644
--- a/cobalt/browser/BUILD.gn
+++ b/cobalt/browser/BUILD.gn
@@ -16,19 +16,149 @@
 import("//cobalt/browser/browser_bindings_variables.gni")
 import("//cobalt/browser/idl_files.gni")
 
+target(final_executable_type, "cobalt") {
+  sources = [ "main.cc" ]
+  deps = [
+    ":browser",
+    ":browser_switches",
+    "//cobalt/base",
+    "//net",
+  ]
+}
+
 config("bindings_includes") {
   include_dirs = [ generated_source_output_dir ]
 }
 
-# TODO: h5vcc and webdriver depend on targets in this file.
-# group("bindings") {
-#   deps = [
-#     "//cobalt/h5vcc",
-#     "//cobalt/webdriver",
-#     ":generated_bindings",
-#   ]
-#   all_dependent_configs = [ ":bindings_includes" ]
-# }
+source_set("browser_switches") {
+  sources = [
+    "switches.cc",
+    "switches.h",
+  ]
+
+  public_deps = [ "//starboard:starboard_headers_only" ]
+}
+
+static_library("browser") {
+  has_pedantic_warnings = true
+
+  sources = [
+    "application.cc",
+    "application.h",
+    "browser_module.cc",
+    "browser_module.h",
+    "device_authentication.cc",
+    "device_authentication.h",
+    "lifecycle_observer.h",
+    "on_screen_keyboard_starboard_bridge.cc",
+    "on_screen_keyboard_starboard_bridge.h",
+    "render_tree_combiner.cc",
+    "render_tree_combiner.h",
+    "screen_shot_writer.cc",
+    "screen_shot_writer.h",
+    "splash_screen.cc",
+    "splash_screen.h",
+    "splash_screen_cache.cc",
+    "splash_screen_cache.h",
+    "suspend_fuzzer.cc",
+    "suspend_fuzzer.h",
+    "system_platform_error_handler.cc",
+    "system_platform_error_handler.h",
+    "url_handler.cc",
+    "url_handler.h",
+    "user_agent_platform_info.cc",
+    "user_agent_platform_info.h",
+    "user_agent_string.cc",
+    "user_agent_string.h",
+    "web_module.cc",
+    "web_module.h",
+    "web_module_stat_tracker.cc",
+    "web_module_stat_tracker.h",
+  ]
+
+  public_deps = [ "//cobalt/dom" ]
+
+  deps = [
+    ":bindings",
+    ":browser_switches",
+    "//cobalt/account",
+    "//cobalt/audio",
+    "//cobalt/base",
+    "//cobalt/browser/memory_settings:browser_memory_settings",
+    "//cobalt/browser/memory_tracker:memory_tracker_tool",
+    "//cobalt/build:cobalt_build_id",
+    "//cobalt/configuration",
+    "//cobalt/css_parser",
+    "//cobalt/cssom",
+    "//cobalt/dom_parser",
+    "//cobalt/encoding:text_encoding",
+    "//cobalt/fetch",
+    "//cobalt/h5vcc",
+    "//cobalt/input",
+    "//cobalt/layout",
+    "//cobalt/loader",
+    "//cobalt/math",
+    "//cobalt/media",
+    "//cobalt/media_capture",
+    "//cobalt/media_session",
+    "//cobalt/network",
+    "//cobalt/overlay_info",
+    "//cobalt/render_tree",
+    "//cobalt/renderer",
+    "//cobalt/renderer/test/png_utils",
+    "//cobalt/script",
+    "//cobalt/script:engine",
+    "//cobalt/speech",
+    "//cobalt/sso",
+    "//cobalt/storage",
+    "//cobalt/subtlecrypto",
+    "//cobalt/system_window",
+    "//cobalt/trace_event",
+    "//cobalt/ui_navigation",
+    "//cobalt/webdriver",
+    "//cobalt/websocket",
+    "//cobalt/xhr",
+    "//crypto",
+    "//nb",
+    "//net",
+    "//starboard",
+    "//third_party/icu:icui18n",
+    "//third_party/protobuf:protobuf_lite",
+    "//url",
+  ]
+
+  if (!is_gold) {
+    sources += [
+      "debug_console.cc",
+      "debug_console.h",
+      "lifecycle_console_commands.cc",
+      "lifecycle_console_commands.h",
+    ]
+    defines = [ "ENABLE_ABOUT_SCHEME" ]
+    deps += [
+      "//cobalt/debug",
+      "//cobalt/debug:console_command_manager",
+    ]
+  }
+
+  if (sb_is_evergreen) {
+    # TODO(b/206642994): Migrate //cobalt/updater
+    # deps += [ "//cobalt/updater" ]
+  } else {
+    deps += cobalt_platform_dependencies
+  }
+}
+
+group("bindings") {
+  public_configs = [ ":bindings_includes" ]
+
+  deps = [
+    ":generated_bindings_sources",
+    ":generated_types_sources",
+    "//cobalt/h5vcc",
+    "//cobalt/webdriver",
+  ]
+}
 
 idl_compile("generated_bindings") {
   sources = source_idl_files
@@ -39,6 +169,7 @@
   interfaces_info = interfaces_info_combined_pickle
   output_directory = generated_source_output_dir
 
+  # TODO(b/211055528): Missing deps from generated sources.
   deps = [
     ":cached_jinja_templates",
     ":cached_lex_yacc_tables",
@@ -52,13 +183,14 @@
   public_deps = engine_dependencies
 
   public_configs = [ ":bindings_includes" ]
+}
 
-  generated_file_path =
-      "$generated_source_output_dir/{{source_root_relative_dir}}"
-  generated_file_name = "${generated_bindings_prefix}_{{source_name_part}}"
-  outputs = [
-    "$generated_file_path/$generated_file_name.h",
-    "$generated_file_path/$generated_file_name.cc",
+source_set("generated_bindings_sources") {
+  sources = get_target_outputs(":generated_bindings")
+  public_deps = [ ":generated_bindings" ]
+  deps = [
+    # Ensure that all the files have been generated before trying to compile.
+    ":generated_types",
   ]
 }
 
@@ -71,6 +203,7 @@
   interfaces_info = interfaces_info_combined_pickle
   output_directory = generated_source_output_dir
 
+  # TODO(b/211055528): Missing deps from generated sources.
   deps = [
     ":cached_jinja_templates",
     ":cached_lex_yacc_tables",
@@ -78,14 +211,17 @@
     ":interfaces_info_individual",
     ":interfaces_info_overall",
   ]
+  public_deps = engine_dependencies
 
   public_configs = [ ":bindings_includes" ]
+}
 
-  generated_file_path =
-      "$generated_source_output_dir/{{source_root_relative_dir}}"
-  outputs = [
-    "$generated_file_path/${generated_bindings_prefix}_{{source_name_part}}.h",
-    "$generated_file_path/{{source_name_part}}.cc",
+source_set("generated_types_sources") {
+  sources = get_target_outputs(":generated_types")
+  public_deps = [ ":generated_types" ]
+  deps = [
+    # Ensure that all the files have been generated before trying to compile.
+    ":generated_bindings",
   ]
 }
 
@@ -93,6 +229,7 @@
   script = "//starboard/build/run_bash.py"
   py_script = engine_conversion_header_generator_script
 
+  # TODO(b/211055528): Missing deps from generated sources.
   deps = [
     ":cached_jinja_templates",
     ":cached_lex_yacc_tables",
@@ -102,8 +239,6 @@
 
   public_deps = engine_dependencies
 
-  sources = source_idl_files + generated_header_idl_files
-
   # Generated IDL file that will define all the constructors that should be
   # on the Window object.
   global_names_idl_file =
@@ -116,6 +251,8 @@
     "//cobalt/bindings/shared/idl_conditional_macros.h",
   ]
   inputs += bindings_extra_inputs
+  inputs += source_idl_files
+  inputs += generated_header_idl_files
 
   outputs = [ generated_type_conversion_header_file ]
 
diff --git a/cobalt/browser/application.h b/cobalt/browser/application.h
index c08330c..7915a9d 100644
--- a/cobalt/browser/application.h
+++ b/cobalt/browser/application.h
@@ -39,9 +39,9 @@
 #endif
 
 #if defined(ENABLE_DEBUGGER)
-#include "cobalt/debug/console/command_manager.h"
-#include "cobalt/debug/remote/debug_web_server.h"
-#endif  // ENABLE_DEBUGGER
+#include "cobalt/debug/console/command_manager.h"  // nogncheck
+#include "cobalt/debug/remote/debug_web_server.h"  // nogncheck
+#endif                                             // ENABLE_DEBUGGER
 
 namespace cobalt {
 namespace browser {
@@ -68,8 +68,7 @@
   void OnNetworkEvent(const base::Event* event);
 
   // Called to handle an application event.
-  void OnApplicationEvent(SbEventType event_type,
-                          SbTimeMonotonic timestamp);
+  void OnApplicationEvent(SbEventType event_type, SbTimeMonotonic timestamp);
 
   // Called to handle a window size change event.
   void OnWindowSizeChangedEvent(const base::Event* event);
@@ -230,8 +229,7 @@
   void OnDeepLinkConsumedCallback(const std::string& link);
 
   // Dispatch events for deep links.
-  void DispatchDeepLink(const char* link,
-                        SbTimeMonotonic timestamp);
+  void DispatchDeepLink(const char* link, SbTimeMonotonic timestamp);
   void DispatchDeepLinkIfNotConsumed();
 
   DISALLOW_COPY_AND_ASSIGN(Application);
diff --git a/cobalt/browser/memory_settings/BUILD.gn b/cobalt/browser/memory_settings/BUILD.gn
new file mode 100644
index 0000000..a99e9c2
--- /dev/null
+++ b/cobalt/browser/memory_settings/BUILD.gn
@@ -0,0 +1,44 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("browser_memory_settings") {
+  sources = [
+    "auto_mem.cc",
+    "auto_mem.h",
+    "auto_mem_settings.cc",
+    "auto_mem_settings.h",
+    "calculations.cc",
+    "calculations.h",
+    "checker.cc",
+    "checker.h",
+    "constants.h",
+    "memory_settings.cc",
+    "memory_settings.h",
+    "pretty_print.cc",
+    "pretty_print.h",
+    "scaling_function.cc",
+    "scaling_function.h",
+    "table_printer.cc",
+    "table_printer.h",
+    "texture_dimensions.h",
+  ]
+  deps = [
+    "//base",
+    "//cobalt/browser:browser_switches",
+    "//cobalt/configuration",
+    "//cobalt/loader",
+    "//cobalt/math",
+    "//starboard/common",
+  ]
+}
diff --git a/cobalt/browser/memory_tracker/BUILD.gn b/cobalt/browser/memory_tracker/BUILD.gn
new file mode 100644
index 0000000..4131d62
--- /dev/null
+++ b/cobalt/browser/memory_tracker/BUILD.gn
@@ -0,0 +1,56 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("memory_tracker_tool") {
+  sources = [
+    "tool.cc",
+    "tool.h",
+    "tool/buffered_file_writer.cc",
+    "tool/buffered_file_writer.h",
+    "tool/compressed_time_series_tool.cc",
+    "tool/compressed_time_series_tool.h",
+    "tool/histogram_table_csv_base.h",
+    "tool/internal_fragmentation_tool.cc",
+    "tool/internal_fragmentation_tool.h",
+    "tool/leak_finder_tool.cc",
+    "tool/leak_finder_tool.h",
+    "tool/log_writer_tool.cc",
+    "tool/log_writer_tool.h",
+    "tool/malloc_logger_tool.cc",
+    "tool/malloc_logger_tool.h",
+    "tool/malloc_stats_tool.cc",
+    "tool/malloc_stats_tool.h",
+    "tool/memory_size_binner_tool.cc",
+    "tool/memory_size_binner_tool.h",
+    "tool/params.cc",
+    "tool/params.h",
+    "tool/print_csv_tool.cc",
+    "tool/print_csv_tool.h",
+    "tool/print_tool.cc",
+    "tool/print_tool.h",
+    "tool/tool_impl.cc",
+    "tool/tool_impl.h",
+    "tool/tool_thread.cc",
+    "tool/tool_thread.h",
+    "tool/util.cc",
+    "tool/util.h",
+  ]
+  deps = [
+    "//base",
+    "//cobalt/base",
+    "//cobalt/script",
+    "//nb",
+    "//starboard",
+  ]
+}
diff --git a/cobalt/browser/web_module.cc b/cobalt/browser/web_module.cc
index 06600b8..6315007 100644
--- a/cobalt/browser/web_module.cc
+++ b/cobalt/browser/web_module.cc
@@ -75,8 +75,8 @@
 #include "starboard/gles.h"
 
 #if defined(ENABLE_DEBUGGER)
-#include "cobalt/debug/backend/debug_module.h"
-#endif  // defined(ENABLE_DEBUGGER)
+#include "cobalt/debug/backend/debug_module.h"  // nogncheck
+#endif                                          // defined(ENABLE_DEBUGGER)
 
 namespace cobalt {
 namespace browser {
diff --git a/cobalt/browser/web_module.h b/cobalt/browser/web_module.h
index 20b39bb..2ed326d 100644
--- a/cobalt/browser/web_module.h
+++ b/cobalt/browser/web_module.h
@@ -63,11 +63,11 @@
 #include "url/gurl.h"
 
 #if defined(ENABLE_DEBUGGER)
-#include "cobalt/debug/backend/debug_dispatcher.h"
-#include "cobalt/debug/backend/debugger_state.h"
-#include "cobalt/debug/backend/render_overlay.h"
-#include "cobalt/debug/console/command_manager.h"
-#endif  // ENABLE_DEBUGGER
+#include "cobalt/debug/backend/debug_dispatcher.h"  // nogncheck
+#include "cobalt/debug/backend/debugger_state.h"    // nogncheck
+#include "cobalt/debug/backend/render_overlay.h"    // nogncheck
+#include "cobalt/debug/console/command_manager.h"   // nogncheck
+#endif                                              // ENABLE_DEBUGGER
 
 namespace cobalt {
 namespace browser {
diff --git a/cobalt/build/contents_dir.gni b/cobalt/build/contents_dir.gni
new file mode 100644
index 0000000..b70736e
--- /dev/null
+++ b/cobalt/build/contents_dir.gni
@@ -0,0 +1,17 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+declare_args() {
+  static_contents_source_dir = "//cobalt/content"
+}
diff --git a/cobalt/build/generate_data_header.py b/cobalt/build/generate_data_header.py
index fde53f7..04fe02e 100755
--- a/cobalt/build/generate_data_header.py
+++ b/cobalt/build/generate_data_header.py
@@ -47,7 +47,7 @@
 
 def WriteFileDataToHeader(filename, output_file):
   """Concatenates a single file into the output file."""
-  with open(filename, 'r') as f:
+  with open(filename, 'rb') as f:
     file_contents = f.read()
 
     def Chunks(l, n):
@@ -55,8 +55,14 @@
       for i in range(0, len(l), n):
         yield l[i:i + n]
 
+    # TODO(b/154137263): Remove once python2 is gone.
+    is_py2 = sys.version_info.major == 2
+
+    def GetByte(x):
+      return ord(x) if is_py2 else x
+
     output_string = ',\n'.join([
-        ', '.join(['0x%02x' % ord(y)
+        ', '.join(['0x%02x' % GetByte(y)
                    for y in x])
         for x in Chunks(file_contents, 13)
     ])
diff --git a/cobalt/css_parser/BUILD.gn b/cobalt/css_parser/BUILD.gn
new file mode 100644
index 0000000..08114c0
--- /dev/null
+++ b/cobalt/css_parser/BUILD.gn
@@ -0,0 +1,122 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+config("css_parser_config") {
+  include_dirs = [ "$target_gen_dir" ]
+}
+
+# Generates header files from Bison grammar that are privately included
+# by CSS scanner and parser.
+action("css_grammar") {
+  script = "//starboard/build/run_bash.py"
+
+  # Define the platform specific Bison binary.
+  if (is_win) {
+    bison_executable = "win_bison"
+  } else {
+    bison_executable = "bison"
+  }
+
+  inputs = [ "grammar.y" ]
+
+  outputs = [
+    # Tokens and types, included by scanner.
+    "$target_gen_dir/grammar_generated.h",
+
+    # LALR(1) parser tables and yy*() functions, included by parser.
+    "$target_gen_dir/grammar_impl_generated.h",
+  ]
+
+  args = [
+    bison_executable,
+    "-Wall",
+    "-Werror",
+    "--defines=" + rebase_path(outputs[0], root_build_dir),
+    "--output=" + rebase_path(outputs[1], root_build_dir),
+    rebase_path(inputs[0], root_build_dir),
+  ]
+}
+
+static_library("css_parser") {
+  has_pedantic_warnings = true
+
+  sources = [
+    "animation_shorthand_property_parse_structures.cc",
+    "animation_shorthand_property_parse_structures.h",
+    "background_shorthand_property_parse_structures.cc",
+    "background_shorthand_property_parse_structures.h",
+    "border_shorthand_property_parse_structures.cc",
+    "border_shorthand_property_parse_structures.h",
+    "flex_shorthand_property_parse_structures.cc",
+    "flex_shorthand_property_parse_structures.h",
+    "font_shorthand_property_parse_structures.cc",
+    "font_shorthand_property_parse_structures.h",
+    "grammar.h",
+    "margin_or_padding_shorthand.cc",
+    "margin_or_padding_shorthand.h",
+    "parser.cc",
+    "parser.h",
+    "position_parse_structures.cc",
+    "position_parse_structures.h",
+    "property_declaration.h",
+    "ref_counted_util.h",
+    "scanner.cc",
+    "scanner.h",
+    "shadow_property_parse_structures.cc",
+    "shadow_property_parse_structures.h",
+    "string_pool.h",
+    "text_decoration_shorthand_property_parse_structures.cc",
+    "text_decoration_shorthand_property_parse_structures.h",
+    "transition_shorthand_property_parse_structures.cc",
+    "transition_shorthand_property_parse_structures.h",
+    "trivial_string_piece.h",
+    "trivial_type_pairs.h",
+  ]
+  sources += get_target_outputs(":css_grammar")
+
+  public_configs = [ ":css_parser_config" ]
+
+  # Scanner exposes UChar32 in a header.
+  public_deps = [ "//third_party/icu:icuuc" ]
+
+  deps = [
+    ":css_grammar",
+    "//cobalt/base",
+    "//cobalt/cssom",
+    "//nb",
+    "//starboard/common",
+  ]
+}
+
+target(gtest_target_type, "css_parser_test") {
+  testonly = true
+  has_pedantic_warnings = true
+
+  sources = [
+    "parser_test.cc",
+    "ref_counted_util_test.cc",
+    "scanner_test.cc",
+    "trivial_string_piece_test.cc",
+  ]
+
+  deps = [
+    ":css_grammar",
+    ":css_parser",
+    "//base",
+    "//cobalt/cssom",
+    "//cobalt/test:run_all_unittests",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+}
diff --git a/cobalt/cssom/BUILD.gn b/cobalt/cssom/BUILD.gn
new file mode 100644
index 0000000..fa236c6
--- /dev/null
+++ b/cobalt/cssom/BUILD.gn
@@ -0,0 +1,329 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("cssom") {
+  has_pedantic_warnings = true
+
+  # cssom includes a file from css_parser which in turn depends on cssom.
+  # testing/mock_css_parser.h includes gmock which can't be in the deps
+  check_includes = false
+
+  sources = [
+    "absolute_url_value.cc",
+    "absolute_url_value.h",
+    "active_pseudo_class.cc",
+    "active_pseudo_class.h",
+    "after_pseudo_element.cc",
+    "after_pseudo_element.h",
+    "animation.h",
+    "animation_set.cc",
+    "animation_set.h",
+    "attribute_selector.cc",
+    "attribute_selector.h",
+    "before_pseudo_element.cc",
+    "before_pseudo_element.h",
+    "calc_value.cc",
+    "calc_value.h",
+    "cascade_precedence.h",
+    "cascaded_style.cc",
+    "cascaded_style.h",
+    "character_classification.h",
+    "child_combinator.cc",
+    "child_combinator.h",
+    "class_selector.cc",
+    "class_selector.h",
+    "cobalt_ui_nav_focus_transform_function.cc",
+    "cobalt_ui_nav_focus_transform_function.h",
+    "cobalt_ui_nav_spotlight_transform_function.cc",
+    "cobalt_ui_nav_spotlight_transform_function.h",
+    "color_stop.cc",
+    "color_stop.h",
+    "combinator.cc",
+    "combinator.h",
+    "combinator_visitor.h",
+    "complex_selector.cc",
+    "complex_selector.h",
+    "compound_selector.cc",
+    "compound_selector.h",
+    "computed_style.cc",
+    "computed_style.h",
+    "computed_style_utils.h",
+    "css.cc",
+    "css.h",
+    "css_computed_style_data.cc",
+    "css_computed_style_data.h",
+    "css_computed_style_declaration.cc",
+    "css_computed_style_declaration.h",
+    "css_condition_rule.cc",
+    "css_condition_rule.h",
+    "css_declaration_data.h",
+    "css_declaration_util.cc",
+    "css_declaration_util.h",
+    "css_declared_style_data.cc",
+    "css_declared_style_data.h",
+    "css_declared_style_declaration.cc",
+    "css_declared_style_declaration.h",
+    "css_font_face_declaration_data.cc",
+    "css_font_face_declaration_data.h",
+    "css_font_face_rule.cc",
+    "css_font_face_rule.h",
+    "css_grouping_rule.cc",
+    "css_grouping_rule.h",
+    "css_keyframe_rule.cc",
+    "css_keyframe_rule.h",
+    "css_keyframes_rule.cc",
+    "css_keyframes_rule.h",
+    "css_media_rule.cc",
+    "css_media_rule.h",
+    "css_parser.h",
+    "css_rule.cc",
+    "css_rule.h",
+    "css_rule_list.cc",
+    "css_rule_list.h",
+    "css_rule_style_declaration.cc",
+    "css_rule_style_declaration.h",
+    "css_rule_visitor.h",
+    "css_style_declaration.cc",
+    "css_style_declaration.h",
+    "css_style_rule.cc",
+    "css_style_rule.h",
+    "css_style_sheet.cc",
+    "css_style_sheet.h",
+    "css_transition.cc",
+    "css_transition.h",
+    "css_transition_set.cc",
+    "css_transition_set.h",
+    "descendant_combinator.cc",
+    "descendant_combinator.h",
+    "empty_pseudo_class.cc",
+    "empty_pseudo_class.h",
+    "filter_function.h",
+    "filter_function_list_value.cc",
+    "filter_function_list_value.h",
+    "focus_pseudo_class.cc",
+    "focus_pseudo_class.h",
+    "following_sibling_combinator.cc",
+    "following_sibling_combinator.h",
+    "font_style_value.cc",
+    "font_style_value.h",
+    "font_weight_value.cc",
+    "font_weight_value.h",
+    "hover_pseudo_class.cc",
+    "hover_pseudo_class.h",
+    "id_selector.cc",
+    "id_selector.h",
+    "integer_value.cc",
+    "integer_value.h",
+    "interpolate_property_value.cc",
+    "interpolate_property_value.h",
+    "interpolated_transform_property_value.cc",
+    "interpolated_transform_property_value.h",
+    "keyword_names.cc",
+    "keyword_names.h",
+    "keyword_value.cc",
+    "keyword_value.h",
+    "length_value.cc",
+    "length_value.h",
+    "linear_gradient_value.cc",
+    "linear_gradient_value.h",
+    "list_value.h",
+    "local_src_value.cc",
+    "local_src_value.h",
+    "map_to_mesh_function.cc",
+    "map_to_mesh_function.h",
+    "matrix_function.cc",
+    "matrix_function.h",
+    "media_feature.cc",
+    "media_feature.h",
+    "media_feature_keyword_value.cc",
+    "media_feature_keyword_value.h",
+    "media_feature_keyword_value_names.cc",
+    "media_feature_keyword_value_names.h",
+    "media_feature_names.cc",
+    "media_feature_names.h",
+    "media_list.cc",
+    "media_list.h",
+    "media_query.cc",
+    "media_query.h",
+    "media_type_names.cc",
+    "media_type_names.h",
+    "mutation_observer.h",
+    "next_sibling_combinator.cc",
+    "next_sibling_combinator.h",
+    "not_pseudo_class.cc",
+    "not_pseudo_class.h",
+    "number_value.cc",
+    "number_value.h",
+    "percentage_value.cc",
+    "percentage_value.h",
+    "property_definitions.cc",
+    "property_definitions.h",
+    "property_key_list_value.cc",
+    "property_key_list_value.h",
+    "property_list_value.h",
+    "property_value.h",
+    "property_value_visitor.cc",
+    "property_value_visitor.h",
+    "pseudo_class.h",
+    "pseudo_class_names.cc",
+    "pseudo_class_names.h",
+    "pseudo_element.h",
+    "pseudo_element_names.cc",
+    "pseudo_element_names.h",
+    "radial_gradient_value.cc",
+    "radial_gradient_value.h",
+    "ratio_value.cc",
+    "ratio_value.h",
+    "resolution_value.cc",
+    "resolution_value.h",
+    "rgba_color_value.cc",
+    "rgba_color_value.h",
+    "rotate_function.cc",
+    "rotate_function.h",
+    "scale_function.cc",
+    "scale_function.h",
+    "scoped_list_value.h",
+    "scoped_ref_list_value.h",
+    "selector.h",
+    "selector_tree.cc",
+    "selector_tree.h",
+    "selector_visitor.h",
+    "serializer.cc",
+    "serializer.h",
+    "shadow_value.cc",
+    "shadow_value.h",
+    "simple_selector.h",
+    "specificity.cc",
+    "specificity.h",
+    "string_value.cc",
+    "string_value.h",
+    "style_sheet.cc",
+    "style_sheet.h",
+    "style_sheet_list.cc",
+    "style_sheet_list.h",
+    "time_list_value.cc",
+    "time_list_value.h",
+    "timing_function.cc",
+    "timing_function.h",
+    "timing_function_list_value.cc",
+    "timing_function_list_value.h",
+    "transform_function.h",
+    "transform_function_list_value.cc",
+    "transform_function_list_value.h",
+    "transform_function_visitor.h",
+    "transform_property_value.h",
+    "translate_function.cc",
+    "translate_function.h",
+    "type_selector.cc",
+    "type_selector.h",
+    "unicode_range_value.cc",
+    "unicode_range_value.h",
+    "universal_selector.cc",
+    "universal_selector.h",
+    "url_src_value.cc",
+    "url_src_value.h",
+    "url_value.cc",
+    "url_value.h",
+    "user_agent_style_sheet.cc",
+    "user_agent_style_sheet.h",
+    "viewport_size.h",
+  ]
+
+  configs -= [ "//starboard/build/config:size" ]
+  configs += [ "//starboard/build/config:speed" ]
+
+  public_deps = [ "//cobalt/browser:generated_types" ]
+
+  deps = [
+    ":cssom_embed_resources_as_header_files",
+    "//cobalt/base",
+    "//cobalt/dom:dom_exception",
+    "//cobalt/math",
+    "//cobalt/network",
+    "//cobalt/script",
+    "//cobalt/ui_navigation",
+    "//url",
+  ]
+}
+
+config("embed_cssom_resources_as_header_files_config") {
+  include_dirs = [ root_gen_dir ]
+}
+
+action("cssom_embed_resources_as_header_files") {
+  script = "//cobalt/build/generate_data_header.py"
+
+  inputs = [ "embedded_resources/user_agent_style_sheet.css" ]
+  outputs = [ "$target_gen_dir/embedded_resources.h" ]
+
+  public_configs = [ ":embed_cssom_resources_as_header_files_config" ]
+
+  args = [
+    "CSSOMEmbeddedResources",
+    rebase_path(outputs[0], root_build_dir),
+    rebase_path("embedded_resources", root_build_dir),
+  ]
+}
+
+target(gtest_target_type, "cssom_test") {
+  testonly = true
+  has_pedantic_warnings = true
+
+  sources = [
+    "cascade_precedence_test.cc",
+    "cascaded_style_test.cc",
+    "computed_style_test.cc",
+    "css_computed_style_data_property_set_matcher_test.cc",
+    "css_computed_style_data_test.cc",
+    "css_computed_style_declaration_test.cc",
+    "css_declared_style_data_test.cc",
+    "css_declared_style_declaration_test.cc",
+    "css_font_face_declaration_data_test.cc",
+    "css_font_face_rule_test.cc",
+    "css_grouping_rule_test.cc",
+    "css_property_definitions_test.cc",
+    "css_rule_list_test.cc",
+    "css_rule_visitor_test.cc",
+    "css_style_sheet_test.cc",
+    "css_transition_set_test.cc",
+    "interpolate_property_value_test.cc",
+    "keyword_value_test.cc",
+    "media_feature_test.cc",
+    "media_list_test.cc",
+    "media_query_test.cc",
+    "property_value_is_equal_test.cc",
+    "property_value_to_string_test.cc",
+    "property_value_visitor_test.cc",
+    "selector_test.cc",
+    "selector_tree_test.cc",
+    "selector_visitor_test.cc",
+    "serializer_test.cc",
+    "specificity_test.cc",
+    "style_sheet_list_test.cc",
+    "testing/mock_css_parser.h",
+    "timing_function_test.cc",
+    "transform_function_visitor_test.cc",
+  ]
+
+  deps = [
+    "//cobalt/base",
+    "//cobalt/css_parser",
+    "//cobalt/cssom",
+    "//cobalt/math",
+    "//cobalt/test:run_all_unittests",
+    "//testing/gmock",
+    "//testing/gtest",
+    "//url",
+  ]
+}
diff --git a/cobalt/debug/BUILD.gn b/cobalt/debug/BUILD.gn
new file mode 100644
index 0000000..0f97f00
--- /dev/null
+++ b/cobalt/debug/BUILD.gn
@@ -0,0 +1,141 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("debug") {
+  has_pedantic_warnings = true
+  sources = [
+    "backend/agent_base.cc",
+    "backend/agent_base.h",
+    "backend/command_map.h",
+    "backend/css_agent.cc",
+    "backend/css_agent.h",
+    "backend/debug_backend.cc",
+    "backend/debug_backend.h",
+    "backend/debug_dispatcher.cc",
+    "backend/debug_dispatcher.h",
+    "backend/debug_module.cc",
+    "backend/debug_module.h",
+    "backend/debug_script_runner.cc",
+    "backend/debug_script_runner.h",
+    "backend/debugger_hooks_impl.cc",
+    "backend/debugger_hooks_impl.h",
+    "backend/dom_agent.cc",
+    "backend/dom_agent.h",
+    "backend/log_agent.cc",
+    "backend/log_agent.h",
+    "backend/overlay_agent.cc",
+    "backend/overlay_agent.h",
+    "backend/page_agent.cc",
+    "backend/page_agent.h",
+    "backend/render_layer.cc",
+    "backend/render_layer.h",
+    "backend/render_overlay.cc",
+    "backend/render_overlay.h",
+    "backend/script_debugger_agent.cc",
+    "backend/script_debugger_agent.h",
+    "backend/tracing_agent.cc",
+    "backend/tracing_agent.h",
+    "command.h",
+    "console/debug_hub.cc",
+    "console/debug_hub.h",
+    "console/debugger_event_target.cc",
+    "console/debugger_event_target.h",
+    "debug_client.cc",
+    "debug_client.h",
+    "json_object.cc",
+    "json_object.h",
+    "remote/debug_web_server.cc",
+    "remote/debug_web_server.h",
+  ]
+  deps = [
+    ":console_command_manager",
+    ":copy_backend_web_files",
+    ":copy_console_web_files",
+    ":copy_remote_web_files",
+    "//cobalt/base",
+    "//cobalt/cssom",
+    "//cobalt/dom",
+    "//cobalt/layout",
+    "//cobalt/math",
+    "//cobalt/render_tree",
+    "//cobalt/script",
+    "//cobalt/speech",
+    "//net",
+    "//net:http_server",
+    "//starboard",
+    "//third_party/devtools:devtools_frontend_resources",
+  ]
+}
+
+# Anything that implements a console command can depend on this without
+# depending on the whole debug module.
+static_library("console_command_manager") {
+  # Everything is conditional so implementers of commands can depend on
+  # this unconditionally.
+  if (!is_gold) {
+    sources = [
+      "console/command_manager.cc",
+      "console/command_manager.h",
+    ]
+    deps = [ "//cobalt/base" ]
+  }
+}
+
+copy("copy_backend_web_files") {
+  sources = [
+    "backend/content/css_agent.js",
+    "backend/content/dom_agent.js",
+    "backend/content/overlay_agent.js",
+  ]
+
+  # Canonically this should be "cobalt/debug/backend" to match the source
+  # path, but we put it in the root of the content dir to reduce depth.
+  outputs = [ "$sb_static_contents_output_data_dir/web/debug_backend/{{source_file_part}}" ]
+}
+
+copy("copy_console_web_files") {
+  sources = [
+    "console/content/command_input.js",
+    "console/content/console_manager.js",
+    "console/content/console_values.js",
+    "console/content/debug_commands.js",
+    "console/content/debug_console.css",
+    "console/content/debug_console.html",
+    "console/content/debug_console.js",
+    "console/content/debugger_client.js",
+    "console/content/media_console.js",
+    "console/content/media_console_context.js",
+    "console/content/message_log.js",
+    "console/content/pirate.jpg",
+  ]
+
+  # Canonically this should be "cobalt/debug/console" to match the source
+  # path, but we put it in the root of the content dir to reduce depth.
+  outputs = [ "$sb_static_contents_output_data_dir/web/debug_console/{{source_file_part}}" ]
+}
+
+copy("copy_remote_web_files") {
+  sources = [
+    "remote/content/cobalt-logo-180.png",
+    "remote/content/favicon.ico",
+    "remote/content/index.html",
+    "remote/content/json/index.json",
+  ]
+
+  # Canonically this should be "cobalt/debug/remote" to match the source
+  # path, but we put it in the root of the content dir to reduce depth.
+  outputs = [
+    "$sb_static_contents_output_data_dir/web/debug_remote/{{source_file_part}}",
+  ]
+}
diff --git a/cobalt/demos/content/soft-mic-platform-service-demo/soft_mic_platform_service_demo.html b/cobalt/demos/content/soft-mic-platform-service-demo/soft_mic_platform_service_demo.html
deleted file mode 100644
index fed67ca..0000000
--- a/cobalt/demos/content/soft-mic-platform-service-demo/soft_mic_platform_service_demo.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--
-This is a light weighted demo page used to verify SoftMicPlatformService.
-Start a http server by running this python3 command in the directory
-cobalt/demos/content/soft-mic-platform-service/:
-python3 -m http.server 8000
-Then run in Cobalt using this command:
-out/linux-x64x11_debug/cobalt --url=http://localhost:8000/soft_mic_platform_service_demo.html
--->
-<!DOCTYPE html>
-<meta charset="utf-8">
-<body>
-  <script>
-    'use strict';
-
-    /**
-    * @param {ArrayBuffer} data to be converted to a String.
-    */
-    function ab2str(data) {
-      try {
-        var string_data = new TextDecoder("utf-8").decode(data);
-        return string_data;
-      } catch(error) {
-        console.error(`ab2str() error: ${error}, decoding data: ${data}`);
-      }
-    }
-
-    /**
-    * @param {String} data to be converted to an ArrayBuffer.
-    */
-    function str2ab(data) {
-      try {
-        var array_buffer_data = new TextEncoder().encode(data).buffer;
-        return array_buffer_data;
-      } catch(error) {
-        console.error(`str2ab() error: ${error}, decoding data: ${data}`);
-      }
-    }
-
-    async function testSoftMicPlatformService() {
-      // These default boolean values represent the default assumption for
-      // platforms that do not implement the extension.
-      var has_soft_mic = true;
-      var has_hard_mic = false;
-
-      if (!H5vccPlatformService) {
-        // H5vccPlatformService is not implemented. Fallback to current Soft Mic
-        // implementation.
-        console.error("H5vccPlatformService is not implemented");
-        return;
-      }
-
-      var SOFT_MIC_SERVICE_NAME = "com.google.youtube.tv.SoftMic";
-
-      if (!H5vccPlatformService.has(SOFT_MIC_SERVICE_NAME)) {
-        // SOFT_MIC_SERVICE_NAME is not implemented. Fallback to current
-        // Soft Mic implementation.
-        console.error(`H5vccPlatformService.Has(${SOFT_MIC_SERVICE_NAME}) returned false.`);
-        return;
-      }
-
-      /**
-      * @param {ArrayBuffer} data
-      */
-      function receiveCallback(service, data) {
-        var str_response = ab2str(data);
-
-        try {
-          var response = JSON.parse(str_response);
-          has_hard_mic = response["hasHardMicSupport"];
-          has_soft_mic = response["hasSoftMicSupport"];
-          console.log(`receiveCallback, has_hard_mic: ${has_hard_mic}, has_soft_mic: ${has_soft_mic}`);
-        } catch (error) {
-          console.error(`receiveCallback() error: ${error}, str_response: ${str_response}`);
-        }
-      }
-
-      // Open the service and pass the receive_callback.
-      var soft_mic_service = H5vccPlatformService.open(SOFT_MIC_SERVICE_NAME,
-                                  receiveCallback);
-
-      // Async web app message for "getMicSupport".
-      soft_mic_service.send(str2ab(JSON.stringify("getMicSupport")));
-
-      // Test notifySearchActive and notifySearchInactive web app messages to the platform.
-      soft_mic_service.send(str2ab(JSON.stringify("notifySearchActive")));
-      soft_mic_service.send(str2ab(JSON.stringify("notifySearchInactive")));
-
-      // Close the service when we are done.
-      var TIME_BEFORE_CLOSE = 10000;
-      await new Promise(r => setTimeout(r, TIME_BEFORE_CLOSE));
-      soft_mic_service.close();
-    }
-
-    testSoftMicPlatformService();
-
-  </script>
-</body>
diff --git a/cobalt/dom/BUILD.gn b/cobalt/dom/BUILD.gn
new file mode 100644
index 0000000..04e1ce0
--- /dev/null
+++ b/cobalt/dom/BUILD.gn
@@ -0,0 +1,389 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//cobalt/build/contents_dir.gni")
+
+static_library("dom") {
+  has_pedantic_warnings = true
+
+  # Includes cobalt/dom/testing/stub_environment_settings.h from dom_testing
+  # which depends on this target.
+  check_includes = false
+
+  sources = [
+    "abort_controller.cc",
+    "abort_controller.h",
+    "abort_signal.cc",
+    "abort_signal.h",
+    "animation_event.h",
+    "animation_frame_request_callback_list.cc",
+    "animation_frame_request_callback_list.h",
+    "application_lifecycle_state.cc",
+    "application_lifecycle_state.h",
+    "attr.cc",
+    "attr.h",
+    "audio_track.h",
+    "audio_track_list.h",
+    "base64.cc",
+    "base64.h",
+    "benchmark_stat_names.cc",
+    "benchmark_stat_names.h",
+    "blob.cc",
+    "blob.h",
+    "buffer_source.cc",
+    "buffer_source.h",
+    "c_val_view.cc",
+    "c_val_view.h",
+    "camera_3d.cc",
+    "camera_3d.h",
+    "captions/system_caption_settings.cc",
+    "captions/system_caption_settings.h",
+    "cdata_section.cc",
+    "cdata_section.h",
+    "character_data.cc",
+    "character_data.h",
+    "cobalt_ua_data_values_interface.cc",
+    "cobalt_ua_data_values_interface.h",
+    "comment.cc",
+    "comment.h",
+    "crypto.cc",
+    "crypto.h",
+    "csp_delegate.cc",
+    "csp_delegate.h",
+    "csp_delegate_factory.cc",
+    "csp_delegate_factory.h",
+    "csp_violation_reporter.cc",
+    "csp_violation_reporter.h",
+    "css_animations_adapter.cc",
+    "css_animations_adapter.h",
+    "css_transitions_adapter.cc",
+    "css_transitions_adapter.h",
+    "custom_event.h",
+    "device_orientation_event.cc",
+    "device_orientation_event.h",
+    "directionality.h",
+    "document.cc",
+    "document.h",
+    "document_timeline.cc",
+    "document_timeline.h",
+    "document_type.cc",
+    "document_type.h",
+    "dom_animatable.cc",
+    "dom_animatable.h",
+    "dom_implementation.cc",
+    "dom_implementation.h",
+    "dom_parser.cc",
+    "dom_parser.h",
+    "dom_rect.h",
+    "dom_rect_list.cc",
+    "dom_rect_list.h",
+    "dom_rect_read_only.h",
+    "dom_settings.cc",
+    "dom_settings.h",
+    "dom_stat_tracker.cc",
+    "dom_stat_tracker.h",
+    "dom_string_map.cc",
+    "dom_string_map.h",
+    "dom_token_list.cc",
+    "dom_token_list.h",
+    "element.cc",
+    "element.h",
+    "element_intersection_observer_module.cc",
+    "element_intersection_observer_module.h",
+    "eme/media_encrypted_event.cc",
+    "eme/media_encrypted_event.h",
+    "eme/media_key_message_event.cc",
+    "eme/media_key_message_event.h",
+    "eme/media_key_session.cc",
+    "eme/media_key_session.h",
+    "eme/media_key_status_map.cc",
+    "eme/media_key_status_map.h",
+    "eme/media_key_system_access.cc",
+    "eme/media_key_system_access.h",
+    "eme/media_keys.cc",
+    "eme/media_keys.h",
+    "error_event.h",
+    "event.cc",
+    "event.h",
+    "event_listener.h",
+    "event_queue.cc",
+    "event_queue.h",
+    "event_target.cc",
+    "event_target.h",
+    "event_target_listener_info.cc",
+    "event_target_listener_info.h",
+    "focus_event.cc",
+    "focus_event.h",
+    "font_cache.cc",
+    "font_cache.h",
+    "font_face.cc",
+    "font_face.h",
+    "font_face_updater.cc",
+    "font_face_updater.h",
+    "font_list.cc",
+    "font_list.h",
+    "global_stats.cc",
+    "global_stats.h",
+    "history.cc",
+    "history.h",
+    "html_anchor_element.cc",
+    "html_anchor_element.h",
+    "html_audio_element.cc",
+    "html_audio_element.h",
+    "html_body_element.cc",
+    "html_body_element.h",
+    "html_br_element.cc",
+    "html_br_element.h",
+    "html_collection.cc",
+    "html_collection.h",
+    "html_div_element.cc",
+    "html_div_element.h",
+    "html_element.cc",
+    "html_element.h",
+    "html_element_context.cc",
+    "html_element_context.h",
+    "html_element_factory.cc",
+    "html_element_factory.h",
+    "html_head_element.cc",
+    "html_head_element.h",
+    "html_heading_element.cc",
+    "html_heading_element.h",
+    "html_html_element.cc",
+    "html_html_element.h",
+    "html_image_element.cc",
+    "html_image_element.h",
+    "html_link_element.cc",
+    "html_link_element.h",
+    "html_media_element.cc",
+    "html_media_element.h",
+    "html_meta_element.cc",
+    "html_meta_element.h",
+    "html_paragraph_element.cc",
+    "html_paragraph_element.h",
+    "html_script_element.cc",
+    "html_script_element.h",
+    "html_span_element.cc",
+    "html_span_element.h",
+    "html_style_element.cc",
+    "html_style_element.h",
+    "html_title_element.cc",
+    "html_title_element.h",
+    "html_unknown_element.h",
+    "html_video_element.cc",
+    "html_video_element.h",
+    "initial_computed_style.cc",
+    "initial_computed_style.h",
+    "input_event.cc",
+    "input_event.h",
+    "intersection_observer.cc",
+    "intersection_observer.h",
+    "intersection_observer_entry.cc",
+    "intersection_observer_entry.h",
+    "intersection_observer_task_manager.cc",
+    "intersection_observer_task_manager.h",
+    "keyboard_event.cc",
+    "keyboard_event.h",
+    "keycode.h",
+    "keyframes_map_updater.cc",
+    "keyframes_map_updater.h",
+    "layout_boxes.h",
+    "local_storage_database.cc",
+    "local_storage_database.h",
+    "location.cc",
+    "location.h",
+    "lottie_player.cc",
+    "lottie_player.h",
+    "media_query_list.cc",
+    "media_query_list.h",
+    "media_source.cc",
+    "media_source.h",
+    "memory_info.cc",
+    "memory_info.h",
+    "message_event.cc",
+    "message_event.h",
+    "mime_type_array.cc",
+    "mime_type_array.h",
+    "mouse_event.cc",
+    "mouse_event.h",
+    "mutation_observer.cc",
+    "mutation_observer.h",
+    "mutation_observer_task_manager.cc",
+    "mutation_observer_task_manager.h",
+    "mutation_record.cc",
+    "mutation_record.h",
+    "mutation_reporter.cc",
+    "mutation_reporter.h",
+    "named_node_map.cc",
+    "named_node_map.h",
+    "navigator.cc",
+    "navigator.h",
+    "navigator_ua_data.cc",
+    "navigator_ua_data.h",
+    "node.cc",
+    "node.h",
+    "node_children_iterator.h",
+    "node_descendants_iterator.h",
+    "node_list.cc",
+    "node_list.h",
+    "node_list_live.cc",
+    "node_list_live.h",
+    "on_error_event_listener.cc",
+    "on_error_event_listener.h",
+    "on_screen_keyboard.cc",
+    "on_screen_keyboard.h",
+    "on_screen_keyboard_bridge.h",
+    "performance.cc",
+    "performance.h",
+    "performance_entry.cc",
+    "performance_entry.h",
+    "performance_entry_list_impl.cc",
+    "performance_entry_list_impl.h",
+    "performance_high_resolution_time.h",
+    "performance_lifecycle_timing.cc",
+    "performance_lifecycle_timing.h",
+    "performance_mark.cc",
+    "performance_mark.h",
+    "performance_measure.cc",
+    "performance_measure.h",
+    "performance_observer.cc",
+    "performance_observer.h",
+    "performance_observer_entry_list.cc",
+    "performance_observer_entry_list.h",
+    "performance_resource_timing.cc",
+    "performance_resource_timing.h",
+    "performance_timing.cc",
+    "performance_timing.h",
+    "plugin_array.cc",
+    "plugin_array.h",
+    "pointer_event.cc",
+    "pointer_event.h",
+    "pointer_state.cc",
+    "pointer_state.h",
+    "progress_event.cc",
+    "progress_event.h",
+    "pseudo_element.cc",
+    "pseudo_element.h",
+    "registered_observer.h",
+    "registered_observer_list.cc",
+    "registered_observer_list.h",
+    "rule_matching.cc",
+    "rule_matching.h",
+    "screen.h",
+    "screenshot.cc",
+    "screenshot.h",
+    "screenshot_manager.cc",
+    "screenshot_manager.h",
+    "security_policy_violation_event.cc",
+    "security_policy_violation_event.h",
+    "serializer.cc",
+    "serializer.h",
+    "source_buffer.cc",
+    "source_buffer.h",
+    "source_buffer_list.cc",
+    "source_buffer_list.h",
+    "storage.cc",
+    "storage.h",
+    "storage_area.cc",
+    "storage_area.h",
+    "storage_event.cc",
+    "storage_event.h",
+    "test_runner.cc",
+    "test_runner.h",
+    "text.cc",
+    "text.h",
+    "time_ranges.cc",
+    "time_ranges.h",
+    "track_base.h",
+    "track_default.h",
+    "track_default_list.h",
+    "track_event.h",
+    "transition_event.h",
+    "ui_event.cc",
+    "ui_event.h",
+    "ui_event_with_key_state.cc",
+    "ui_event_with_key_state.h",
+    "url.cc",
+    "url.h",
+    "url_registry.h",
+    "url_utils.cc",
+    "url_utils.h",
+    "user_agent_platform_info.h",
+    "video_track.h",
+    "video_track_list.h",
+    "wheel_event.cc",
+    "wheel_event.h",
+    "window.cc",
+    "window.h",
+    "window_timers.cc",
+    "window_timers.h",
+    "xml_document.h",
+    "xml_serializer.cc",
+    "xml_serializer.h",
+  ]
+
+  public_deps = [ "//cobalt/browser:generated_types" ]
+
+  deps = [
+    ":dom_exception",
+    ":licenses",
+    "//base:i18n",
+    "//cobalt/base",
+    "//cobalt/browser:generated_bindings",
+    "//cobalt/csp",
+    "//cobalt/cssom",
+    "//cobalt/loader",
+    "//cobalt/loader:origin",
+    "//cobalt/math",
+    "//cobalt/media",
+    "//cobalt/media_capture",
+    "//cobalt/media_session",
+    "//cobalt/network",
+    "//cobalt/network_bridge",
+    "//cobalt/render_tree",
+    "//cobalt/script",
+    "//cobalt/speech",
+    "//cobalt/storage",
+    "//cobalt/storage/store:memory_store",
+    "//cobalt/system_window",
+    "//cobalt/ui_navigation",
+    "//cobalt/web_animations",
+    "//crypto",
+    "//nb",
+    "//net",
+    "//starboard/common",
+    "//third_party/icu:icuuc",
+    "//third_party/modp_b64:modp_b64",
+    "//third_party/protobuf:protobuf_lite",
+    "//url",
+  ]
+}
+
+static_library("dom_exception") {
+  has_pedantic_warnings = true
+
+  sources = [
+    "dom_exception.cc",
+    "dom_exception.h",
+  ]
+
+  deps = [ "//cobalt/script" ]
+}
+
+copy("licenses") {
+  license_path =
+      "licenses/platform/$cobalt_licenses_platform/licenses_cobalt.txt"
+  sources = [ "$static_contents_source_dir/$license_path" ]
+  outputs =
+      [ "$sb_static_contents_output_data_dir/licenses/licenses_cobalt.txt" ]
+}
diff --git a/cobalt/dom_parser/BUILD.gn b/cobalt/dom_parser/BUILD.gn
new file mode 100644
index 0000000..f4f4c20
--- /dev/null
+++ b/cobalt/dom_parser/BUILD.gn
@@ -0,0 +1,42 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("dom_parser") {
+  has_pedantic_warnings = true
+
+  sources = [
+    "html_decoder.cc",
+    "html_decoder.h",
+    "libxml_html_parser_wrapper.cc",
+    "libxml_html_parser_wrapper.h",
+    "libxml_parser_wrapper.cc",
+    "libxml_parser_wrapper.h",
+    "libxml_xml_parser_wrapper.cc",
+    "libxml_xml_parser_wrapper.h",
+    "parser.cc",
+    "parser.h",
+    "xml_decoder.cc",
+    "xml_decoder.h",
+  ]
+
+  deps = [
+    "//cobalt/base",
+    "//cobalt/csp",
+    "//cobalt/dom",
+    "//cobalt/loader",
+    "//net",
+    "//third_party/libxml",
+    "//third_party/protobuf:protobuf_lite",
+  ]
+}
diff --git a/cobalt/encoding/BUILD.gn b/cobalt/encoding/BUILD.gn
new file mode 100644
index 0000000..adb6e89
--- /dev/null
+++ b/cobalt/encoding/BUILD.gn
@@ -0,0 +1,32 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("text_encoding") {
+  has_pedantic_warnings = true
+
+  sources = [
+    "text_decoder.cc",
+    "text_decoder.h",
+    "text_encoder.cc",
+    "text_encoder.h",
+  ]
+
+  deps = [
+    "//cobalt/base",
+    "//cobalt/browser:generated_types",
+    "//cobalt/dom",
+    "//cobalt/script",
+    "//third_party/icu:icuuc",
+  ]
+}
diff --git a/cobalt/extension/updater_notification.h b/cobalt/extension/updater_notification.h
index ce301dc..906cafc 100644
--- a/cobalt/extension/updater_notification.h
+++ b/cobalt/extension/updater_notification.h
@@ -31,9 +31,15 @@
   kCobaltExtensionUpdaterNotificationStateDownloading = 3,
   kCobaltExtensionUpdaterNotificationStateDownloaded = 4,
   kCobaltExtensionUpdaterNotificationStateInstalling = 5,
+#if SB_API_VERSION > 13
+  kCobaltExtensionUpdaterNotificationStateUpdated = 6,
+  kCobaltExtensionUpdaterNotificationStateUpToDate = 7,
+  kCobaltExtensionUpdaterNotificationStateUpdateFailed = 8,
+#else
   kCobaltExtensionUpdaterNotificationStatekUpdated = 6,
   kCobaltExtensionUpdaterNotificationStatekUpToDate = 7,
   kCobaltExtensionUpdaterNotificationStatekUpdateFailed = 8,
+#endif
 } CobaltExtensionUpdaterNotificationState;
 
 typedef struct CobaltExtensionUpdaterNotificationApi {
diff --git a/cobalt/fetch/BUILD.gn b/cobalt/fetch/BUILD.gn
index aa9013e..a623590 100644
--- a/cobalt/fetch/BUILD.gn
+++ b/cobalt/fetch/BUILD.gn
@@ -20,6 +20,7 @@
 
   deps = [
     "//cobalt/base",
+    "//cobalt/dom",
     "//cobalt/script",
     "//cobalt/script:engine",
     "//url",
diff --git a/cobalt/h5vcc/BUILD.gn b/cobalt/h5vcc/BUILD.gn
new file mode 100644
index 0000000..b914711
--- /dev/null
+++ b/cobalt/h5vcc/BUILD.gn
@@ -0,0 +1,117 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+config("h5vcc_internal_config") {
+  # For cobalt_build_id.h
+  include_dirs = [ target_gen_dir ]
+}
+
+config("h5vcc_external_config") {
+  defines = [ "COBALT_ENABLE_CRASH_LOG" ]
+  if (enable_account_manager) {
+    defines += [ "COBALT_ENABLE_ACCOUNT_MANAGER" ]
+  }
+  if (enable_sso) {
+    defines += [ "COBALT_ENABLE_SSO" ]
+  }
+}
+
+static_library("h5vcc") {
+  has_pedantic_warnings = true
+
+  sources = [
+    "dial/dial_http_request.cc",
+    "dial/dial_http_request.h",
+    "dial/dial_http_response.cc",
+    "dial/dial_http_response.h",
+    "dial/dial_server.cc",
+    "dial/dial_server.h",
+    "h5vcc.cc",
+    "h5vcc.h",
+    "h5vcc_accessibility.cc",
+    "h5vcc_accessibility.h",
+    "h5vcc_account_info.cc",
+    "h5vcc_account_info.h",
+    "h5vcc_audio_config.cc",
+    "h5vcc_audio_config.h",
+    "h5vcc_audio_config_array.cc",
+    "h5vcc_audio_config_array.h",
+    "h5vcc_crash_log.cc",
+    "h5vcc_crash_log.h",
+    "h5vcc_deep_link_event_target.cc",
+    "h5vcc_deep_link_event_target.h",
+    "h5vcc_event_listener_container.h",
+    "h5vcc_platform_service.cc",
+    "h5vcc_platform_service.h",
+    "h5vcc_runtime.cc",
+    "h5vcc_runtime.h",
+    "h5vcc_runtime_event_target.cc",
+    "h5vcc_runtime_event_target.h",
+    "h5vcc_screen.cc",
+    "h5vcc_screen.h",
+    "h5vcc_settings.cc",
+    "h5vcc_settings.h",
+    "h5vcc_storage.cc",
+    "h5vcc_storage.h",
+    "h5vcc_system.cc",
+    "h5vcc_system.h",
+    "h5vcc_trace_event.cc",
+    "h5vcc_trace_event.h",
+  ]
+  configs += [ ":h5vcc_internal_config" ]
+  public_configs = [ ":h5vcc_external_config" ]
+  deps = [
+    "//cobalt/account",
+    "//cobalt/base",
+    "//cobalt/browser:browser_switches",
+    "//cobalt/build:cobalt_build_id",
+    "//cobalt/configuration",
+    "//cobalt/dom",
+    "//cobalt/dom:dom_exception",
+    "//cobalt/media",
+    "//cobalt/network",
+    "//cobalt/script",
+    "//cobalt/speech",
+    "//cobalt/sso",
+    "//cobalt/storage",
+    "//cobalt/trace_event",
+    "//net",
+    "//net:http_server",
+    "//starboard",
+    "//third_party/protobuf:protobuf_lite",
+  ]
+
+  if (enable_account_manager) {
+    sources += [
+      "h5vcc_account_manager.cc",
+      "h5vcc_account_manager.h",
+    ]
+  }
+
+  if (enable_sso) {
+    sources += [
+      "h5vcc_sso.cc",
+      "h5vcc_sso.h",
+    ]
+  }
+
+  if (sb_is_evergreen) {
+    sources += [
+      "h5vcc_updater.cc",
+      "h5vcc_updater.h",
+    ]
+    # TODO(b/211447021): Migrate //cobalt/updater
+    # deps += [ "//cobalt/updater" ]
+  }
+}
diff --git a/cobalt/input/BUILD.gn b/cobalt/input/BUILD.gn
new file mode 100644
index 0000000..d97732f
--- /dev/null
+++ b/cobalt/input/BUILD.gn
@@ -0,0 +1,56 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("input") {
+  sources = [
+    "camera_3d.h",
+    "create_default_camera_3d.h",
+    "input_device_manager.h",
+    "input_device_manager_desktop.cc",
+    "input_device_manager_desktop.h",
+    "input_device_manager_fuzzer.cc",
+    "input_device_manager_fuzzer.h",
+    "input_device_manager_starboard.cc",
+    "input_poller.h",
+    "input_poller_impl.cc",
+    "input_poller_impl.h",
+    "key_event_handler.cc",
+    "key_event_handler.h",
+    "key_repeat_filter.cc",
+    "key_repeat_filter.h",
+    "keypress_generator_filter.cc",
+    "keypress_generator_filter.h",
+  ]
+
+  if (enable_vr) {
+    sources += [
+      "private/camera_3d_vr.cc",
+      "private/camera_3d_vr.h",
+    ]
+  } else {
+    sources += [
+      "camera_3d_input_poller.cc",
+      "camera_3d_input_poller.h",
+    ]
+  }
+
+  deps = [
+    "//cobalt/base",
+    "//cobalt/dom",
+    "//cobalt/overlay_info",
+    "//cobalt/speech",
+    "//cobalt/system_window",
+    "//starboard",
+  ]
+}
diff --git a/cobalt/layout/BUILD.gn b/cobalt/layout/BUILD.gn
new file mode 100644
index 0000000..1daa1a89
--- /dev/null
+++ b/cobalt/layout/BUILD.gn
@@ -0,0 +1,146 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("layout") {
+  has_pedantic_warnings = true
+  sources = [
+    "anonymous_block_box.cc",
+    "anonymous_block_box.h",
+    "base_direction.h",
+    "benchmark_stat_names.cc",
+    "benchmark_stat_names.h",
+    "block_container_box.cc",
+    "block_container_box.h",
+    "block_formatting_block_container_box.cc",
+    "block_formatting_block_container_box.h",
+    "block_formatting_context.cc",
+    "block_formatting_context.h",
+    "block_level_replaced_box.cc",
+    "block_level_replaced_box.h",
+    "box.cc",
+    "box.h",
+    "box_generator.cc",
+    "box_generator.h",
+    "box_intersection_observer_module.cc",
+    "box_intersection_observer_module.h",
+    "container_box.cc",
+    "container_box.h",
+    "flex_container_box.cc",
+    "flex_container_box.h",
+    "flex_formatting_context.cc",
+    "flex_formatting_context.h",
+    "flex_item.cc",
+    "flex_item.h",
+    "flex_line.cc",
+    "flex_line.h",
+    "formatting_context.h",
+    "initial_containing_block.cc",
+    "initial_containing_block.h",
+    "inline_container_box.cc",
+    "inline_container_box.h",
+    "inline_formatting_context.cc",
+    "inline_formatting_context.h",
+    "inline_level_replaced_box.cc",
+    "inline_level_replaced_box.h",
+    "insets_layout_unit.cc",
+    "insets_layout_unit.h",
+    "intersection_observer_root.h",
+    "intersection_observer_target.cc",
+    "intersection_observer_target.h",
+    "layout.cc",
+    "layout.h",
+    "layout_boxes.cc",
+    "layout_boxes.h",
+    "layout_manager.cc",
+    "layout_manager.h",
+    "layout_stat_tracker.cc",
+    "layout_stat_tracker.h",
+    "layout_unit.h",
+    "letterboxed_image.cc",
+    "letterboxed_image.h",
+    "line_box.cc",
+    "line_box.h",
+    "line_wrapping.cc",
+    "line_wrapping.h",
+    "paragraph.cc",
+    "paragraph.h",
+    "point_layout_unit.cc",
+    "point_layout_unit.h",
+    "rect_layout_unit.cc",
+    "rect_layout_unit.h",
+    "render_tree_animations.h",
+    "replaced_box.cc",
+    "replaced_box.h",
+    "size_layout_unit.cc",
+    "size_layout_unit.h",
+    "text_box.cc",
+    "text_box.h",
+    "topmost_event_target.cc",
+    "topmost_event_target.h",
+    "used_style.cc",
+    "used_style.h",
+    "vector2d_layout_unit.cc",
+    "vector2d_layout_unit.h",
+    "white_space_processing.cc",
+    "white_space_processing.h",
+  ]
+
+  configs -= [ "//starboard/build/config:size" ]
+  configs += [ "//starboard/build/config:speed" ]
+
+  # Exporting dom so that layout_test gets the transitive include paths to
+  # include generated headers.
+  public_deps = [ "//cobalt/dom" ]
+  deps = [
+    "//base:i18n",
+    "//cobalt/base",
+    "//cobalt/cssom",
+    "//cobalt/dom",
+    "//cobalt/loader",
+    "//cobalt/math",
+    "//cobalt/media",
+    "//cobalt/render_tree",
+    "//cobalt/render_tree:animations",
+    "//cobalt/ui_navigation",
+    "//cobalt/web_animations",
+    "//third_party/icu:icuuc",
+  ]
+}
+
+target(gtest_target_type, "layout_test") {
+  testonly = true
+  has_pedantic_warnings = true
+
+  sources = [
+    "layout_unit_test.cc",
+    "letterboxed_image_test.cc",
+    "used_style_test.cc",
+    "white_space_processing_test.cc",
+  ]
+
+  configs -= [ "//starboard/build/config:size" ]
+  configs += [ "//starboard/build/config:speed" ]
+
+  deps = [
+    ":layout",
+    "//base",
+    "//cobalt/base",
+    "//cobalt/css_parser",
+    "//cobalt/cssom",
+    "//cobalt/math",
+    "//cobalt/test:run_all_unittests",
+    "//testing/gmock",
+    "//testing/gmock",
+  ]
+}
diff --git a/cobalt/loader/BUILD.gn b/cobalt/loader/BUILD.gn
index ed36007..a94ee44 100644
--- a/cobalt/loader/BUILD.gn
+++ b/cobalt/loader/BUILD.gn
@@ -12,6 +12,125 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+static_library("loader") {
+  has_pedantic_warnings = true
+
+  # Includes cobalt/dom/url_utils.h from dom that depends on this target.
+  check_includes = false
+
+  sources = [
+    "blob_fetcher.cc",
+    "blob_fetcher.h",
+    "cache_fetcher.cc",
+    "cache_fetcher.h",
+    "cors_preflight.cc",
+    "cors_preflight.h",
+    "cors_preflight_cache.cc",
+    "cors_preflight_cache.h",
+    "decoder.h",
+    "embedded_fetcher.cc",
+    "embedded_fetcher.h",
+    "error_fetcher.cc",
+    "error_fetcher.h",
+    "fetcher.cc",
+    "fetcher.h",
+    "fetcher_cache.cc",
+    "fetcher_cache.h",
+    "fetcher_factory.cc",
+    "fetcher_factory.h",
+    "file_fetcher.cc",
+    "file_fetcher.h",
+    "font/remote_typeface_cache.h",
+    "font/typeface_decoder.cc",
+    "font/typeface_decoder.h",
+    "image/animated_image_tracker.cc",
+    "image/animated_image_tracker.h",
+    "image/animated_webp_image.cc",
+    "image/animated_webp_image.h",
+    "image/dummy_gif_image_decoder.cc",
+    "image/dummy_gif_image_decoder.h",
+    "image/failure_image_decoder.h",
+    "image/image.h",
+    "image/image_cache.h",
+    "image/image_data_decoder.cc",
+    "image/image_data_decoder.h",
+    "image/image_decoder.cc",
+    "image/image_decoder.h",
+    "image/image_decoder_starboard.cc",
+    "image/image_decoder_starboard.h",
+    "image/image_encoder.cc",
+    "image/image_encoder.h",
+    "image/jpeg_image_decoder.cc",
+    "image/jpeg_image_decoder.h",
+    "image/lottie_animation.cc",
+    "image/lottie_animation.h",
+    "image/lottie_animation_decoder.cc",
+    "image/lottie_animation_decoder.h",
+    "image/png_image_decoder.cc",
+    "image/png_image_decoder.h",
+    "image/stub_image_decoder.h",
+    "image/threaded_image_decoder_proxy.cc",
+    "image/threaded_image_decoder_proxy.h",
+    "image/webp_image_decoder.cc",
+    "image/webp_image_decoder.h",
+    "loader.cc",
+    "loader.h",
+    "loader_factory.cc",
+    "loader_factory.h",
+    "loader_types.h",
+    "mesh/mesh_cache.h",
+    "mesh/mesh_decoder.cc",
+    "mesh/mesh_decoder.h",
+    "mesh/mesh_projection.h",
+    "mesh/projection_codec/constants.h",
+    "mesh/projection_codec/indexed_vert.cc",
+    "mesh/projection_codec/indexed_vert.h",
+    "mesh/projection_codec/projection_decoder.cc",
+    "mesh/projection_codec/projection_decoder.h",
+    "net_fetcher.cc",
+    "net_fetcher.h",
+    "resource_cache.cc",
+    "resource_cache.h",
+    "switches.cc",
+    "switches.h",
+    "sync_loader.cc",
+    "sync_loader.h",
+    "text_decoder.h",
+    "url_fetcher_string_writer.cc",
+    "url_fetcher_string_writer.h",
+  ]
+
+  configs -= [ "//starboard/build/config:size" ]
+  configs += [ "//starboard/build/config:speed" ]
+
+  deps = [
+    ":embed_loader_resources_as_header_files",
+    ":origin",
+    "//cobalt/base",
+    "//cobalt/configuration",
+    "//cobalt/csp",
+    "//cobalt/math",
+    "//cobalt/network",
+    "//cobalt/render_tree",
+    "//cobalt/renderer/test/png_utils",
+    "//nb",
+    "//third_party/libjpeg-turbo:libjpeg",
+    "//third_party/libpng",
+    "//third_party/libwebp",
+    "//third_party/protobuf:protobuf_lite",
+    "//url",
+  ]
+
+  if (!is_gold) {
+    sources += [
+      "about_fetcher.cc",
+      "about_fetcher.h",
+    ]
+    defines = [ "ENABLE_ABOUT_SCHEME" ]
+    deps += [ "//cobalt/renderer/test/jpeg_utils" ]
+  }
+}
+
 static_library("origin") {
   sources = [
     "origin.cc",
@@ -23,3 +142,29 @@
     "//url",
   ]
 }
+
+action("embed_loader_resources_as_header_files") {
+  script = "//cobalt/build/generate_data_header.py"
+
+  inputs = [
+    "embedded_resources/black_splash_screen.html",
+    "embedded_resources/cobalt_splash_screen.css",
+    "embedded_resources/cobalt_splash_screen.html",
+    "embedded_resources/cobalt_word_logo_356.png",
+    "embedded_resources/dialog.css",
+    "embedded_resources/dialog.js",
+    "embedded_resources/equirectangular_40_40.msh",
+    "embedded_resources/splash_screen.js",
+    "embedded_resources/unable_message.html.template",
+    "embedded_resources/update_message.html.template",
+    "embedded_resources/black_splash_screen.html",
+    "embedded_resources/cobalt_splash_screen.html",
+  ]
+  outputs = [ "$target_gen_dir/embedded_resources.h" ]
+
+  args = [
+    "LoaderEmbeddedResources",
+    rebase_path(outputs[0], root_build_dir),
+    rebase_path("embedded_resources", root_build_dir),
+  ]
+}
diff --git a/cobalt/media/BUILD.gn b/cobalt/media/BUILD.gn
index b0d4dbd..2194a4d 100644
--- a/cobalt/media/BUILD.gn
+++ b/cobalt/media/BUILD.gn
@@ -237,7 +237,9 @@
   deps = [
     "//base",
     "//cobalt/base",
+    "//cobalt/browser:browser_switches",
     "//cobalt/csp",
+    "//cobalt/loader",
     "//cobalt/loader:origin",
     "//cobalt/math",
     "//cobalt/network",
@@ -246,6 +248,7 @@
     "//nb",
     "//net",
     "//starboard",
+    "//third_party/protobuf:protobuf_lite",
     "//url",
   ]
 }
diff --git a/cobalt/media_capture/BUILD.gn b/cobalt/media_capture/BUILD.gn
index 8f61476..f20b541 100644
--- a/cobalt/media_capture/BUILD.gn
+++ b/cobalt/media_capture/BUILD.gn
@@ -15,6 +15,9 @@
 static_library("media_capture") {
   has_pedantic_warnings = true
 
+  # Creates cycle with //cobalt/dom
+  check_includes = false
+
   sources = [
     "encoders/audio_encoder.cc",
     "encoders/audio_encoder.h",
@@ -40,6 +43,7 @@
   deps = [
     "//base",
     "//cobalt/base",
+    "//cobalt/dom:dom_exception",
     "//cobalt/media",
     "//cobalt/media_stream",
     "//cobalt/script",
diff --git a/cobalt/media_stream/BUILD.gn b/cobalt/media_stream/BUILD.gn
index 9a3b9eb..934eec4 100644
--- a/cobalt/media_stream/BUILD.gn
+++ b/cobalt/media_stream/BUILD.gn
@@ -15,6 +15,9 @@
 static_library("media_stream") {
   has_pedantic_warnings = true
 
+  # Creates cycle with //cobalt/dom
+  check_includes = false
+
   sources = [
     "audio_parameters.cc",
     "audio_parameters.h",
diff --git a/cobalt/network/BUILD.gn b/cobalt/network/BUILD.gn
index 619bad9..44bccfc 100644
--- a/cobalt/network/BUILD.gn
+++ b/cobalt/network/BUILD.gn
@@ -46,6 +46,7 @@
   public_deps = [ "//net" ]
 
   deps = [
+    ":copy_ssl_certificates",
     "//cobalt/base",
     "//cobalt/build:cobalt_build_id",
     "//cobalt/configuration",
@@ -63,8 +64,8 @@
     ]
   }
 
-  # Enable network logging on gold builds.
-  if (is_gold) {
+  # Enable network logging on all but gold builds.
+  if (!is_gold) {
     sources += [
       "cobalt_net_log.cc",
       "cobalt_net_log.h",
@@ -73,6 +74,10 @@
     ]
     defines = [ "ENABLE_NETWORK_LOGGING" ]
   }
+
+  if (!sb_is_evergreen) {
+    deps += cobalt_platform_dependencies
+  }
 }
 
 copy("copy_ssl_certificates") {
@@ -209,7 +214,8 @@
     "//cobalt/content/ssl/certs/ff34af3f.0",
   ]
 
-  outputs = [ "$root_build_dir/content/test/{{source_root_relative_dir}}/{{source_file_part}}" ]
+  outputs =
+      [ "$sb_static_contents_output_data_dir/ssl/certs/{{source_file_part}}" ]
 }
 
 target(gtest_target_type, "network_base_test") {
diff --git a/cobalt/network/url_request_context.h b/cobalt/network/url_request_context.h
index 35d9a5d..074fcdb 100644
--- a/cobalt/network/url_request_context.h
+++ b/cobalt/network/url_request_context.h
@@ -27,8 +27,8 @@
 #include "net/url_request/url_request_context_storage.h"
 
 #if defined(ENABLE_DEBUGGER)
-#include "cobalt/debug/console/command_manager.h"
-#endif  // ENABLE_DEBUGGER
+#include "cobalt/debug/console/command_manager.h"  // nogncheck
+#endif                                             // ENABLE_DEBUGGER
 
 namespace cobalt {
 namespace storage {
diff --git a/cobalt/renderer/BUILD.gn b/cobalt/renderer/BUILD.gn
index ece397e..c834841 100644
--- a/cobalt/renderer/BUILD.gn
+++ b/cobalt/renderer/BUILD.gn
@@ -12,11 +12,99 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-static_library("default_options") {
-  check_includes = false
-  sources = [ "//cobalt/renderer/get_default_rasterizer_for_platform.cc" ]
+source_set("renderer_headers_only") {
+  sources = [
+    "egl_and_gles.h",
+
+    # TODO(b/211034223): Consider moving to render_tree
+    "submission.h",
+  ]
   deps = [
+    "//base",
+    "//cobalt/render_tree",
+    "//cobalt/render_tree:animations",
+    "//starboard",
+  ]
+}
+
+static_library("renderer") {
+  sources = [
+    "fps_overlay.cc",
+    "fps_overlay.h",
+    "gles_ext.h",
+    "pipeline.cc",
+    "pipeline.h",
+    "renderer_module.cc",
+    "renderer_module.h",
+    "renderer_module_default_options.cc",
+    "smoothed_value.cc",
+    "smoothed_value.h",
+    "submission_queue.cc",
+    "submission_queue.h",
+  ]
+
+  configs -= [ "//starboard/build/config:size" ]
+  configs += [ "//starboard/build/config:speed" ]
+
+  public_deps = [ ":renderer_headers_only" ]
+
+  deps = [
+    "//cobalt/base",
+    "//cobalt/browser/memory_settings:browser_memory_settings",
+    "//cobalt/configuration",
+    "//cobalt/content/fonts:copy_font_data",
+    "//cobalt/math",
+    "//cobalt/render_tree",
+    "//cobalt/render_tree:animations",
+    "//cobalt/render_tree:render_tree",
     "//cobalt/renderer/backend:renderer_backend",
+    "//cobalt/renderer/rasterizer",
+    "//cobalt/renderer/rasterizer/skia:hardware_rasterizer",
+    "//cobalt/renderer/rasterizer/skia:software_rasterizer",
+    "//cobalt/system_window",
+    "//nb",
+    "//starboard:starboard_headers_only",
+  ]
+
+  if (is_starboard) {
+    deps += [ default_renderer_options_dependency ]
+  }
+
+  if (!is_gold) {
+    deps += [ "//cobalt/debug:console_command_manager" ]
+  }
+}
+
+static_library("render_tree_pixel_tester") {
+  sources = [
+    "render_tree_pixel_tester.cc",
+    "render_tree_pixel_tester.h",
+  ]
+
+  configs -= [ "//starboard/build/config:size" ]
+  configs += [ "//starboard/build/config:speed" ]
+
+  deps = [
+    ":renderer",
+    "//cobalt/base",
+    "//cobalt/configuration",
+    "//cobalt/math:math",
+    "//cobalt/render_tree:render_tree",
+    "//cobalt/renderer/backend:renderer_backend",
+    "//cobalt/renderer/rasterizer/skia/skia",
+    "//cobalt/renderer/test/png_utils",
+    "//starboard:starboard_headers_only",
+  ]
+}
+
+static_library("default_options") {
+  sources = [ "//cobalt/renderer/get_default_rasterizer_for_platform.cc" ]
+
+  deps = [
+    "//cobalt/configuration",
+    "//cobalt/renderer/backend:renderer_backend",
+    "//cobalt/renderer/rasterizer/egl:hardware_rasterizer",
+    "//cobalt/renderer/rasterizer/egl:software_rasterizer",
     "//cobalt/renderer/rasterizer/skia:hardware_rasterizer",
     "//starboard:starboard_headers_only",
   ]
diff --git a/cobalt/renderer/backend/egl/BUILD.gn b/cobalt/renderer/backend/egl/BUILD.gn
index 8720b2c..b9e2d8f 100644
--- a/cobalt/renderer/backend/egl/BUILD.gn
+++ b/cobalt/renderer/backend/egl/BUILD.gn
@@ -45,6 +45,7 @@
     "//cobalt/base",
     "//cobalt/configuration",
     "//cobalt/math",
+    "//cobalt/renderer:renderer_headers_only",
     "//cobalt/system_window",
     "//starboard:starboard_headers_only",
     "//starboard/common",
diff --git a/cobalt/renderer/get_default_rasterizer_for_platform.cc b/cobalt/renderer/get_default_rasterizer_for_platform.cc
index 7a7ed5e..8e64ca7 100644
--- a/cobalt/renderer/get_default_rasterizer_for_platform.cc
+++ b/cobalt/renderer/get_default_rasterizer_for_platform.cc
@@ -22,8 +22,7 @@
 #include "cobalt/renderer/rasterizer/egl/software_rasterizer.h"
 #include "cobalt/renderer/rasterizer/skia/hardware_rasterizer.h"
 #include "cobalt/renderer/rasterizer/stub/rasterizer.h"
-#include "cobalt/renderer/renderer_module.h"
-
+#include "cobalt/renderer/renderer_module.h"  // nogncheck
 #include "starboard/gles.h"
 
 namespace cobalt {
diff --git a/cobalt/renderer/pipeline.h b/cobalt/renderer/pipeline.h
index 7b02091..e09e7e0 100644
--- a/cobalt/renderer/pipeline.h
+++ b/cobalt/renderer/pipeline.h
@@ -35,8 +35,8 @@
 #include "cobalt/renderer/submission_queue.h"
 
 #if defined(ENABLE_DEBUGGER)
-#include "cobalt/debug/console/command_manager.h"
-#endif  // defined(ENABLE_DEBUGGER)
+#include "cobalt/debug/console/command_manager.h"  // nogncheck
+#endif                                             // defined(ENABLE_DEBUGGER)
 
 namespace cobalt {
 namespace renderer {
diff --git a/cobalt/renderer/rasterizer/egl/BUILD.gn b/cobalt/renderer/rasterizer/egl/BUILD.gn
index 341375a..51363e6 100644
--- a/cobalt/renderer/rasterizer/egl/BUILD.gn
+++ b/cobalt/renderer/rasterizer/egl/BUILD.gn
@@ -27,6 +27,7 @@
     "//base",
     "//cobalt/math",
     "//cobalt/render_tree",
+    "//cobalt/renderer:renderer_headers_only",
     "//cobalt/renderer/backend:renderer_backend",
     "//cobalt/renderer/backend/egl:egl_backend",
     "//cobalt/renderer/rasterizer/skia:software_rasterizer",
@@ -81,7 +82,6 @@
     "shader_program.h",
     "shader_program_manager.cc",
     "shader_program_manager.h",
-    "software_rasterizer.cc",
   ]
 
   configs -= [ "//starboard/build/config:size" ]
@@ -94,6 +94,7 @@
     "//cobalt/math",
     "//cobalt/render_tree",
     "//cobalt/render_tree:animations",
+    "//cobalt/renderer:renderer_headers_only",
     "//cobalt/renderer/backend:renderer_backend",
     "//cobalt/renderer/backend/egl:egl_backend",
     "//cobalt/renderer/rasterizer/common",
diff --git a/cobalt/renderer/rasterizer/skia/BUILD.gn b/cobalt/renderer/rasterizer/skia/BUILD.gn
index 6e25617..11146df 100644
--- a/cobalt/renderer/rasterizer/skia/BUILD.gn
+++ b/cobalt/renderer/rasterizer/skia/BUILD.gn
@@ -80,6 +80,7 @@
 
   deps = [
     ":common",
+    "//cobalt/renderer:renderer_headers_only",
     "//cobalt/renderer/backend:renderer_backend",
     "//cobalt/renderer/backend/egl:egl_backend",
     "//cobalt/renderer/rasterizer/common",
diff --git a/cobalt/renderer/rasterizer/skia/skia/BUILD.gn b/cobalt/renderer/rasterizer/skia/skia/BUILD.gn
index 5d40158..6fac75a 100644
--- a/cobalt/renderer/rasterizer/skia/skia/BUILD.gn
+++ b/cobalt/renderer/rasterizer/skia/skia/BUILD.gn
@@ -39,7 +39,9 @@
 # without ASAN. This is done to avoid drastic slowdown in debug unit
 # tests.
 skia_common("skia_library_no_asan") {
+  check_includes = false
   sources = skia_effects_imagefilter_sources_no_asan
+
   # TODO(b/207398024): If this is a target we need to build, then we'll
   # need to rework the configuration framework to be able to remove this
   # flag -fsanitize=address, as it's mostly added in the
@@ -69,10 +71,12 @@
     "//third_party/skia/include/private",
     "//third_party/skia/include/utils",
   ]
+
+  defines = [ "SK_BUILD_NO_OPTS" ]
 }
 
 skia_common("skia_library") {
-  sources = shared_sources + sksl_sources
+  sources = combined_sources + sksl_sources
 
   configs = [
     ":skia_library_config",
@@ -131,6 +135,7 @@
     "//base",
     "//cobalt/base",
     "//cobalt/configuration:configuration",
+    "//cobalt/renderer:renderer_headers_only",
     "//starboard:starboard_headers_only",
     "//starboard/common",
     "//third_party/freetype2",
diff --git a/cobalt/renderer/rasterizer/skia/skia/skia_sources.gni b/cobalt/renderer/rasterizer/skia/skia/skia_sources.gni
index 5a852b7..40b3a97 100644
--- a/cobalt/renderer/rasterizer/skia/skia/skia_sources.gni
+++ b/cobalt/renderer/rasterizer/skia/skia/skia_sources.gni
@@ -56,15 +56,12 @@
 combined_sources += shared_sources
 combined_sources += skia_core_sources
 
-combined_sources += skia_pathops_sources
-combined_sources += skia_skpicture_sources
 combined_sources += skia_effects_sources
 combined_sources += skia_effects_imagefilter_sources
 
 # from "gpu.gni"
 combined_sources += skia_gpu_sources
-combined_sources += skia_ccpr_sources
-combined_sources += skia_nvpr_sources
+
 combined_sources += skia_utils_sources
 combined_sources += skia_skottie_sources
 combined_sources += skia_sksg_sources
diff --git a/cobalt/renderer/rasterizer/skia/skia/skia_template.gni b/cobalt/renderer/rasterizer/skia/skia/skia_template.gni
index a90d942..516cb32 100644
--- a/cobalt/renderer/rasterizer/skia/skia/skia_template.gni
+++ b/cobalt/renderer/rasterizer/skia/skia/skia_template.gni
@@ -16,20 +16,20 @@
 # Skia build.
 
 template("skia_common") {
+  # This list will contain all defines that also need to be exported to
+  # dependent components.
+  skia_export_defines = [
+    "SK_DISABLE_EFFECT_DESERIALIZATION=1",
+    "SK_SUPPORT_GPU=1",
+    "SK_USER_CONFIG_HEADER=\"cobalt/renderer/rasterizer/skia/skia/config/SkUserConfig.h\"",
+  ]
+
   if (target_os == "win") {
-    skia_export_defines = [
+    skia_export_defines += [
       # Required define by Skia to take certain code paths, such
       # as including windows.h in various places.
       "SK_BUILD_FOR_WIN32",
     ]
-  } else {
-    # This list will contain all defines that also need to be exported to
-    # dependent components.
-    skia_export_defines = [
-      "SK_DISABLE_EFFECT_DESERIALIZATION=1",
-      "SK_SUPPORT_GPU=1",
-      "SK_USER_CONFIG_HEADER=\"cobalt/renderer/rasterizer/skia/skia/config/SkUserConfig.h\"",
-    ]
   }
 
   # The |default_font_cache_limit| specifies the max size of the glyph cache,
diff --git a/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.cc b/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.cc
index 6862a5e..00ffc9c 100644
--- a/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.cc
+++ b/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.cc
@@ -80,8 +80,7 @@
       manager_owned_mutex_(manager_owned_mutex),
       is_fallback_family_(family_info.is_fallback_family),
       language_(family_info.language),
-      page_ranges_(family_info.page_ranges),
-      is_character_map_generated_(!is_fallback_family_) {
+      page_ranges_(family_info.page_ranges) {
   TRACE_EVENT0("cobalt::renderer",
                "SkFontStyleSet_Cobalt::SkFontStyleSet_Cobalt()");
   DCHECK(manager_owned_mutex_);
@@ -90,7 +89,6 @@
     return;
   }
 
-  character_map_ = base::MakeRefCounted<font_character_map::CharacterMap>();
   disable_character_map_ = family_info.disable_caching;
 
   family_name_ = family_info.names[0];
@@ -232,7 +230,7 @@
   SkFontStyleSetEntry_Cobalt* style = styles_[style_index].get();
   // If the typeface doesn't already exist, then attempt to create it.
   if (style->typeface == NULL) {
-    CreateStreamProviderTypeface(style);
+    CreateStreamProviderTypeface(style, style_index);
     // If the creation attempt failed and the typeface is still NULL, then
     // remove the entry from the set's styles.
     if (style->typeface == NULL) {
@@ -286,7 +284,8 @@
 
   // The character map is lazily generated. Generate it now if it isn't already
   // generated.
-  if (!is_character_map_generated_) {
+  int style_index = GetClosestStyleIndex(style);
+  if (!character_maps_[style_index]) {
     TRACE_EVENT0("cobalt::renderer",
                  "SkFontStyleSet_Cobalt::ContainsCharacter() and "
                  "!is_character_map_generated_");
@@ -294,7 +293,6 @@
     // it will be removed from the set and, as long as font styles remain in the
     // set, the logic will be attempted again.
     while (styles_.count() > 0) {
-      int style_index = GetClosestStyleIndex(style);
       SkFontStyleSetEntry_Cobalt* closest_style = styles_[style_index].get();
 
       SkFileMemoryChunkStreamProvider* stream_provider =
@@ -310,9 +308,11 @@
 
       std::unique_ptr<SkFileMemoryChunkStream> stream(
           stream_provider->OpenStream());
-      if (GenerateStyleFaceInfo(closest_style, stream.get())) {
-        if (CharacterMapContainsCharacter(character)) {
-          CreateStreamProviderTypeface(closest_style, stream_provider);
+      if (GenerateStyleFaceInfo(closest_style, stream.get(), style_index)) {
+        if (CharacterMapContainsCharacter(character,
+                                          character_maps_[style_index])) {
+          CreateStreamProviderTypeface(closest_style, style_index,
+                                       stream_provider);
           return true;
         } else {
           // If a typeface was not created, destroy the stream and purge any
@@ -328,28 +328,34 @@
       styles_[style_index].swap(styles_.back());
       styles_.pop_back();
     }
-
-    is_character_map_generated_ = true;
   }
 
-  return CharacterMapContainsCharacter(character);
+  DCHECK(character_maps_[style_index]);
+  return CharacterMapContainsCharacter(character, character_maps_[style_index]);
 }
 
-bool SkFontStyleSet_Cobalt::CharacterMapContainsCharacter(SkUnichar character) {
-  font_character_map::Character c = character_map_->Find(character);
+bool SkFontStyleSet_Cobalt::CharacterMapContainsCharacter(
+    SkUnichar character,
+    const scoped_refptr<font_character_map::CharacterMap>& map) {
+  font_character_map::Character c = map->Find(character);
   return c.is_set && c.id > 0;
 }
 
 bool SkFontStyleSet_Cobalt::GenerateStyleFaceInfo(
-    SkFontStyleSetEntry_Cobalt* style, SkStreamAsset* stream) {
+    SkFontStyleSetEntry_Cobalt* style, SkStreamAsset* stream, int style_index) {
   if (style->is_face_info_generated) {
     return true;
   }
 
   // Providing a pointer to the character map will cause it to be generated
   // during ScanFont. Only provide it if it hasn't already been generated.
-  font_character_map::CharacterMap* character_map =
-      !is_character_map_generated_ ? character_map_.get() : NULL;
+
+  font_character_map::CharacterMap* character_map = NULL;
+  if (!character_maps_[style_index]) {
+    character_maps_[style_index] =
+        base::MakeRefCounted<font_character_map::CharacterMap>();
+    character_map = character_maps_[style_index].get();
+  }
 
   if (!sk_freetype_cobalt::ScanFont(
           stream, style->face_index, &style->face_name, &style->font_style,
@@ -358,7 +364,6 @@
   }
 
   style->is_face_info_generated = true;
-  is_character_map_generated_ = true;
   return true;
 }
 
@@ -376,7 +381,7 @@
 }
 
 void SkFontStyleSet_Cobalt::CreateStreamProviderTypeface(
-    SkFontStyleSetEntry_Cobalt* style_entry,
+    SkFontStyleSetEntry_Cobalt* style_entry, int style_index,
     SkFileMemoryChunkStreamProvider* stream_provider /*=NULL*/) {
   TRACE_EVENT0("cobalt::renderer",
                "SkFontStyleSet_Cobalt::CreateStreamProviderTypeface()");
@@ -388,13 +393,13 @@
 
   std::unique_ptr<SkFileMemoryChunkStream> stream(
       stream_provider->OpenStream());
-  if (GenerateStyleFaceInfo(style_entry, stream.get())) {
+  if (GenerateStyleFaceInfo(style_entry, stream.get(), style_index)) {
     LOG(INFO) << "Scanned font from file: " << style_entry->face_name.c_str()
               << "(" << style_entry->font_style.weight() << ", "
               << style_entry->font_style.width() << ", "
               << style_entry->font_style.slant() << ")";
     scoped_refptr<font_character_map::CharacterMap> map =
-        disable_character_map_ ? NULL : character_map_;
+        disable_character_map_ ? NULL : character_maps_[style_index];
     style_entry->typeface.reset(new SkTypeface_CobaltStreamProvider(
         stream_provider, style_entry->face_index, style_entry->font_style,
         style_entry->face_is_fixed_pitch, family_name_,
diff --git a/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.h b/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.h
index 774a90f..fb5d6d0 100644
--- a/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.h
+++ b/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.h
@@ -16,6 +16,7 @@
 #define COBALT_RENDERER_RASTERIZER_SKIA_SKIA_SRC_PORTS_SKFONTSTYLESET_COBALT_H_
 
 #include <string>
+#include <unordered_map>
 
 #include "SkFontMgr.h"
 #include "SkStream.h"
@@ -113,14 +114,16 @@
   bool ContainsTypeface(const SkTypeface* typeface);
 
   bool ContainsCharacter(const SkFontStyle& style, SkUnichar character);
-  bool CharacterMapContainsCharacter(SkUnichar character);
+  bool CharacterMapContainsCharacter(
+      SkUnichar character,
+      const scoped_refptr<font_character_map::CharacterMap>& map);
 
   bool GenerateStyleFaceInfo(SkFontStyleSetEntry_Cobalt* style,
-                             SkStreamAsset* stream);
+                             SkStreamAsset* stream, int style_index);
 
   int GetClosestStyleIndex(const SkFontStyle& pattern);
   void CreateStreamProviderTypeface(
-      SkFontStyleSetEntry_Cobalt* style,
+      SkFontStyleSetEntry_Cobalt* style, int style_index,
       SkFileMemoryChunkStreamProvider* stream_provider = NULL);
 
   // Purge typefaces that are only referenced internally.
@@ -139,8 +142,10 @@
   bool disable_character_map_;
 
   // NOTE: The following characters require locking when being accessed.
-  bool is_character_map_generated_;
-  scoped_refptr<font_character_map::CharacterMap> character_map_;
+  // This map will store one map per style, and can be indexed with the
+  // style_index of each style.
+  std::unordered_map<int, scoped_refptr<font_character_map::CharacterMap>>
+      character_maps_;
 
   SkTArray<sk_sp<SkFontStyleSetEntry_Cobalt>, true> styles_;
 
diff --git a/cobalt/renderer/test/jpeg_utils/BUILD.gn b/cobalt/renderer/test/jpeg_utils/BUILD.gn
new file mode 100644
index 0000000..da714b7
--- /dev/null
+++ b/cobalt/renderer/test/jpeg_utils/BUILD.gn
@@ -0,0 +1,25 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("jpeg_utils") {
+  sources = [
+    "jpeg_encode.cc",
+    "jpeg_encode.h",
+  ]
+
+  deps = [
+    "//base",
+    "//third_party/libjpeg-turbo:libjpeg",
+  ]
+}
diff --git a/cobalt/speech/BUILD.gn b/cobalt/speech/BUILD.gn
index 0b1f177..b072bc4 100644
--- a/cobalt/speech/BUILD.gn
+++ b/cobalt/speech/BUILD.gn
@@ -42,6 +42,9 @@
 static_library("speech") {
   has_pedantic_warnings = true
 
+  # Creates cycle with //cobalt/dom
+  check_includes = false
+
   sources = [
     "audio_encoder_flac.cc",
     "audio_encoder_flac.h",
@@ -96,6 +99,8 @@
 
   deps = [
     "//cobalt/base",
+    "//cobalt/dom:dom_exception",
+    "//cobalt/loader",
     "//cobalt/media",
     "//cobalt/network",
     "//cobalt/script",
diff --git a/cobalt/subtlecrypto/BUILD.gn b/cobalt/subtlecrypto/BUILD.gn
index e047acd..7097523 100644
--- a/cobalt/subtlecrypto/BUILD.gn
+++ b/cobalt/subtlecrypto/BUILD.gn
@@ -39,6 +39,8 @@
     ":crypto_impl",
     "//cobalt/base",
     "//cobalt/browser:generated_types",
+    "//cobalt/dom",
+    "//cobalt/dom:dom_exception",
     "//cobalt/script",
     "//cobalt/script:engine",
   ]
diff --git a/cobalt/test/BUILD.gn b/cobalt/test/BUILD.gn
index eb22794..9b8f32a 100644
--- a/cobalt/test/BUILD.gn
+++ b/cobalt/test/BUILD.gn
@@ -15,8 +15,8 @@
 static_library("run_all_unittests") {
   testonly = true
   sources = [ "run_all_unittests.cc" ]
+  public_deps = [ "//base/test:test_support" ]
   deps = [
-    "//base/test:test_support",
     "//cobalt/base",
     "//testing/gtest",
   ]
diff --git a/cobalt/updater/updater_module.cc b/cobalt/updater/updater_module.cc
index 2cf09b5..e2e4001 100644
--- a/cobalt/updater/updater_module.cc
+++ b/cobalt/updater/updater_module.cc
@@ -67,12 +67,21 @@
       return kCobaltExtensionUpdaterNotificationStateDownloaded;
     case ComponentState::kUpdating:
       return kCobaltExtensionUpdaterNotificationStateInstalling;
+#if SB_API_VERSION > 13
+    case ComponentState::kUpdated:
+      return kCobaltExtensionUpdaterNotificationStateUpdated;
+    case ComponentState::kUpToDate:
+      return kCobaltExtensionUpdaterNotificationStateUpToDate;
+    case ComponentState::kUpdateError:
+      return kCobaltExtensionUpdaterNotificationStateUpdateFailed;
+#else
     case ComponentState::kUpdated:
       return kCobaltExtensionUpdaterNotificationStatekUpdated;
     case ComponentState::kUpToDate:
-      return kCobaltExtensionUpdaterNotificationStatekUpdated;
+      return kCobaltExtensionUpdaterNotificationStatekUpToDate;
     case ComponentState::kUpdateError:
       return kCobaltExtensionUpdaterNotificationStatekUpdateFailed;
+#endif
     default:
       return kCobaltExtensionUpdaterNotificationStateNone;
   }
diff --git a/cobalt/version.h b/cobalt/version.h
index 85eae78..18d66ee 100644
--- a/cobalt/version.h
+++ b/cobalt/version.h
@@ -35,6 +35,6 @@
 //                  release is cut.
 //.
 
-#define COBALT_VERSION "22.master.0"
+#define COBALT_VERSION "23.master.0"
 
 #endif  // COBALT_VERSION_H_
diff --git a/cobalt/web_animations/BUILD.gn b/cobalt/web_animations/BUILD.gn
new file mode 100644
index 0000000..81ee087
--- /dev/null
+++ b/cobalt/web_animations/BUILD.gn
@@ -0,0 +1,62 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("web_animations") {
+  has_pedantic_warnings = true
+  sources = [
+    "animatable.h",
+    "animation.cc",
+    "animation.h",
+    "animation_effect_read_only.h",
+    "animation_effect_timing_read_only.cc",
+    "animation_effect_timing_read_only.h",
+    "animation_set.cc",
+    "animation_set.h",
+    "animation_timeline.cc",
+    "animation_timeline.h",
+    "baked_animation_set.cc",
+    "baked_animation_set.h",
+    "keyframe.h",
+    "keyframe_effect_read_only.cc",
+    "keyframe_effect_read_only.h",
+    "timed_task_queue.cc",
+    "timed_task_queue.h",
+  ]
+
+  deps = [
+    "//cobalt/base",
+    "//cobalt/cssom",
+    "//cobalt/script",
+  ]
+}
+
+target(gtest_target_type, "web_animations_test") {
+  testonly = true
+  has_pedantic_warnings = true
+
+  sources = [
+    "animation_effect_timing_read_only_test.cc",
+    "animation_test.cc",
+    "keyframe_effect_read_only_test.cc",
+  ]
+
+  deps = [
+    ":web_animations",
+    "//cobalt/css_parser",
+    "//cobalt/cssom",
+    "//cobalt/test:run_all_unittests",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+}
diff --git a/cobalt/webdriver/BUILD.gn b/cobalt/webdriver/BUILD.gn
new file mode 100644
index 0000000..1b35d40
--- /dev/null
+++ b/cobalt/webdriver/BUILD.gn
@@ -0,0 +1,117 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+config("webdriver_public_config") {
+  defines = [ "ENABLE_WEBDRIVER" ]
+}
+
+static_library("webdriver") {
+  configs -= [ "//starboard/build/config:size" ]
+  configs += [ "//starboard/build/config:speed" ]
+
+  deps = [
+    "//base",
+    "//base:i18n",
+    "//cobalt/base",
+    "//cobalt/cssom",
+    "//cobalt/dom",
+    "//cobalt/loader",
+    "//cobalt/math",
+    "//cobalt/script",
+    "//net",
+    "//net:http_server",
+    "//third_party/icu:icuuc",
+    "//url",
+  ]
+  if (is_gold) {
+    sources = [ "stub_web_driver_module.cc" ]
+  } else {
+    sources = [
+      "algorithms.cc",
+      "algorithms.h",
+      "dispatcher.cc",
+      "dispatcher.h",
+      "element_driver.cc",
+      "element_driver.h",
+      "keyboard.cc",
+      "keyboard.h",
+      "protocol/button.cc",
+      "protocol/button.h",
+      "protocol/capabilities.cc",
+      "protocol/capabilities.h",
+      "protocol/cookie.cc",
+      "protocol/cookie.h",
+      "protocol/element_id.cc",
+      "protocol/element_id.h",
+      "protocol/frame_id.cc",
+      "protocol/frame_id.h",
+      "protocol/keys.cc",
+      "protocol/keys.h",
+      "protocol/location.cc",
+      "protocol/location.h",
+      "protocol/log_entry.cc",
+      "protocol/log_entry.h",
+      "protocol/log_type.cc",
+      "protocol/log_type.h",
+      "protocol/moveto.cc",
+      "protocol/moveto.h",
+      "protocol/proxy.cc",
+      "protocol/proxy.h",
+      "protocol/rect.cc",
+      "protocol/rect.h",
+      "protocol/response.cc",
+      "protocol/response.h",
+      "protocol/script.cc",
+      "protocol/script.h",
+      "protocol/search_strategy.cc",
+      "protocol/search_strategy.h",
+      "protocol/server_status.cc",
+      "protocol/server_status.h",
+      "protocol/session_id.h",
+      "protocol/size.cc",
+      "protocol/size.h",
+      "protocol/window_id.cc",
+      "protocol/window_id.h",
+      "screencast/screencast_module.cc",
+      "screencast/screencast_module.h",
+      "screenshot.cc",
+      "screenshot.h",
+      "script_executor.cc",
+      "script_executor.h",
+      "script_executor_params.cc",
+      "script_executor_params.h",
+      "script_executor_result.h",
+      "search.cc",
+      "search.h",
+      "server.cc",
+      "server.h",
+      "session_driver.cc",
+      "session_driver.h",
+      "web_driver_module.cc",
+      "web_driver_module.h",
+      "window_driver.cc",
+      "window_driver.h",
+    ]
+    deps += [ ":copy_webdriver_data" ]
+    public_configs = [ ":webdriver_public_config" ]
+  }
+}
+
+# TODO: This declares content_deploy_subdirs which should be migrated for
+#       install targets.
+copy("copy_webdriver_data") {
+  sources = [ "content/webdriver-init.js" ]
+  outputs =
+      [ "$sb_static_contents_output_data_dir/webdriver/webdriver-init.js" ]
+}
diff --git a/cobalt/websocket/BUILD.gn b/cobalt/websocket/BUILD.gn
new file mode 100644
index 0000000..e50677e
--- /dev/null
+++ b/cobalt/websocket/BUILD.gn
@@ -0,0 +1,72 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("websocket") {
+  has_pedantic_warnings = true
+
+  sources = [
+    "buffered_amount_tracker.cc",
+    "buffered_amount_tracker.h",
+    "close_event.h",
+    "cobalt_web_socket_event_handler.cc",
+    "cobalt_web_socket_event_handler.h",
+    "sec_web_socket_key.h",
+    "web_socket.cc",
+    "web_socket.h",
+    "web_socket_impl.cc",
+    "web_socket_impl.h",
+  ]
+  deps = [
+    "//cobalt/base",
+    "//cobalt/browser:generated_type_conversion",
+    "//cobalt/dom",
+    "//cobalt/dom:dom_exception",
+    "//cobalt/network",
+    "//cobalt/script",
+    "//net",
+    "//starboard",
+    "//third_party/protobuf:protobuf_lite",
+    "//url",
+  ]
+}
+
+target(gtest_target_type, "websocket_test") {
+  testonly = true
+  has_pedantic_warnings = true
+  sources = [
+    "mock_websocket_channel.cc",
+    "web_socket_impl_test.cc",
+    "web_socket_test.cc",
+  ]
+  deps = [
+    ":websocket",
+    "//cobalt/base",
+    "//cobalt/dom",
+    "//cobalt/dom:dom_exception",
+    "//cobalt/network",
+    "//cobalt/script",
+    "//cobalt/test:run_all_unittests",
+    "//testing/gmock",
+    "//testing/gtest",
+    "//url",
+
+    # TODO: Remove the dependency below, it works around the fact that
+    #       ScriptValueFactory has non-virtual method CreatePromise().
+    "//cobalt/script:engine",
+  ]
+
+  if (!is_gold) {
+    deps += [ "//cobalt/debug" ]
+  }
+}
diff --git a/cobalt/xhr/BUILD.gn b/cobalt/xhr/BUILD.gn
new file mode 100644
index 0000000..fd7f33c
--- /dev/null
+++ b/cobalt/xhr/BUILD.gn
@@ -0,0 +1,64 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("xhr") {
+  has_pedantic_warnings = true
+  sources = [
+    "url_fetcher_buffer_writer.cc",
+    "url_fetcher_buffer_writer.h",
+    "xml_http_request.cc",
+    "xml_http_request.h",
+    "xml_http_request_event_target.cc",
+    "xml_http_request_event_target.h",
+  ]
+
+  deps = [
+    "//cobalt/base",
+    "//cobalt/dom",
+    "//cobalt/dom:dom_exception",
+    "//cobalt/dom_parser",
+    "//cobalt/loader",
+    "//cobalt/script",
+    "//nb",
+    "//net",
+    "//starboard",
+    "//third_party/protobuf:protobuf_lite",
+    "//url",
+  ]
+
+  if (enable_xhr_header_filtering && !sb_is_evergreen) {
+    sources = [ "xhr_modify_headers.h" ]
+    defines = [ "COBALT_ENABLE_XHR_HEADER_FILTERING" ]
+    deps += [ cobalt_platform_dependencies ]
+  }
+}
+
+target(gtest_target_type, "xhr_test") {
+  testonly = true
+  has_pedantic_warnings = true
+  sources = [ "xml_http_request_test.cc" ]
+  deps = [
+    ":xhr",
+    "//cobalt/base",
+    "//cobalt/dom",
+    "//cobalt/dom:dom_exception",
+    "//cobalt/test:run_all_unittests",
+    "//testing/gmock",
+    "//testing/gtest",
+
+    # TODO: Remove the dependency below, it works around the fact that
+    #       ScriptValueFactory has non-virtual method CreatePromise().
+    "//cobalt/script:engine",
+  ]
+}
diff --git a/codereview.settings b/codereview.settings
deleted file mode 100644
index 1950c32..0000000
--- a/codereview.settings
+++ /dev/null
@@ -1,3 +0,0 @@
-GERRIT_HOST: cobalt-review.googlesource.com
-GERRIT_AUTODETECT_BRANCH: true
-CODE_REVIEW_SERVER: cobalt-review.googlesource.com
diff --git a/components/prefs/BUILD.gn b/components/prefs/BUILD.gn
new file mode 100644
index 0000000..29f20c7
--- /dev/null
+++ b/components/prefs/BUILD.gn
@@ -0,0 +1,91 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+config("prefs_config") {
+  defines = [ "COMPONENTS_PREFS_IMPLEMENTATION" ]
+}
+
+static_library("prefs") {
+  sources = [
+    "command_line_pref_store.cc",
+    "command_line_pref_store.h",
+    "default_pref_store.cc",
+    "default_pref_store.h",
+    "in_memory_pref_store.cc",
+    "in_memory_pref_store.h",
+    "json_pref_store.cc",
+    "json_pref_store.h",
+    "overlay_user_pref_store.cc",
+    "overlay_user_pref_store.h",
+    "persistent_pref_store.cc",
+    "persistent_pref_store.h",
+    "pref_change_registrar.cc",
+    "pref_change_registrar.h",
+    "pref_filter.h",
+    "pref_member.cc",
+    "pref_member.h",
+    "pref_notifier.h",
+    "pref_notifier_impl.cc",
+    "pref_notifier_impl.h",
+    "pref_observer.h",
+    "pref_registry.cc",
+    "pref_registry.h",
+    "pref_registry_simple.cc",
+    "pref_registry_simple.h",
+    "pref_service.cc",
+    "pref_service.h",
+    "pref_service_factory.cc",
+    "pref_service_factory.h",
+    "pref_store.cc",
+    "pref_store.h",
+    "pref_value_map.cc",
+    "pref_value_map.h",
+    "pref_value_store.cc",
+    "pref_value_store.h",
+    "prefs_export.h",
+    "scoped_user_pref_update.cc",
+    "scoped_user_pref_update.h",
+    "value_map_pref_store.cc",
+    "value_map_pref_store.h",
+    "writeable_pref_store.cc",
+    "writeable_pref_store.h",
+  ]
+
+  configs += [ ":prefs_config" ]
+
+  deps = [
+    "//base",
+    "//base/util/values:values_util",
+  ]
+}
+
+source_set("test_support") {
+  testonly = true
+  sources = [
+    "mock_pref_change_callback.cc",
+    "mock_pref_change_callback.h",
+    "pref_store_observer_mock.cc",
+    "pref_store_observer_mock.h",
+    "testing_pref_service.cc",
+    "testing_pref_service.h",
+    "testing_pref_store.cc",
+    "testing_pref_store.h",
+  ]
+  public_deps = [ ":prefs" ]
+  deps = [
+    "//base",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+}
diff --git a/components/update_client/component.cc b/components/update_client/component.cc
index d9158fc..8b4fa5d 100644
--- a/components/update_client/component.cc
+++ b/components/update_client/component.cc
@@ -333,6 +333,7 @@
 #if defined(STARBOARD)
 void Component::Cancel() {
   DCHECK(thread_checker_.CalledOnValidThread());
+  is_cancelled_ = true;
   state_->Cancel();
 }
 #endif
@@ -447,7 +448,16 @@
 
 void Component::NotifyObservers(UpdateClient::Observer::Events event) const {
   DCHECK(thread_checker_.CalledOnValidThread());
+
+#if defined(STARBOARD)
+  if (!is_cancelled_) {
+    update_context_.notify_observers_callback.Run(event, id_);
+  } else {
+    LOG(WARNING) << "Component::NotifyObservers: skip callback";
+  }
+#else
   update_context_.notify_observers_callback.Run(event, id_);
+#endif
 }
 
 base::TimeDelta Component::GetUpdateDuration() const {
@@ -1023,7 +1033,6 @@
   const auto& update_context = component.update_context_;
 
   DCHECK(component.crx_component());
-
   component.NotifyObservers(Events::COMPONENT_UPDATE_READY);
 
   base::CreateSequencedTaskRunnerWithTraits(kTaskTraits)
@@ -1043,6 +1052,7 @@
                      component.crx_component()->crx_format_requirement,
                      base::BindOnce(&Component::StateUpdating::InstallComplete,
                                     base::Unretained(this))));
+
 }
 
 void Component::StateUpdating::InstallComplete(ErrorCategory error_category,
diff --git a/components/update_client/component.h b/components/update_client/component.h
index 83b8a35..4944204 100644
--- a/components/update_client/component.h
+++ b/components/update_client/component.h
@@ -133,6 +133,9 @@
   std::vector<base::Value> GetEvents() const;
 
  private:
+#if defined(STARBOARD)
+  bool is_cancelled_ = false;
+#endif
   friend class MockPingManagerImpl;
   friend class UpdateCheckerTest;
 
diff --git a/components/update_client/update_engine.cc b/components/update_client/update_engine.cc
index 9e39a0f..2dbfb0f 100644
--- a/components/update_client/update_engine.cc
+++ b/components/update_client/update_engine.cc
@@ -200,6 +200,13 @@
     return;
   }
 
+#if defined(STARBOARD)
+  if (is_cancelled_) {
+    LOG(WARNING) << "UpdateEngine::ComponentCheckingForUpdatesStart cancelled";
+    return;
+  }
+#endif
+
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::BindOnce(&UpdateEngine::DoUpdateCheck,
                                 base::Unretained(this), update_context));
@@ -379,8 +386,16 @@
         next_update_delay);
     next_update_delay = base::TimeDelta();
 
-    notify_observers_callback_.Run(
+#if defined(STARBOARD)
+  if (!is_cancelled_) {
+    notify_observers_callback_.Run(UpdateClient::Observer::Events::COMPONENT_WAIT, id);
+  } else {
+    LOG(WARNING) << "UpdateEngine::HandleComponent skip NotifyObservers";
+  }
+#else
+  notify_observers_callback_.Run(
         UpdateClient::Observer::Events::COMPONENT_WAIT, id);
+#endif
     return;
   }
 
@@ -409,8 +424,18 @@
     update_context->next_update_delay = component->GetUpdateDuration();
 
     if (!component->events().empty()) {
+#if defined(STARBOARD)
+      if (!is_cancelled_) {
+        ping_manager_->SendPing(*component,
+                                  base::BindOnce([](int, const std::string&) {}));
+
+      } else {
+        LOG(WARNING) << "UpdateEngine::HandleComponentComplete skip SendPing";
+      }
+#else
       ping_manager_->SendPing(*component,
                               base::BindOnce([](int, const std::string&) {}));
+#endif
     }
 
     queue.pop();
@@ -475,7 +500,7 @@
 void UpdateEngine::Cancel(const std::string& update_context_session_id,
                           const std::vector<std::string>& crx_component_ids) {
   LOG(INFO) << "UpdateEngine::Cancel";
-
+  is_cancelled_ = true;
   if (ping_manager_.get()) {
     ping_manager_->Cancel();
   }
diff --git a/components/update_client/update_engine.h b/components/update_client/update_engine.h
index 1cd0ac9..1bf1cd7 100644
--- a/components/update_client/update_engine.h
+++ b/components/update_client/update_engine.h
@@ -134,6 +134,9 @@
   // update protocol. See the comments for X-Retry-After header.
   base::TimeTicks throttle_updates_until_;
 
+#if defined(STARBOARD)
+  bool is_cancelled_ = false;
+#endif
   DISALLOW_COPY_AND_ASSIGN(UpdateEngine);
 };
 
diff --git a/components/update_client/url_fetcher_downloader.cc b/components/update_client/url_fetcher_downloader.cc
index b5c13cc..4536da6 100644
--- a/components/update_client/url_fetcher_downloader.cc
+++ b/components/update_client/url_fetcher_downloader.cc
@@ -92,6 +92,11 @@
 #if defined(STARBOARD)
 void UrlFetcherDownloader::ConfirmSlot(const GURL& url) {
   LOG(INFO) << "UrlFetcherDownloader::ConfirmSlot: url=" << url;
+  if (is_cancelled_) {
+    LOG(ERROR) << "UrlFetcherDownloader::ConfirmSlot: Download already cancelled";
+    ReportDownloadFailure(url);
+    return;
+  }
   if (!cobalt_slot_management_.ConfirmSlot(download_dir_)) {
     ReportDownloadFailure(url, CrxDownloaderError::SLOT_UNAVAILABLE);
     return;
@@ -104,6 +109,11 @@
 
 void UrlFetcherDownloader::SelectSlot(const GURL& url) {
   LOG(INFO) << "UrlFetcherDownloader::SelectSlot: url=" << url;
+  if (is_cancelled_) {
+    LOG(ERROR) << "UrlFetcherDownloader::SelectSlot: Download already cancelled";
+    ReportDownloadFailure(url);
+    return;
+  }
   if (!cobalt_slot_management_.SelectSlot(&download_dir_)) {
     ReportDownloadFailure(url, CrxDownloaderError::SLOT_UNAVAILABLE);
     return;
@@ -125,7 +135,11 @@
 
 #if defined(STARBOARD)
   LOG(INFO) << "UrlFetcherDownloader::DoStartDownload";
-
+  if (is_cancelled_) {
+    LOG(ERROR) << "UrlFetcherDownloader::DoStartDownload: Download already cancelled";
+    ReportDownloadFailure(url);
+    return;
+  }
   const CobaltExtensionInstallationManagerApi* installation_api =
       static_cast<const CobaltExtensionInstallationManagerApi*>(
           SbSystemGetExtension(kCobaltExtensionInstallationManagerName));
@@ -155,6 +169,7 @@
 void UrlFetcherDownloader::DoCancelDownload() {
   LOG(INFO) << "UrlFetcherDownloader::DoCancelDownload";
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+  is_cancelled_ = true;
   if (network_fetcher_.get()) {
     network_fetcher_->Cancel();
   }
@@ -208,6 +223,11 @@
 #if defined(STARBOARD)
   LOG(INFO) << "UrlFetcherDownloader::StartURLFetch: url" << url
                << " download_dir=" << download_dir_;
+  if (is_cancelled_) {
+    LOG(ERROR) << "UrlFetcherDownloader::StartURLFetch: Download already cancelled";
+    ReportDownloadFailure(url);
+    return;
+  }
 #endif
 
   if (download_dir_.empty()) {
diff --git a/components/update_client/url_fetcher_downloader.h b/components/update_client/url_fetcher_downloader.h
index 3880efc..3adc4c2 100644
--- a/components/update_client/url_fetcher_downloader.h
+++ b/components/update_client/url_fetcher_downloader.h
@@ -82,6 +82,7 @@
 #if defined(STARBOARD)
   CobaltSlotManagement cobalt_slot_management_;
   scoped_refptr<Configurator> config_;
+  bool is_cancelled_ = false;
 #endif
 
   DISALLOW_COPY_AND_ASSIGN(UrlFetcherDownloader);
diff --git a/docker-compose.yml b/docker-compose.yml
index f7e6011..075e283 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -17,7 +17,6 @@
 volumes:
   android-debug-keystore:
   container-ccache:
-  container-starboard-toolchains:
 
 x-common-definitions: &common-definitions
   stdin_open: true
@@ -28,7 +27,6 @@
     - ${COBALT_SRC:-.}:/code/
     - android-debug-keystore:/root/.android/
     - ${CCACHE_DIR:-container-ccache}:/root/ccache
-    - ${STARBOARD_TOOLCHAINS_DIR:-container-starboard-toolchains}:/root/starboard-toolchains
 
 x-build-common-definitions: &build-common-definitions
   <<: *common-definitions
@@ -78,6 +76,9 @@
     build:
       context: ./docker/linux
       dockerfile: base/build/Dockerfile
+      args:
+        # Should match version pinned by Starboard
+        - CLANG_VER=${CLANG_VER:-365097-f7e52fbd-8}
     image: cobalt-build-base
     depends_on:
       - base
@@ -89,6 +90,7 @@
       dockerfile: base/build/Dockerfile
       args:
         - FROM_IMAGE=base-bionic
+        - CLANG_VER=${CLANG_VER:-365097-f7e52fbd-8}
     image: build-base-bionic
     depends_on:
       - base-bionic
@@ -184,16 +186,6 @@
     depends_on:
       - linux-x64x11-bionic
 
-  linux-x64x11-clang-3-9-prebuilt:
-    <<: *common-definitions
-    <<: *build-volumes
-    image: gcr.io/cobalt-tools/build-cobalt-linux-x64x11-clang-3-9:1.4
-    environment:
-      <<: *shared-build-env
-      PLATFORM: linux-x64x11-clang-3-9
-      CONFIG: ${CONFIG:-debug}
-      USE_CCACHE: ${USE_CCACHE:-1}
-
   # Define common build container for Android
   build-android:
     <<: *build-common-definitions
@@ -304,6 +296,7 @@
       context: ./docker/linux
       dockerfile: evergreen/Dockerfile
     image: cobalt-build-evergreen
+    depends_on: [ build-base ]
     environment:
       <<: *shared-build-env
 
diff --git a/docker/linux/android/Dockerfile b/docker/linux/android/Dockerfile
index 535b10d..12e5b53 100644
--- a/docker/linux/android/Dockerfile
+++ b/docker/linux/android/Dockerfile
@@ -32,5 +32,28 @@
             -keysize 2048 \
             -validity 10000
 
+# Install Android SDK and NDK
+ARG TOOLS=commandlinetools-linux-6200805_latest.zip
+ARG CMDLINE_URL=https://dl.google.com/android/repository/${TOOLS}
+ENV ANDROID_SDK_ROOT=/root/starboard-toolchains/AndroidSdk/
+
+RUN cd /tmp \
+  && mkdir -p ${ANDROID_SDK_ROOT} \
+  && curl --silent -O -J  ${CMDLINE_URL} \
+  && unzip ${TOOLS} -d ${ANDROID_SDK_ROOT} \
+  && rm ${TOOLS} \
+  && echo yes | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \
+      --sdk_root=${ANDROID_SDK_ROOT} \
+    "build-tools;30.0.0" \
+    "cmake;3.10.2.4988404" \
+    "cmdline-tools;1.0" \
+    "extras;android;m2repository" \
+    "extras;google;m2repository" \
+    "ndk;21.1.6352462" \
+    "patcher;v4" \
+    "platforms;android-30" \
+    "platform-tools" \
+  && echo "Android SDK installed"
+
 CMD /code/cobalt/build/gyp_cobalt -v -C ${CONFIG} ${PLATFORM} \
     && ninja -v -j ${NINJA_PARALLEL} -C ${OUTDIR}/${PLATFORM}_${CONFIG} ${TARGET:-cobalt_deploy}
diff --git a/docker/linux/base/build/Dockerfile b/docker/linux/base/build/Dockerfile
index 9a27bc2..1289fcb 100644
--- a/docker/linux/base/build/Dockerfile
+++ b/docker/linux/base/build/Dockerfile
@@ -17,6 +17,8 @@
 
 ARG gn_hash=vC0rxqiqGTD3ls9KJHrgJoWP2OBiPk_QEO_xbDItKYoC
 
+ARG HOME=/root
+
 # === Install common build tools, required by all platforms
 RUN apt update -qqy \
     && apt install -qqy --no-install-recommends \
@@ -31,7 +33,7 @@
 # === Get Nodejs pinned LTS version via NVM
 ARG NVM_SHA256SUM="f068e17dacb88f73302790cc076956c7a0d459ce9b01df842ff3e75744f9e2fe /tmp/install.sh"
 ARG NVM_URL="https://cobalt.googlesource.com/third_party/nvm/+/refs/tags/v0.35.3/install.sh?format=TEXT"
-ENV NVM_DIR /root/.nvm
+ENV NVM_DIR=${HOME}/.nvm
 ENV NODE_VERSION 12.17.0
 
 RUN curl --silent -o- ${NVM_URL} \
@@ -58,11 +60,26 @@
     NINJA_STATUS="[%e sec | %f/%t %u remaining | %c/sec | j%r] " \
     NINJA_PARALLEL=4 \
     IS_CI=0 \
-    CCACHE_DIR=/root/ccache \
+    CCACHE_DIR=${HOME}/ccache \
     CCACHE_MAXSIZE=30G
 
 # == Set up  ccache
-RUN cd /tmp && mkdir /root/ccache
+RUN cd /tmp && mkdir ${HOME}/ccache
+
+# === Install pinned host Clang toolchain for all Linux-hosted builds
+ARG CLANG_VER
+
+ARG TC_ROOT=${HOME}/starboard-toolchains/
+ARG TC_HOME=${TC_ROOT}/x86_64-linux-gnu-clang-chromium-${CLANG_VER}
+ARG BASE_URL=https://commondatastorage.googleapis.com/chromium-browser-clang
+
+RUN cd /tmp \
+    && mkdir -p ${TC_HOME} \
+    && curl --silent -O -J \
+        ${BASE_URL}/Linux_x64/clang-${CLANG_VER}.tgz \
+    && tar xf clang-${CLANG_VER}.tgz -C ${TC_HOME} \
+    && echo ${CLANG_VER} >> ${TC_HOME}/cr_build_revision \
+    && rm clang-${CLANG_VER}.tgz
 
 WORKDIR /code
 CMD ["/usr/bin/python","--version"]
diff --git a/net/BUILD.gn b/net/BUILD.gn
index 2d2cb07..5ca254f 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1805,6 +1805,7 @@
 
 copy("net_unittest_files") {
   sources = [
+    "data/test.html",
     "data/cert_issuer_source_static_unittest/c1.pem",
     "data/cert_issuer_source_static_unittest/c2.pem",
     "data/cert_issuer_source_static_unittest/d.pem",
@@ -1848,6 +1849,23 @@
     "data/cert_net_fetcher_impl_unittest/redirect_https.mock-http-headers",
     "data/cert_net_fetcher_impl_unittest/root.crl",
     "data/cert_net_fetcher_impl_unittest/root.crl.mock-http-headers",
+    "data/certificate_policies_unittest/anypolicy.pem",
+    "data/certificate_policies_unittest/anypolicy_with_qualifier.pem",
+    "data/certificate_policies_unittest/generate_policies.py",
+    "data/certificate_policies_unittest/invalid-anypolicy_with_custom_qualifier.pem",
+    "data/certificate_policies_unittest/invalid-empty.pem",
+    "data/certificate_policies_unittest/invalid-policy_1_2_3_dupe.pem",
+    "data/certificate_policies_unittest/invalid-policy_1_2_3_policyinformation_unconsumed_data.pem",
+    "data/certificate_policies_unittest/invalid-policy_1_2_3_policyqualifierinfo_unconsumed_data.pem",
+    "data/certificate_policies_unittest/invalid-policy_1_2_3_with_empty_qualifiers_sequence.pem",
+    "data/certificate_policies_unittest/invalid-policy_identifier_not_oid.pem",
+    "data/certificate_policies_unittest/policy_1_2_3.pem",
+    "data/certificate_policies_unittest/policy_1_2_3_and_1_2_4.pem",
+    "data/certificate_policies_unittest/policy_1_2_3_and_1_2_4_with_qualifiers.pem",
+    "data/certificate_policies_unittest/policy_1_2_3_with_custom_qualifier.pem",
+    "data/certificate_policies_unittest/policy_1_2_3_with_qualifier.pem",
+    "data/embedded_test_server/mock-headers-without-crlf.html",
+    "data/embedded_test_server/mock-headers-without-crlf.html.mock-http-headers",
     "data/filter_unittests/google.br",
     "data/filter_unittests/google.txt",
     "data/name_constraints_unittest/directoryname-excludeall.pem",
@@ -1929,6 +1947,56 @@
     "data/name_constraints_unittest/uri-permitted.pem",
     "data/name_constraints_unittest/x400address-excluded.pem",
     "data/name_constraints_unittest/x400address-permitted.pem",
+    "data/ocsp_unittest/annotate_test_data.py",
+    "data/ocsp_unittest/bad_ocsp_type.pem",
+    "data/ocsp_unittest/bad_signature.pem",
+    "data/ocsp_unittest/bad_status.pem",
+    "data/ocsp_unittest/good_response.pem",
+    "data/ocsp_unittest/good_response_next_update.pem",
+    "data/ocsp_unittest/good_response_sha256.pem",
+    "data/ocsp_unittest/has_extension.pem",
+    "data/ocsp_unittest/has_single_extension.pem",
+    "data/ocsp_unittest/has_version.pem",
+    "data/ocsp_unittest/make_ocsp.py",
+    "data/ocsp_unittest/malformed_request.pem",
+    "data/ocsp_unittest/missing_response.pem",
+    "data/ocsp_unittest/multiple_response.pem",
+    "data/ocsp_unittest/no_response.pem",
+    "data/ocsp_unittest/ocsp_extra_certs.pem",
+    "data/ocsp_unittest/ocsp_sign_bad_indirect.pem",
+    "data/ocsp_unittest/ocsp_sign_direct.pem",
+    "data/ocsp_unittest/ocsp_sign_indirect.pem",
+    "data/ocsp_unittest/ocsp_sign_indirect_missing.pem",
+    "data/ocsp_unittest/other_response.pem",
+    "data/ocsp_unittest/responder_id.pem",
+    "data/ocsp_unittest/responder_name.pem",
+    "data/ocsp_unittest/revoke_response.pem",
+    "data/ocsp_unittest/revoke_response_reason.pem",
+    "data/ocsp_unittest/unknown_response.pem",
+    "data/pac_file_fetcher_unittest/404.pac",
+    "data/pac_file_fetcher_unittest/404.pac.mock-http-headers",
+    "data/pac_file_fetcher_unittest/500.pac",
+    "data/pac_file_fetcher_unittest/500.pac.mock-http-headers",
+    "data/pac_file_fetcher_unittest/cacheable_1hr.pac",
+    "data/pac_file_fetcher_unittest/cacheable_1hr.pac.mock-http-headers",
+    "data/pac_file_fetcher_unittest/downloadable.pac",
+    "data/pac_file_fetcher_unittest/downloadable.pac.mock-http-headers",
+    "data/pac_file_fetcher_unittest/empty",
+    "data/pac_file_fetcher_unittest/empty.mock-http-headers",
+    "data/pac_file_fetcher_unittest/gzipped_pac",
+    "data/pac_file_fetcher_unittest/gzipped_pac.mock-http-headers",
+    "data/pac_file_fetcher_unittest/large-pac.nsproxy",
+    "data/pac_file_fetcher_unittest/large-pac.nsproxy.mock-http-headers",
+    "data/pac_file_fetcher_unittest/pac.html",
+    "data/pac_file_fetcher_unittest/pac.html.mock-http-headers",
+    "data/pac_file_fetcher_unittest/pac.nsproxy",
+    "data/pac_file_fetcher_unittest/pac.nsproxy.mock-http-headers",
+    "data/pac_file_fetcher_unittest/pac.txt",
+    "data/pac_file_fetcher_unittest/pac.txt.mock-http-headers",
+    "data/pac_file_fetcher_unittest/redirect-to-file",
+    "data/pac_file_fetcher_unittest/redirect-to-file.mock-http-headers",
+    "data/pac_file_fetcher_unittest/utf16be_pac",
+    "data/pac_file_fetcher_unittest/utf16be_pac.mock-http-headers",
     "data/parse_certificate_unittest/bad_key_usage.pem",
     "data/parse_certificate_unittest/bad_policy_qualifiers.pem",
     "data/parse_certificate_unittest/bad_signature_algorithm_oid.pem",
@@ -2789,8 +2857,627 @@
     "data/verify_name_match_unittest/names/unicode_supplementary-UTF8-unmangled.pem",
     "data/verify_name_match_unittest/names/valid-Name-empty.pem",
     "data/verify_name_match_unittest/names/valid-minimal.pem",
+    "data/verify_signed_data_unittest/annotate_test_data.py",
+    "data/verify_signed_data_unittest/ecdsa-prime256v1-sha512-spki-params-null.pem",
+    "data/verify_signed_data_unittest/ecdsa-prime256v1-sha512-unused-bits-signature.pem",
+    "data/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-ecdh-key.pem",
+    "data/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-ecmqv-key.pem",
+    "data/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-rsa-algorithm.pem",
+    "data/verify_signed_data_unittest/ecdsa-prime256v1-sha512-wrong-signature-format.pem",
+    "data/verify_signed_data_unittest/ecdsa-prime256v1-sha512.pem",
+    "data/verify_signed_data_unittest/ecdsa-secp384r1-sha256-corrupted-data.pem",
+    "data/verify_signed_data_unittest/ecdsa-secp384r1-sha256.pem",
+    "data/verify_signed_data_unittest/ecdsa-using-rsa-key.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha1-bad-key-der-length.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha1-bad-key-der-null.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha1-key-params-absent.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha1-using-pss-key-no-params.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha1-wrong-algorithm.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha1.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha256-key-encoded-ber.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha256-spki-non-null-params.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha256-using-ecdsa-algorithm.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha256-using-id-ea-rsa.pem",
+    "data/verify_signed_data_unittest/rsa-pkcs1-sha256.pem",
+    "data/verify_signed_data_unittest/rsa-pss-sha1-salt20-using-pss-key-no-params.pem",
+    "data/verify_signed_data_unittest/rsa-pss-sha1-salt20-using-pss-key-with-null-params.pem",
+    "data/verify_signed_data_unittest/rsa-pss-sha1-salt20.pem",
+    "data/verify_signed_data_unittest/rsa-pss-sha1-wrong-salt.pem",
+    "data/verify_signed_data_unittest/rsa-pss-sha256-mgf1-sha512-salt33.pem",
+    "data/verify_signed_data_unittest/rsa-pss-sha256-salt10-using-pss-key-with-params.pem",
+    "data/verify_signed_data_unittest/rsa-pss-sha256-salt10-using-pss-key-with-wrong-params.pem",
+    "data/verify_signed_data_unittest/rsa-pss-sha256-salt10.pem",
+    "data/verify_signed_data_unittest/rsa-using-ec-key.pem",
+    "data/verify_signed_data_unittest/rsa2048-pkcs1-sha512.pem",
+    "data/url_fetcher_impl_unittest/animate1.gif",
+    "data/url_fetcher_impl_unittest/server-unavailable.html",
+    "data/url_fetcher_impl_unittest/server-unavailable.html.mock-http-headers",
+    "data/url_fetcher_impl_unittest/simple.html",
+  ]
 
-    # TODO Add more files as needed
+  outputs = [ "$root_build_dir/content/test/{{source_root_relative_dir}}/{{source_file_part}}" ]
+}
+
+copy("third_party_unittest_files") {
+  sources = [
+    "third_party/nist-pkits/certs/AllCertificatesanyPolicyTest11EE.crt",
+    "third_party/nist-pkits/certs/AllCertificatesNoPoliciesTest2EE.crt",
+    "third_party/nist-pkits/certs/AllCertificatesSamePoliciesTest10EE.crt",
+    "third_party/nist-pkits/certs/AllCertificatesSamePoliciesTest13EE.crt",
+    "third_party/nist-pkits/certs/anyPolicyCACert.crt",
+    "third_party/nist-pkits/certs/AnyPolicyTest14EE.crt",
+    "third_party/nist-pkits/certs/BadCRLIssuerNameCACert.crt",
+    "third_party/nist-pkits/certs/BadCRLSignatureCACert.crt",
+    "third_party/nist-pkits/certs/BadnotAfterDateCACert.crt",
+    "third_party/nist-pkits/certs/BadnotBeforeDateCACert.crt",
+    "third_party/nist-pkits/certs/BadSignedCACert.crt",
+    "third_party/nist-pkits/certs/basicConstraintsCriticalcAFalseCACert.crt",
+    "third_party/nist-pkits/certs/basicConstraintsNotCriticalCACert.crt",
+    "third_party/nist-pkits/certs/basicConstraintsNotCriticalcAFalseCACert.crt",
+    "third_party/nist-pkits/certs/BasicSelfIssuedCRLSigningKeyCACert.crt",
+    "third_party/nist-pkits/certs/BasicSelfIssuedCRLSigningKeyCRLCert.crt",
+    "third_party/nist-pkits/certs/BasicSelfIssuedNewKeyCACert.crt",
+    "third_party/nist-pkits/certs/BasicSelfIssuedNewKeyOldWithNewCACert.crt",
+    "third_party/nist-pkits/certs/BasicSelfIssuedOldKeyCACert.crt",
+    "third_party/nist-pkits/certs/BasicSelfIssuedOldKeyNewWithOldCACert.crt",
+    "third_party/nist-pkits/certs/CPSPointerQualifierTest20EE.crt",
+    "third_party/nist-pkits/certs/deltaCRLCA1Cert.crt",
+    "third_party/nist-pkits/certs/deltaCRLCA2Cert.crt",
+    "third_party/nist-pkits/certs/deltaCRLCA3Cert.crt",
+    "third_party/nist-pkits/certs/deltaCRLIndicatorNoBaseCACert.crt",
+    "third_party/nist-pkits/certs/DifferentPoliciesTest12EE.crt",
+    "third_party/nist-pkits/certs/DifferentPoliciesTest3EE.crt",
+    "third_party/nist-pkits/certs/DifferentPoliciesTest4EE.crt",
+    "third_party/nist-pkits/certs/DifferentPoliciesTest5EE.crt",
+    "third_party/nist-pkits/certs/DifferentPoliciesTest7EE.crt",
+    "third_party/nist-pkits/certs/DifferentPoliciesTest8EE.crt",
+    "third_party/nist-pkits/certs/DifferentPoliciesTest9EE.crt",
+    "third_party/nist-pkits/certs/distributionPoint1CACert.crt",
+    "third_party/nist-pkits/certs/distributionPoint2CACert.crt",
+    "third_party/nist-pkits/certs/DSACACert.crt",
+    "third_party/nist-pkits/certs/DSAParametersInheritedCACert.crt",
+    "third_party/nist-pkits/certs/GeneralizedTimeCRLnextUpdateCACert.crt",
+    "third_party/nist-pkits/certs/GoodCACert.crt",
+    "third_party/nist-pkits/certs/GoodsubCACert.crt",
+    "third_party/nist-pkits/certs/GoodsubCAPanyPolicyMapping1to2CACert.crt",
+    "third_party/nist-pkits/certs/indirectCRLCA1Cert.crt",
+    "third_party/nist-pkits/certs/indirectCRLCA2Cert.crt",
+    "third_party/nist-pkits/certs/indirectCRLCA3Cert.crt",
+    "third_party/nist-pkits/certs/indirectCRLCA3cRLIssuerCert.crt",
+    "third_party/nist-pkits/certs/indirectCRLCA4Cert.crt",
+    "third_party/nist-pkits/certs/indirectCRLCA4cRLIssuerCert.crt",
+    "third_party/nist-pkits/certs/indirectCRLCA5Cert.crt",
+    "third_party/nist-pkits/certs/indirectCRLCA6Cert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy0CACert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy1CACert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy1SelfIssuedCACert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy1SelfIssuedsubCA2Cert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy1subCA1Cert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy1subCA2Cert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy1subCAIAP5Cert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy1subsubCA2Cert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy5CACert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy5subCACert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicy5subsubCACert.crt",
+    "third_party/nist-pkits/certs/inhibitAnyPolicyTest3EE.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping0CACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping0subCACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping1P12CACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping1P12subCACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping1P12subCAIPM5Cert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping1P12subsubCACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping1P12subsubCAIPM5Cert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping1P1CACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping1P1SelfIssuedCACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping1P1SelfIssuedsubCACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping1P1subCACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping1P1subsubCACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping5CACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping5subCACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping5subsubCACert.crt",
+    "third_party/nist-pkits/certs/inhibitPolicyMapping5subsubsubCACert.crt",
+    "third_party/nist-pkits/certs/InvalidBadCRLIssuerNameTest5EE.crt",
+    "third_party/nist-pkits/certs/InvalidBadCRLSignatureTest4EE.crt",
+    "third_party/nist-pkits/certs/InvalidBasicSelfIssuedCRLSigningKeyTest7EE.crt",
+    "third_party/nist-pkits/certs/InvalidBasicSelfIssuedCRLSigningKeyTest8EE.crt",
+    "third_party/nist-pkits/certs/InvalidBasicSelfIssuedNewWithOldTest5EE.crt",
+    "third_party/nist-pkits/certs/InvalidBasicSelfIssuedOldWithNewTest2EE.crt",
+    "third_party/nist-pkits/certs/InvalidcAFalseTest2EE.crt",
+    "third_party/nist-pkits/certs/InvalidcAFalseTest3EE.crt",
+    "third_party/nist-pkits/certs/InvalidCAnotAfterDateTest5EE.crt",
+    "third_party/nist-pkits/certs/InvalidCAnotBeforeDateTest1EE.crt",
+    "third_party/nist-pkits/certs/InvalidCASignatureTest2EE.crt",
+    "third_party/nist-pkits/certs/InvalidcRLIssuerTest27EE.crt",
+    "third_party/nist-pkits/certs/InvalidcRLIssuerTest31EE.crt",
+    "third_party/nist-pkits/certs/InvalidcRLIssuerTest32EE.crt",
+    "third_party/nist-pkits/certs/InvalidcRLIssuerTest34EE.crt",
+    "third_party/nist-pkits/certs/InvalidcRLIssuerTest35EE.crt",
+    "third_party/nist-pkits/certs/InvaliddeltaCRLIndicatorNoBaseTest1EE.crt",
+    "third_party/nist-pkits/certs/InvaliddeltaCRLTest10EE.crt",
+    "third_party/nist-pkits/certs/InvaliddeltaCRLTest3EE.crt",
+    "third_party/nist-pkits/certs/InvaliddeltaCRLTest4EE.crt",
+    "third_party/nist-pkits/certs/InvaliddeltaCRLTest6EE.crt",
+    "third_party/nist-pkits/certs/InvaliddeltaCRLTest9EE.crt",
+    "third_party/nist-pkits/certs/InvaliddistributionPointTest2EE.crt",
+    "third_party/nist-pkits/certs/InvaliddistributionPointTest3EE.crt",
+    "third_party/nist-pkits/certs/InvaliddistributionPointTest6EE.crt",
+    "third_party/nist-pkits/certs/InvaliddistributionPointTest8EE.crt",
+    "third_party/nist-pkits/certs/InvaliddistributionPointTest9EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNandRFC822nameConstraintsTest28EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNandRFC822nameConstraintsTest29EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest10EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest12EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest13EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest15EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest16EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest17EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest20EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest2EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest3EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest7EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest8EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNnameConstraintsTest9EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNSnameConstraintsTest31EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNSnameConstraintsTest33EE.crt",
+    "third_party/nist-pkits/certs/InvalidDNSnameConstraintsTest38EE.crt",
+    "third_party/nist-pkits/certs/InvalidDSASignatureTest6EE.crt",
+    "third_party/nist-pkits/certs/InvalidEEnotAfterDateTest6EE.crt",
+    "third_party/nist-pkits/certs/InvalidEEnotBeforeDateTest2EE.crt",
+    "third_party/nist-pkits/certs/InvalidEESignatureTest3EE.crt",
+    "third_party/nist-pkits/certs/InvalidIDPwithindirectCRLTest23EE.crt",
+    "third_party/nist-pkits/certs/InvalidIDPwithindirectCRLTest26EE.crt",
+    "third_party/nist-pkits/certs/InvalidinhibitAnyPolicyTest1EE.crt",
+    "third_party/nist-pkits/certs/InvalidinhibitAnyPolicyTest4EE.crt",
+    "third_party/nist-pkits/certs/InvalidinhibitAnyPolicyTest5EE.crt",
+    "third_party/nist-pkits/certs/InvalidinhibitAnyPolicyTest6EE.crt",
+    "third_party/nist-pkits/certs/InvalidinhibitPolicyMappingTest1EE.crt",
+    "third_party/nist-pkits/certs/InvalidinhibitPolicyMappingTest3EE.crt",
+    "third_party/nist-pkits/certs/InvalidinhibitPolicyMappingTest5EE.crt",
+    "third_party/nist-pkits/certs/InvalidinhibitPolicyMappingTest6EE.crt",
+    "third_party/nist-pkits/certs/InvalidkeyUsageCriticalcRLSignFalseTest4EE.crt",
+    "third_party/nist-pkits/certs/InvalidkeyUsageCriticalkeyCertSignFalseTest1EE.crt",
+    "third_party/nist-pkits/certs/InvalidkeyUsageNotCriticalcRLSignFalseTest5EE.crt",
+    "third_party/nist-pkits/certs/InvalidkeyUsageNotCriticalkeyCertSignFalseTest2EE.crt",
+    "third_party/nist-pkits/certs/InvalidLongSerialNumberTest18EE.crt",
+    "third_party/nist-pkits/certs/InvalidMappingFromanyPolicyTest7EE.crt",
+    "third_party/nist-pkits/certs/InvalidMappingToanyPolicyTest8EE.crt",
+    "third_party/nist-pkits/certs/InvalidMissingbasicConstraintsTest1EE.crt",
+    "third_party/nist-pkits/certs/InvalidMissingCRLTest1EE.crt",
+    "third_party/nist-pkits/certs/InvalidNameChainingOrderTest2EE.crt",
+    "third_party/nist-pkits/certs/InvalidNameChainingTest1EE.crt",
+    "third_party/nist-pkits/certs/InvalidNegativeSerialNumberTest15EE.crt",
+    "third_party/nist-pkits/certs/InvalidOldCRLnextUpdateTest11EE.crt",
+    "third_party/nist-pkits/certs/InvalidonlyContainsAttributeCertsTest14EE.crt",
+    "third_party/nist-pkits/certs/InvalidonlyContainsCACertsTest12EE.crt",
+    "third_party/nist-pkits/certs/InvalidonlyContainsUserCertsTest11EE.crt",
+    "third_party/nist-pkits/certs/InvalidonlySomeReasonsTest15EE.crt",
+    "third_party/nist-pkits/certs/InvalidonlySomeReasonsTest16EE.crt",
+    "third_party/nist-pkits/certs/InvalidonlySomeReasonsTest17EE.crt",
+    "third_party/nist-pkits/certs/InvalidonlySomeReasonsTest20EE.crt",
+    "third_party/nist-pkits/certs/InvalidonlySomeReasonsTest21EE.crt",
+    "third_party/nist-pkits/certs/InvalidpathLenConstraintTest10EE.crt",
+    "third_party/nist-pkits/certs/InvalidpathLenConstraintTest11EE.crt",
+    "third_party/nist-pkits/certs/InvalidpathLenConstraintTest12EE.crt",
+    "third_party/nist-pkits/certs/InvalidpathLenConstraintTest5EE.crt",
+    "third_party/nist-pkits/certs/InvalidpathLenConstraintTest6EE.crt",
+    "third_party/nist-pkits/certs/InvalidpathLenConstraintTest9EE.crt",
+    "third_party/nist-pkits/certs/InvalidPolicyMappingTest10EE.crt",
+    "third_party/nist-pkits/certs/InvalidPolicyMappingTest2EE.crt",
+    "third_party/nist-pkits/certs/InvalidPolicyMappingTest4EE.crt",
+    "third_party/nist-pkits/certs/Invalidpre2000CRLnextUpdateTest12EE.crt",
+    "third_party/nist-pkits/certs/Invalidpre2000UTCEEnotAfterDateTest7EE.crt",
+    "third_party/nist-pkits/certs/InvalidrequireExplicitPolicyTest3EE.crt",
+    "third_party/nist-pkits/certs/InvalidrequireExplicitPolicyTest5EE.crt",
+    "third_party/nist-pkits/certs/InvalidRevokedCATest2EE.crt",
+    "third_party/nist-pkits/certs/InvalidRevokedEETest3EE.crt",
+    "third_party/nist-pkits/certs/InvalidRFC822nameConstraintsTest22EE.crt",
+    "third_party/nist-pkits/certs/InvalidRFC822nameConstraintsTest24EE.crt",
+    "third_party/nist-pkits/certs/InvalidRFC822nameConstraintsTest26EE.crt",
+    "third_party/nist-pkits/certs/InvalidSelfIssuedinhibitAnyPolicyTest10EE.crt",
+    "third_party/nist-pkits/certs/InvalidSelfIssuedinhibitAnyPolicyTest8EE.crt",
+    "third_party/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest10EE.crt",
+    "third_party/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest11EE.crt",
+    "third_party/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest8EE.crt",
+    "third_party/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest9EE.crt",
+    "third_party/nist-pkits/certs/InvalidSelfIssuedpathLenConstraintTest16EE.crt",
+    "third_party/nist-pkits/certs/InvalidSelfIssuedrequireExplicitPolicyTest7EE.crt",
+    "third_party/nist-pkits/certs/InvalidSelfIssuedrequireExplicitPolicyTest8EE.crt",
+    "third_party/nist-pkits/certs/InvalidSeparateCertificateandCRLKeysTest20EE.crt",
+    "third_party/nist-pkits/certs/InvalidSeparateCertificateandCRLKeysTest21EE.crt",
+    "third_party/nist-pkits/certs/InvalidUnknownCriticalCertificateExtensionTest2EE.crt",
+    "third_party/nist-pkits/certs/InvalidUnknownCRLEntryExtensionTest8EE.crt",
+    "third_party/nist-pkits/certs/InvalidUnknownCRLExtensionTest10EE.crt",
+    "third_party/nist-pkits/certs/InvalidUnknownCRLExtensionTest9EE.crt",
+    "third_party/nist-pkits/certs/InvalidURInameConstraintsTest35EE.crt",
+    "third_party/nist-pkits/certs/InvalidURInameConstraintsTest37EE.crt",
+    "third_party/nist-pkits/certs/InvalidWrongCRLTest6EE.crt",
+    "third_party/nist-pkits/certs/keyUsageCriticalcRLSignFalseCACert.crt",
+    "third_party/nist-pkits/certs/keyUsageCriticalkeyCertSignFalseCACert.crt",
+    "third_party/nist-pkits/certs/keyUsageNotCriticalCACert.crt",
+    "third_party/nist-pkits/certs/keyUsageNotCriticalcRLSignFalseCACert.crt",
+    "third_party/nist-pkits/certs/keyUsageNotCriticalkeyCertSignFalseCACert.crt",
+    "third_party/nist-pkits/certs/LongSerialNumberCACert.crt",
+    "third_party/nist-pkits/certs/Mapping1to2CACert.crt",
+    "third_party/nist-pkits/certs/MappingFromanyPolicyCACert.crt",
+    "third_party/nist-pkits/certs/MappingToanyPolicyCACert.crt",
+    "third_party/nist-pkits/certs/MissingbasicConstraintsCACert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN1CACert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN1SelfIssuedCACert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN1subCA1Cert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN1subCA2Cert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN1subCA3Cert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN2CACert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN3CACert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN3subCA1Cert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN3subCA2Cert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN4CACert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDN5CACert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDNS1CACert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsDNS2CACert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsRFC822CA1Cert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsRFC822CA2Cert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsRFC822CA3Cert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsURI1CACert.crt",
+    "third_party/nist-pkits/certs/nameConstraintsURI2CACert.crt",
+    "third_party/nist-pkits/certs/NameOrderingCACert.crt",
+    "third_party/nist-pkits/certs/NegativeSerialNumberCACert.crt",
+    "third_party/nist-pkits/certs/NoCRLCACert.crt",
+    "third_party/nist-pkits/certs/NoissuingDistributionPointCACert.crt",
+    "third_party/nist-pkits/certs/NoPoliciesCACert.crt",
+    "third_party/nist-pkits/certs/OldCRLnextUpdateCACert.crt",
+    "third_party/nist-pkits/certs/onlyContainsAttributeCertsCACert.crt",
+    "third_party/nist-pkits/certs/onlyContainsCACertsCACert.crt",
+    "third_party/nist-pkits/certs/onlyContainsUserCertsCACert.crt",
+    "third_party/nist-pkits/certs/onlySomeReasonsCA1Cert.crt",
+    "third_party/nist-pkits/certs/onlySomeReasonsCA2Cert.crt",
+    "third_party/nist-pkits/certs/onlySomeReasonsCA3Cert.crt",
+    "third_party/nist-pkits/certs/onlySomeReasonsCA4Cert.crt",
+    "third_party/nist-pkits/certs/OverlappingPoliciesTest6EE.crt",
+    "third_party/nist-pkits/certs/P12Mapping1to3CACert.crt",
+    "third_party/nist-pkits/certs/P12Mapping1to3subCACert.crt",
+    "third_party/nist-pkits/certs/P12Mapping1to3subsubCACert.crt",
+    "third_party/nist-pkits/certs/P1anyPolicyMapping1to2CACert.crt",
+    "third_party/nist-pkits/certs/P1Mapping1to234CACert.crt",
+    "third_party/nist-pkits/certs/P1Mapping1to234subCACert.crt",
+    "third_party/nist-pkits/certs/PanyPolicyMapping1to2CACert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint0CACert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint0SelfIssuedCACert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint0subCA2Cert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint0subCACert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint1CACert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint1SelfIssuedCACert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint1SelfIssuedsubCACert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint1subCACert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint6CACert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint6subCA0Cert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint6subCA1Cert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint6subCA4Cert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint6subsubCA00Cert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint6subsubCA11Cert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint6subsubCA41Cert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint6subsubsubCA11XCert.crt",
+    "third_party/nist-pkits/certs/pathLenConstraint6subsubsubCA41XCert.crt",
+    "third_party/nist-pkits/certs/PoliciesP1234CACert.crt",
+    "third_party/nist-pkits/certs/PoliciesP1234subCAP123Cert.crt",
+    "third_party/nist-pkits/certs/PoliciesP1234subsubCAP123P12Cert.crt",
+    "third_party/nist-pkits/certs/PoliciesP123CACert.crt",
+    "third_party/nist-pkits/certs/PoliciesP123subCAP12Cert.crt",
+    "third_party/nist-pkits/certs/PoliciesP123subsubCAP12P1Cert.crt",
+    "third_party/nist-pkits/certs/PoliciesP123subsubCAP12P2Cert.crt",
+    "third_party/nist-pkits/certs/PoliciesP123subsubsubCAP12P2P1Cert.crt",
+    "third_party/nist-pkits/certs/PoliciesP12CACert.crt",
+    "third_party/nist-pkits/certs/PoliciesP12subCAP1Cert.crt",
+    "third_party/nist-pkits/certs/PoliciesP12subsubCAP1P2Cert.crt",
+    "third_party/nist-pkits/certs/PoliciesP2subCA2Cert.crt",
+    "third_party/nist-pkits/certs/PoliciesP2subCACert.crt",
+    "third_party/nist-pkits/certs/PoliciesP3CACert.crt",
+    "third_party/nist-pkits/certs/pre2000CRLnextUpdateCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy0CACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy0subCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy0subsubCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy0subsubsubCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy10CACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy10subCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy10subsubCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy10subsubsubCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy2CACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy2SelfIssuedCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy2SelfIssuedsubCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy2subCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy4CACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy4subCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy4subsubCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy4subsubsubCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy5CACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy5subCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy5subsubCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy5subsubsubCACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy7CACert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy7subCARE2Cert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy7subsubCARE2RE4Cert.crt",
+    "third_party/nist-pkits/certs/requireExplicitPolicy7subsubsubCARE2RE4Cert.crt",
+    "third_party/nist-pkits/certs/RevokedsubCACert.crt",
+    "third_party/nist-pkits/certs/RFC3280MandatoryAttributeTypesCACert.crt",
+    "third_party/nist-pkits/certs/RFC3280OptionalAttributeTypesCACert.crt",
+    "third_party/nist-pkits/certs/RolloverfromPrintableStringtoUTF8StringCACert.crt",
+    "third_party/nist-pkits/certs/SeparateCertificateandCRLKeysCA2CertificateSigningCACert.crt",
+    "third_party/nist-pkits/certs/SeparateCertificateandCRLKeysCA2CRLSigningCert.crt",
+    "third_party/nist-pkits/certs/SeparateCertificateandCRLKeysCertificateSigningCACert.crt",
+    "third_party/nist-pkits/certs/SeparateCertificateandCRLKeysCRLSigningCert.crt",
+    "third_party/nist-pkits/certs/TrustAnchorRootCertificate.crt",
+    "third_party/nist-pkits/certs/TwoCRLsCACert.crt",
+    "third_party/nist-pkits/certs/UIDCACert.crt",
+    "third_party/nist-pkits/certs/UnknownCRLEntryExtensionCACert.crt",
+    "third_party/nist-pkits/certs/UnknownCRLExtensionCACert.crt",
+    "third_party/nist-pkits/certs/UserNoticeQualifierTest15EE.crt",
+    "third_party/nist-pkits/certs/UserNoticeQualifierTest16EE.crt",
+    "third_party/nist-pkits/certs/UserNoticeQualifierTest17EE.crt",
+    "third_party/nist-pkits/certs/UserNoticeQualifierTest18EE.crt",
+    "third_party/nist-pkits/certs/UserNoticeQualifierTest19EE.crt",
+    "third_party/nist-pkits/certs/UTF8StringCaseInsensitiveMatchCACert.crt",
+    "third_party/nist-pkits/certs/UTF8StringEncodedNamesCACert.crt",
+    "third_party/nist-pkits/certs/ValidbasicConstraintsNotCriticalTest4EE.crt",
+    "third_party/nist-pkits/certs/ValidBasicSelfIssuedCRLSigningKeyTest6EE.crt",
+    "third_party/nist-pkits/certs/ValidBasicSelfIssuedNewWithOldTest3EE.crt",
+    "third_party/nist-pkits/certs/ValidBasicSelfIssuedNewWithOldTest4EE.crt",
+    "third_party/nist-pkits/certs/ValidBasicSelfIssuedOldWithNewTest1EE.crt",
+    "third_party/nist-pkits/certs/ValidCertificatePathTest1EE.crt",
+    "third_party/nist-pkits/certs/ValidcRLIssuerTest28EE.crt",
+    "third_party/nist-pkits/certs/ValidcRLIssuerTest29EE.crt",
+    "third_party/nist-pkits/certs/ValidcRLIssuerTest30EE.crt",
+    "third_party/nist-pkits/certs/ValidcRLIssuerTest33EE.crt",
+    "third_party/nist-pkits/certs/ValiddeltaCRLTest2EE.crt",
+    "third_party/nist-pkits/certs/ValiddeltaCRLTest5EE.crt",
+    "third_party/nist-pkits/certs/ValiddeltaCRLTest7EE.crt",
+    "third_party/nist-pkits/certs/ValiddeltaCRLTest8EE.crt",
+    "third_party/nist-pkits/certs/ValiddistributionPointTest1EE.crt",
+    "third_party/nist-pkits/certs/ValiddistributionPointTest4EE.crt",
+    "third_party/nist-pkits/certs/ValiddistributionPointTest5EE.crt",
+    "third_party/nist-pkits/certs/ValiddistributionPointTest7EE.crt",
+    "third_party/nist-pkits/certs/ValidDNandRFC822nameConstraintsTest27EE.crt",
+    "third_party/nist-pkits/certs/ValidDNnameConstraintsTest11EE.crt",
+    "third_party/nist-pkits/certs/ValidDNnameConstraintsTest14EE.crt",
+    "third_party/nist-pkits/certs/ValidDNnameConstraintsTest18EE.crt",
+    "third_party/nist-pkits/certs/ValidDNnameConstraintsTest19EE.crt",
+    "third_party/nist-pkits/certs/ValidDNnameConstraintsTest1EE.crt",
+    "third_party/nist-pkits/certs/ValidDNnameConstraintsTest4EE.crt",
+    "third_party/nist-pkits/certs/ValidDNnameConstraintsTest5EE.crt",
+    "third_party/nist-pkits/certs/ValidDNnameConstraintsTest6EE.crt",
+    "third_party/nist-pkits/certs/ValidDNSnameConstraintsTest30EE.crt",
+    "third_party/nist-pkits/certs/ValidDNSnameConstraintsTest32EE.crt",
+    "third_party/nist-pkits/certs/ValidDSAParameterInheritanceTest5EE.crt",
+    "third_party/nist-pkits/certs/ValidDSASignaturesTest4EE.crt",
+    "third_party/nist-pkits/certs/ValidGeneralizedTimeCRLnextUpdateTest13EE.crt",
+    "third_party/nist-pkits/certs/ValidGeneralizedTimenotAfterDateTest8EE.crt",
+    "third_party/nist-pkits/certs/ValidGeneralizedTimenotBeforeDateTest4EE.crt",
+    "third_party/nist-pkits/certs/ValidIDPwithindirectCRLTest22EE.crt",
+    "third_party/nist-pkits/certs/ValidIDPwithindirectCRLTest24EE.crt",
+    "third_party/nist-pkits/certs/ValidIDPwithindirectCRLTest25EE.crt",
+    "third_party/nist-pkits/certs/ValidinhibitAnyPolicyTest2EE.crt",
+    "third_party/nist-pkits/certs/ValidinhibitPolicyMappingTest2EE.crt",
+    "third_party/nist-pkits/certs/ValidinhibitPolicyMappingTest4EE.crt",
+    "third_party/nist-pkits/certs/ValidkeyUsageNotCriticalTest3EE.crt",
+    "third_party/nist-pkits/certs/ValidLongSerialNumberTest16EE.crt",
+    "third_party/nist-pkits/certs/ValidLongSerialNumberTest17EE.crt",
+    "third_party/nist-pkits/certs/ValidNameChainingCapitalizationTest5EE.crt",
+    "third_party/nist-pkits/certs/ValidNameChainingWhitespaceTest3EE.crt",
+    "third_party/nist-pkits/certs/ValidNameChainingWhitespaceTest4EE.crt",
+    "third_party/nist-pkits/certs/ValidNameUIDsTest6EE.crt",
+    "third_party/nist-pkits/certs/ValidNegativeSerialNumberTest14EE.crt",
+    "third_party/nist-pkits/certs/ValidNoissuingDistributionPointTest10EE.crt",
+    "third_party/nist-pkits/certs/ValidonlyContainsCACertsTest13EE.crt",
+    "third_party/nist-pkits/certs/ValidonlySomeReasonsTest18EE.crt",
+    "third_party/nist-pkits/certs/ValidonlySomeReasonsTest19EE.crt",
+    "third_party/nist-pkits/certs/ValidpathLenConstraintTest13EE.crt",
+    "third_party/nist-pkits/certs/ValidpathLenConstraintTest14EE.crt",
+    "third_party/nist-pkits/certs/ValidpathLenConstraintTest7EE.crt",
+    "third_party/nist-pkits/certs/ValidpathLenConstraintTest8EE.crt",
+    "third_party/nist-pkits/certs/ValidPolicyMappingTest11EE.crt",
+    "third_party/nist-pkits/certs/ValidPolicyMappingTest12EE.crt",
+    "third_party/nist-pkits/certs/ValidPolicyMappingTest13EE.crt",
+    "third_party/nist-pkits/certs/ValidPolicyMappingTest14EE.crt",
+    "third_party/nist-pkits/certs/ValidPolicyMappingTest1EE.crt",
+    "third_party/nist-pkits/certs/ValidPolicyMappingTest3EE.crt",
+    "third_party/nist-pkits/certs/ValidPolicyMappingTest5EE.crt",
+    "third_party/nist-pkits/certs/ValidPolicyMappingTest6EE.crt",
+    "third_party/nist-pkits/certs/ValidPolicyMappingTest9EE.crt",
+    "third_party/nist-pkits/certs/Validpre2000UTCnotBeforeDateTest3EE.crt",
+    "third_party/nist-pkits/certs/ValidrequireExplicitPolicyTest1EE.crt",
+    "third_party/nist-pkits/certs/ValidrequireExplicitPolicyTest2EE.crt",
+    "third_party/nist-pkits/certs/ValidrequireExplicitPolicyTest4EE.crt",
+    "third_party/nist-pkits/certs/ValidRFC3280MandatoryAttributeTypesTest7EE.crt",
+    "third_party/nist-pkits/certs/ValidRFC3280OptionalAttributeTypesTest8EE.crt",
+    "third_party/nist-pkits/certs/ValidRFC822nameConstraintsTest21EE.crt",
+    "third_party/nist-pkits/certs/ValidRFC822nameConstraintsTest23EE.crt",
+    "third_party/nist-pkits/certs/ValidRFC822nameConstraintsTest25EE.crt",
+    "third_party/nist-pkits/certs/ValidRolloverfromPrintableStringtoUTF8StringTest10EE.crt",
+    "third_party/nist-pkits/certs/ValidSelfIssuedinhibitAnyPolicyTest7EE.crt",
+    "third_party/nist-pkits/certs/ValidSelfIssuedinhibitAnyPolicyTest9EE.crt",
+    "third_party/nist-pkits/certs/ValidSelfIssuedinhibitPolicyMappingTest7EE.crt",
+    "third_party/nist-pkits/certs/ValidSelfIssuedpathLenConstraintTest15EE.crt",
+    "third_party/nist-pkits/certs/ValidSelfIssuedpathLenConstraintTest17EE.crt",
+    "third_party/nist-pkits/certs/ValidSelfIssuedrequireExplicitPolicyTest6EE.crt",
+    "third_party/nist-pkits/certs/ValidSeparateCertificateandCRLKeysTest19EE.crt",
+    "third_party/nist-pkits/certs/ValidTwoCRLsTest7EE.crt",
+    "third_party/nist-pkits/certs/ValidUnknownNotCriticalCertificateExtensionTest1EE.crt",
+    "third_party/nist-pkits/certs/ValidURInameConstraintsTest34EE.crt",
+    "third_party/nist-pkits/certs/ValidURInameConstraintsTest36EE.crt",
+    "third_party/nist-pkits/certs/ValidUTF8StringCaseInsensitiveMatchTest11EE.crt",
+    "third_party/nist-pkits/certs/ValidUTF8StringEncodedNamesTest9EE.crt",
+    "third_party/nist-pkits/certs/WrongCRLCACert.crt",
+    "third_party/nist-pkits/crls/anyPolicyCACRL.crl",
+    "third_party/nist-pkits/crls/BadCRLIssuerNameCACRL.crl",
+    "third_party/nist-pkits/crls/BadCRLSignatureCACRL.crl",
+    "third_party/nist-pkits/crls/BadnotAfterDateCACRL.crl",
+    "third_party/nist-pkits/crls/BadnotBeforeDateCACRL.crl",
+    "third_party/nist-pkits/crls/BadSignedCACRL.crl",
+    "third_party/nist-pkits/crls/basicConstraintsCriticalcAFalseCACRL.crl",
+    "third_party/nist-pkits/crls/basicConstraintsNotCriticalCACRL.crl",
+    "third_party/nist-pkits/crls/basicConstraintsNotCriticalcAFalseCACRL.crl",
+    "third_party/nist-pkits/crls/BasicSelfIssuedCRLSigningKeyCACRL.crl",
+    "third_party/nist-pkits/crls/BasicSelfIssuedCRLSigningKeyCRLCertCRL.crl",
+    "third_party/nist-pkits/crls/BasicSelfIssuedNewKeyCACRL.crl",
+    "third_party/nist-pkits/crls/BasicSelfIssuedOldKeyCACRL.crl",
+    "third_party/nist-pkits/crls/BasicSelfIssuedOldKeySelfIssuedCertCRL.crl",
+    "third_party/nist-pkits/crls/deltaCRLCA1CRL.crl",
+    "third_party/nist-pkits/crls/deltaCRLCA1deltaCRL.crl",
+    "third_party/nist-pkits/crls/deltaCRLCA2CRL.crl",
+    "third_party/nist-pkits/crls/deltaCRLCA2deltaCRL.crl",
+    "third_party/nist-pkits/crls/deltaCRLCA3CRL.crl",
+    "third_party/nist-pkits/crls/deltaCRLCA3deltaCRL.crl",
+    "third_party/nist-pkits/crls/deltaCRLIndicatorNoBaseCACRL.crl",
+    "third_party/nist-pkits/crls/distributionPoint1CACRL.crl",
+    "third_party/nist-pkits/crls/distributionPoint2CACRL.crl",
+    "third_party/nist-pkits/crls/DSACACRL.crl",
+    "third_party/nist-pkits/crls/DSAParametersInheritedCACRL.crl",
+    "third_party/nist-pkits/crls/GeneralizedTimeCRLnextUpdateCACRL.crl",
+    "third_party/nist-pkits/crls/GoodCACRL.crl",
+    "third_party/nist-pkits/crls/GoodsubCACRL.crl",
+    "third_party/nist-pkits/crls/GoodsubCAPanyPolicyMapping1to2CACRL.crl",
+    "third_party/nist-pkits/crls/indirectCRLCA1CRL.crl",
+    "third_party/nist-pkits/crls/indirectCRLCA3CRL.crl",
+    "third_party/nist-pkits/crls/indirectCRLCA3cRLIssuerCRL.crl",
+    "third_party/nist-pkits/crls/indirectCRLCA4cRLIssuerCRL.crl",
+    "third_party/nist-pkits/crls/indirectCRLCA5CRL.crl",
+    "third_party/nist-pkits/crls/inhibitAnyPolicy0CACRL.crl",
+    "third_party/nist-pkits/crls/inhibitAnyPolicy1CACRL.crl",
+    "third_party/nist-pkits/crls/inhibitAnyPolicy1subCA1CRL.crl",
+    "third_party/nist-pkits/crls/inhibitAnyPolicy1subCA2CRL.crl",
+    "third_party/nist-pkits/crls/inhibitAnyPolicy1subCAIAP5CRL.crl",
+    "third_party/nist-pkits/crls/inhibitAnyPolicy1subsubCA2CRL.crl",
+    "third_party/nist-pkits/crls/inhibitAnyPolicy5CACRL.crl",
+    "third_party/nist-pkits/crls/inhibitAnyPolicy5subCACRL.crl",
+    "third_party/nist-pkits/crls/inhibitAnyPolicy5subsubCACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping0CACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping0subCACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping1P12CACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping1P12subCACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping1P12subCAIPM5CRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping1P12subsubCACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping1P12subsubCAIPM5CRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping1P1CACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping1P1subCACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping1P1subsubCACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping5CACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping5subCACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping5subsubCACRL.crl",
+    "third_party/nist-pkits/crls/inhibitPolicyMapping5subsubsubCACRL.crl",
+    "third_party/nist-pkits/crls/keyUsageCriticalcRLSignFalseCACRL.crl",
+    "third_party/nist-pkits/crls/keyUsageCriticalkeyCertSignFalseCACRL.crl",
+    "third_party/nist-pkits/crls/keyUsageNotCriticalCACRL.crl",
+    "third_party/nist-pkits/crls/keyUsageNotCriticalcRLSignFalseCACRL.crl",
+    "third_party/nist-pkits/crls/keyUsageNotCriticalkeyCertSignFalseCACRL.crl",
+    "third_party/nist-pkits/crls/LongSerialNumberCACRL.crl",
+    "third_party/nist-pkits/crls/Mapping1to2CACRL.crl",
+    "third_party/nist-pkits/crls/MappingFromanyPolicyCACRL.crl",
+    "third_party/nist-pkits/crls/MappingToanyPolicyCACRL.crl",
+    "third_party/nist-pkits/crls/MissingbasicConstraintsCACRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDN1CACRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDN1subCA1CRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDN1subCA2CRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDN1subCA3CRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDN2CACRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDN3CACRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDN3subCA1CRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDN3subCA2CRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDN4CACRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDN5CACRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDNS1CACRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsDNS2CACRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsRFC822CA1CRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsRFC822CA2CRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsRFC822CA3CRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsURI1CACRL.crl",
+    "third_party/nist-pkits/crls/nameConstraintsURI2CACRL.crl",
+    "third_party/nist-pkits/crls/NameOrderCACRL.crl",
+    "third_party/nist-pkits/crls/NegativeSerialNumberCACRL.crl",
+    "third_party/nist-pkits/crls/NoissuingDistributionPointCACRL.crl",
+    "third_party/nist-pkits/crls/NoPoliciesCACRL.crl",
+    "third_party/nist-pkits/crls/OldCRLnextUpdateCACRL.crl",
+    "third_party/nist-pkits/crls/onlyContainsAttributeCertsCACRL.crl",
+    "third_party/nist-pkits/crls/onlyContainsCACertsCACRL.crl",
+    "third_party/nist-pkits/crls/onlyContainsUserCertsCACRL.crl",
+    "third_party/nist-pkits/crls/onlySomeReasonsCA1compromiseCRL.crl",
+    "third_party/nist-pkits/crls/onlySomeReasonsCA1otherreasonsCRL.crl",
+    "third_party/nist-pkits/crls/onlySomeReasonsCA2CRL1.crl",
+    "third_party/nist-pkits/crls/onlySomeReasonsCA2CRL2.crl",
+    "third_party/nist-pkits/crls/onlySomeReasonsCA3compromiseCRL.crl",
+    "third_party/nist-pkits/crls/onlySomeReasonsCA3otherreasonsCRL.crl",
+    "third_party/nist-pkits/crls/onlySomeReasonsCA4compromiseCRL.crl",
+    "third_party/nist-pkits/crls/onlySomeReasonsCA4otherreasonsCRL.crl",
+    "third_party/nist-pkits/crls/P12Mapping1to3CACRL.crl",
+    "third_party/nist-pkits/crls/P12Mapping1to3subCACRL.crl",
+    "third_party/nist-pkits/crls/P12Mapping1to3subsubCACRL.crl",
+    "third_party/nist-pkits/crls/P1anyPolicyMapping1to2CACRL.crl",
+    "third_party/nist-pkits/crls/P1Mapping1to234CACRL.crl",
+    "third_party/nist-pkits/crls/P1Mapping1to234subCACRL.crl",
+    "third_party/nist-pkits/crls/PanyPolicyMapping1to2CACRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint0CACRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint0subCA2CRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint0subCACRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint1CACRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint1subCACRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint6CACRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint6subCA0CRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint6subCA1CRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint6subCA4CRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint6subsubCA00CRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint6subsubCA11CRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint6subsubCA41CRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint6subsubsubCA11XCRL.crl",
+    "third_party/nist-pkits/crls/pathLenConstraint6subsubsubCA41XCRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP1234CACRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP1234subCAP123CRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP1234subsubCAP123P12CRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP123CACRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP123subCAP12CRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP123subsubCAP12P1CRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP123subsubCAP2P2CRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP123subsubsubCAP12P2P1CRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP12CACRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP12subCAP1CRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP12subsubCAP1P2CRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP2subCA2CRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP2subCACRL.crl",
+    "third_party/nist-pkits/crls/PoliciesP3CACRL.crl",
+    "third_party/nist-pkits/crls/pre2000CRLnextUpdateCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy0CACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy0subCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy0subsubCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy0subsubsubCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy10CACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy10subCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy10subsubCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy10subsubsubCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy2CACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy2subCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy4CACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy4subCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy4subsubCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy4subsubsubCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy5CACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy5subCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy5subsubCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy5subsubsubCACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy7CACRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy7subCARE2CRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy7subsubCARE2RE4CRL.crl",
+    "third_party/nist-pkits/crls/requireExplicitPolicy7subsubsubCARE2RE4CRL.crl",
+    "third_party/nist-pkits/crls/RevokedsubCACRL.crl",
+    "third_party/nist-pkits/crls/RFC3280MandatoryAttributeTypesCACRL.crl",
+    "third_party/nist-pkits/crls/RFC3280OptionalAttributeTypesCACRL.crl",
+    "third_party/nist-pkits/crls/RolloverfromPrintableStringtoUTF8StringCACRL.crl",
+    "third_party/nist-pkits/crls/SeparateCertificateandCRLKeysCA2CRL.crl",
+    "third_party/nist-pkits/crls/SeparateCertificateandCRLKeysCRL.crl",
+    "third_party/nist-pkits/crls/TrustAnchorRootCRL.crl",
+    "third_party/nist-pkits/crls/TwoCRLsCABadCRL.crl",
+    "third_party/nist-pkits/crls/TwoCRLsCAGoodCRL.crl",
+    "third_party/nist-pkits/crls/UIDCACRL.crl",
+    "third_party/nist-pkits/crls/UnknownCRLEntryExtensionCACRL.crl",
+    "third_party/nist-pkits/crls/UnknownCRLExtensionCACRL.crl",
+    "third_party/nist-pkits/crls/UTF8StringCaseInsensitiveMatchCACRL.crl",
+    "third_party/nist-pkits/crls/UTF8StringEncodedNamesCACRL.crl",
+    "third_party/nist-pkits/crls/WrongCRLCACRL.crl",
   ]
 
   outputs = [ "$root_build_dir/content/test/{{source_root_relative_dir}}/{{source_file_part}}" ]
@@ -3519,6 +4206,7 @@
       ":net_unittest_files",
       ":quic_test_tools",
       ":test_support",
+      ":third_party_unittest_files",
       "//base",
       "//base:i18n",
       "//base/test:test_support",
diff --git a/starboard/BUILD.gn b/starboard/BUILD.gn
index 9b049e5..22b5233 100644
--- a/starboard/BUILD.gn
+++ b/starboard/BUILD.gn
@@ -68,15 +68,24 @@
 }
 
 group("starboard") {
-  public_deps = [ ":starboard_headers_only" ]
+  public_deps = [
+    ":starboard_headers_only",
+    "//starboard/client_porting/cwrappers",
+    "//starboard/client_porting/eztime",
+  ]
 
   if (sb_is_evergreen) {
-    public_deps += []
+    public_deps += [
+      "//starboard/elf_loader:sabi_string",
+      "//third_party/llvm-project/compiler-rt:compiler_rt",
+      "//third_party/llvm-project/libcxx:cxx",
+      "//third_party/llvm-project/libcxxabi:cxxabi",
+      "//third_party/llvm-project/libunwind:unwind_evergreen",
+      "//third_party/musl:c",
+    ]
   } else {
     public_deps += [
       "//$starboard_path:starboard_platform",
-      "//starboard/client_porting/cwrappers",
-      "//starboard/client_porting/eztime",
       "//starboard/common",
     ]
 
diff --git a/starboard/android/apk/app/src/main/java/dev/cobalt/media/CobaltMediaSession.java b/starboard/android/apk/app/src/main/java/dev/cobalt/media/CobaltMediaSession.java
index 4a95898..a310b15 100644
--- a/starboard/android/apk/app/src/main/java/dev/cobalt/media/CobaltMediaSession.java
+++ b/starboard/android/apk/app/src/main/java/dev/cobalt/media/CobaltMediaSession.java
@@ -232,16 +232,20 @@
     wakeLock(playbackState == PLAYBACK_STATE_PLAYING);
     audioFocus(playbackState == PLAYBACK_STATE_PLAYING);
 
-    boolean activating = true;
-    boolean deactivating = false;
+    boolean activating = playbackState != PLAYBACK_STATE_NONE;
+    boolean deactivating = playbackState == PLAYBACK_STATE_NONE;
     if (mediaSession != null) {
-      activating = playbackState != PLAYBACK_STATE_NONE && !mediaSession.isActive();
-      deactivating = playbackState == PLAYBACK_STATE_NONE && mediaSession.isActive();
+      activating = activating && !mediaSession.isActive();
+      deactivating = deactivating && mediaSession.isActive();
     }
     if (activating) {
       // Resuming or new playbacks land here.
       setMediaSession();
     }
+    if (mediaSession == null) {
+      Log.i(TAG, "MediaSession already released");
+      return;
+    }
     mediaSession.setActive(playbackState != PLAYBACK_STATE_NONE);
     if (lifecycleCallback != null) {
       lifecycleCallback.onMediaSessionLifecycle(
diff --git a/starboard/android/apk/build.gradle b/starboard/android/apk/build.gradle
index 27edbf5..302652a 100644
--- a/starboard/android/apk/build.gradle
+++ b/starboard/android/apk/build.gradle
@@ -20,7 +20,7 @@
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.6.3'
+        classpath 'com.android.tools.build:gradle:4.1.0'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
@@ -49,7 +49,7 @@
 // Move the 'buildDir' for all projects into sub-directories of a shared top-level build directory,
 // which is either the root's original 'buildDir' or a custom location when building for platform
 // deploy.  Note that the platform deploy action sets a custom 'cobaltGradleDir' property rather
-// than setting 'buildDir' directly on the command line since Gradle trys to get smart about
+// than setting 'buildDir' directly on the command line since Gradle tries to get smart about
 // 'buildDir' which can end up putting it at the wrong depth in the file system.
 def rootBuildDir = hasProperty('cobaltGradleDir') ? new File(cobaltGradleDir, 'build') : buildDir
 allprojects { buildDir = new File(rootBuildDir, project.name).canonicalFile }
diff --git a/starboard/android/apk/gradle/wrapper/gradle-wrapper.properties b/starboard/android/apk/gradle/wrapper/gradle-wrapper.properties
index 0ebb310..186b715 100644
--- a/starboard/android/apk/gradle/wrapper/gradle-wrapper.properties
+++ b/starboard/android/apk/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/starboard/android/shared/cobalt/BUILD.gn b/starboard/android/shared/cobalt/BUILD.gn
new file mode 100644
index 0000000..bbcc89c
--- /dev/null
+++ b/starboard/android/shared/cobalt/BUILD.gn
@@ -0,0 +1,25 @@
+# Copyright 2021 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+static_library("cobalt_platform") {
+  sources = [
+    "android_user_authorizer.cc",
+    "android_user_authorizer.h",
+  ]
+  deps = [
+    "//cobalt/base",
+    "//starboard/android/shared:starboard_platform",
+    "//starboard/common",
+  ]
+}
diff --git a/starboard/android/shared/media_decoder.cc b/starboard/android/shared/media_decoder.cc
index d6c7f71..44095f7 100644
--- a/starboard/android/shared/media_decoder.cc
+++ b/starboard/android/shared/media_decoder.cc
@@ -170,6 +170,10 @@
   SB_DCHECK(!error_cb_);
 
   error_cb_ = error_cb;
+
+  if (error_occurred_) {
+    Schedule(std::bind(error_cb_, error_, error_message_));
+  }
 }
 
 void MediaDecoder::WriteInputBuffer(
@@ -445,7 +449,7 @@
           " greater than |byte_buffer.capacity()| (%d).",
           size, static_cast<int>(byte_buffer.capacity()));
       SB_LOG(ERROR) << error_message;
-      error_cb_(kSbPlayerErrorDecode, error_message);
+      ReportError(kSbPlayerErrorDecode, error_message);
       return false;
     }
     byte_buffer.CopyInto(data, size);
@@ -512,13 +516,13 @@
     drm_system_->OnInsufficientOutputProtection();
   } else {
     if (media_type_ == kSbMediaTypeAudio) {
-      error_cb_(kSbPlayerErrorDecode,
-                FormatString("%s failed with status %d (audio).", action_name,
-                             status));
+      ReportError(kSbPlayerErrorDecode,
+                  FormatString("%s failed with status %d (audio).", action_name,
+                               status));
     } else {
-      error_cb_(kSbPlayerErrorDecode,
-                FormatString("%s failed with status %d (video).", action_name,
-                             status));
+      ReportError(kSbPlayerErrorDecode,
+                  FormatString("%s failed with status %d (video).", action_name,
+                               status));
     }
   }
 
@@ -532,6 +536,24 @@
   }
 }
 
+void MediaDecoder::ReportError(const SbPlayerError error,
+                               const std::string error_message) {
+  if (!BelongsToCurrentThread()) {
+    Schedule(std::bind(&MediaDecoder::ReportError, this, error, error_message));
+    return;
+  }
+  if (error_occurred_) {
+    // Avoid to report error multiple times.
+    return;
+  }
+  error_occurred_ = true;
+  error_ = error;
+  error_message_ = error_message;
+  if (error_cb_) {
+    error_cb_(error_, error_message_);
+  }
+}
+
 void MediaDecoder::OnMediaCodecError(bool is_recoverable,
                                      bool is_transient,
                                      const std::string& diagnostic_info) {
@@ -539,16 +561,17 @@
                   << (is_recoverable ? "recoverable, " : "unrecoverable, ")
                   << (is_transient ? "transient " : "intransient ")
                   << " error with message: " << diagnostic_info;
-
+  // The callback may be called on a different thread and before |error_cb_| is
+  // initialized.
   if (!is_transient) {
     if (media_type_ == kSbMediaTypeAudio) {
-      error_cb_(kSbPlayerErrorDecode,
-                "OnMediaCodecError (audio): " + diagnostic_info +
-                    (is_recoverable ? ", recoverable " : ", unrecoverable "));
+      ReportError(kSbPlayerErrorDecode,
+                  "OnMediaCodecError (audio): " + diagnostic_info +
+                      (is_recoverable ? ", recoverable " : ", unrecoverable "));
     } else {
-      error_cb_(kSbPlayerErrorDecode,
-                "OnMediaCodecError (video): " + diagnostic_info +
-                    (is_recoverable ? ", recoverable " : ", unrecoverable "));
+      ReportError(kSbPlayerErrorDecode,
+                  "OnMediaCodecError (video): " + diagnostic_info +
+                      (is_recoverable ? ", recoverable " : ", unrecoverable "));
     }
   }
 }
diff --git a/starboard/android/shared/media_decoder.h b/starboard/android/shared/media_decoder.h
index 569036a..423d6ac 100644
--- a/starboard/android/shared/media_decoder.h
+++ b/starboard/android/shared/media_decoder.h
@@ -32,6 +32,7 @@
 #include "starboard/shared/internal_only.h"
 #include "starboard/shared/starboard/player/filter/common.h"
 #include "starboard/shared/starboard/player/input_buffer_internal.h"
+#include "starboard/shared/starboard/player/job_queue.h"
 #include "starboard/shared/starboard/thread_checker.h"
 
 namespace starboard {
@@ -40,7 +41,9 @@
 
 // TODO: Better encapsulation the MediaCodecBridge so the decoders no longer
 //       need to talk directly to the MediaCodecBridge.
-class MediaDecoder : private MediaCodecBridge::Handler {
+class MediaDecoder
+    : private MediaCodecBridge::Handler,
+      protected ::starboard::shared::starboard::player::JobQueue::JobOwner {
  public:
   typedef ::starboard::shared::starboard::player::filter::ErrorCB ErrorCB;
   typedef ::starboard::shared::starboard::player::InputBuffer InputBuffer;
@@ -143,6 +146,7 @@
   bool ProcessOneInputBuffer(std::deque<Event>* pending_tasks,
                              std::vector<int>* input_buffer_indices);
   void HandleError(const char* action_name, jint status);
+  void ReportError(const SbPlayerError error, const std::string error_message);
 
   // MediaCodecBridge::Handler methods
   // Note that these methods are called from the default looper and is not on
@@ -169,6 +173,10 @@
 
   ErrorCB error_cb_;
 
+  bool error_occurred_ = false;
+  SbPlayerError error_;
+  std::string error_message_;
+
   atomic_bool stream_ended_;
 
   atomic_bool destroying_;
diff --git a/starboard/android/shared/platform_configuration/configuration.gni b/starboard/android/shared/platform_configuration/configuration.gni
index 9cc420a..32bf7c5 100644
--- a/starboard/android/shared/platform_configuration/configuration.gni
+++ b/starboard/android/shared/platform_configuration/configuration.gni
@@ -55,3 +55,10 @@
 
 sb_widevine_platform = "android"
 platform_tests_path = "//starboard/android/shared:starboard_platform_tests"
+
+cobalt_licenses_platform = "android"
+
+enable_account_manager = true
+
+cobalt_platform_dependencies =
+    [ "//starboard/android/shared/cobalt:cobalt_platform" ]
diff --git a/starboard/benchmark/BUILD.gn b/starboard/benchmark/BUILD.gn
index 39319c7..7fd1215 100644
--- a/starboard/benchmark/BUILD.gn
+++ b/starboard/benchmark/BUILD.gn
@@ -25,6 +25,7 @@
     "//starboard",
     "//third_party/google_benchmark",
   ]
+  deps = cobalt_platform_dependencies
 
   configs += [ "//starboard/build/config:starboard_implementation" ]
 }
diff --git a/starboard/build/config/BUILD.gn b/starboard/build/config/BUILD.gn
index e25a934..5491f81 100644
--- a/starboard/build/config/BUILD.gn
+++ b/starboard/build/config/BUILD.gn
@@ -18,6 +18,7 @@
   if (is_debug) {
     defines += [
       "STARBOARD_BUILD_TYPE_DEBUG",
+      "COBALT_BUILD_TYPE_DEBUG",
       "_DEBUG",
     ]
   }
@@ -25,6 +26,7 @@
   if (is_devel) {
     defines += [
       "STARBOARD_BUILD_TYPE_DEVEL",
+      "COBALT_BUILD_TYPE_DEVEL",
       "_DEBUG",
     ]
   }
@@ -32,6 +34,7 @@
   if (is_qa) {
     defines += [
       "STARBOARD_BUILD_TYPE_QA",
+      "COBALT_BUILD_TYPE_QA",
       "NDEBUG",
     ]
   }
@@ -39,6 +42,7 @@
   if (is_gold) {
     defines += [
       "STARBOARD_BUILD_TYPE_GOLD",
+      "COBALT_BUILD_TYPE_GOLD",
       "NDEBUG",
     ]
   }
@@ -101,6 +105,13 @@
       defines += [ "SB_GN_GL_TYPE_IS_NONE=0" ]
     }
 
+    if (!is_gold) {
+      defines += [
+        "ENABLE_DEBUGGER",
+        "ENABLE_DEBUG_COMMAND_LINE_SWITCHES",
+      ]
+    }
+
     if (abort_on_allocation_failure) {
       defines += [ "SB_ABORT_ON_ALLOCATION_FAILURE" ]
     }
diff --git a/starboard/build/config/base_configuration.gni b/starboard/build/config/base_configuration.gni
index 8aaad47..16893bf 100644
--- a/starboard/build/config/base_configuration.gni
+++ b/starboard/build/config/base_configuration.gni
@@ -120,4 +120,20 @@
 
   # A symbolizer path for ASAN can be added to allow translation of callstacks.
   asan_symbolizer_path = ""
+
+  # Sub-directory to copy license file to.
+  cobalt_licenses_platform = "default"
+
+  # Set to true to enable H5vccAccountManager.
+  enable_account_manager = false
+
+  # Set to true to enable H5vccSSO (Single Sign On).
+  enable_sso = false
+
+  # Set to true to enable filtering of HTTP headers before sending.
+  enable_xhr_header_filtering = false
+
+  # TODO(b/173248397): Migrate to CobaltExtensions or PlatformServices.
+  # List of platform-specific targets that get compiled into cobalt.
+  cobalt_platform_dependencies = []
 }
diff --git a/starboard/common/BUILD.gn b/starboard/common/BUILD.gn
index 28920c1..43e1716 100644
--- a/starboard/common/BUILD.gn
+++ b/starboard/common/BUILD.gn
@@ -18,8 +18,16 @@
 # This must be a static_library, not a source_set. When using a source_set, we
 # see duplicate definition errors when compiling new.cc because of our
 # overloaded operators.
+source_set("common_headers_only") {
+  sources = [ "log.h" ]
+  deps = [ "//starboard:starboard_headers_only" ]
+}
+
 static_library("common") {
-  public_deps = [ "//starboard:starboard_headers_only" ]
+  public_deps = [
+    ":common_headers_only",
+    "//starboard:starboard_headers_only",
+  ]
   check_includes = false
 
   sources = [
@@ -38,7 +46,6 @@
     "flat_map.h",
     "locked_ptr.h",
     "log.cc",
-    "log.h",
     "media.cc",
     "media.h",
     "move.h",
diff --git a/starboard/elf_loader/BUILD.gn b/starboard/elf_loader/BUILD.gn
index 9ce393b..6b7d3f4 100644
--- a/starboard/elf_loader/BUILD.gn
+++ b/starboard/elf_loader/BUILD.gn
@@ -95,6 +95,13 @@
     "//cobalt/content/fonts:copy_font_data",
     "//starboard",
   ]
+
+  # TODO: Remove this dependency once MediaSession is migrated to use CobaltExtensions.
+  deps += cobalt_platform_dependencies
+
+  if (!sb_is_evergreen_compatible) {
+    deps += [ "//third_party/crashpad/wrapper:wrapper_stub" ]
+  }
 }
 
 target(final_executable_type, "elf_loader_sys_sandbox") {
@@ -122,6 +129,10 @@
     ":sabi_string",
     "//starboard",
   ]
+
+  if (!sb_is_evergreen_compatible) {
+    deps += [ "//third_party/crashpad/wrapper:wrapper_stub" ]
+  }
 }
 
 target(gtest_target_type, "elf_loader_test") {
@@ -147,6 +158,7 @@
       ":copy_elf_loader_testdata",
       ":elf_loader",
     ]
+    deps += cobalt_platform_dependencies
   }
 }
 
diff --git a/starboard/evergreen/shared/platform_configuration/BUILD.gn b/starboard/evergreen/shared/platform_configuration/BUILD.gn
index 3b7e11b..08c8621 100644
--- a/starboard/evergreen/shared/platform_configuration/BUILD.gn
+++ b/starboard/evergreen/shared/platform_configuration/BUILD.gn
@@ -150,7 +150,7 @@
     defines += [ "ADDRESS_SANITIZER" ]
 
     if (asan_symbolizer_path != "") {
-      defines += [ "ASAN_SYMBOLIZER_PATH='${asan_symbolizer_path}'" ]
+      defines += [ "ASAN_SYMBOLIZER_PATH=\"${asan_symbolizer_path}\"" ]
     }
   } else if (use_tsan) {
     cflags += [
diff --git a/starboard/evergreen/shared/platform_configuration/configuration.gni b/starboard/evergreen/shared/platform_configuration/configuration.gni
index 8d2f2e0..44586a3 100644
--- a/starboard/evergreen/shared/platform_configuration/configuration.gni
+++ b/starboard/evergreen/shared/platform_configuration/configuration.gni
@@ -34,3 +34,5 @@
     "//starboard/evergreen/shared/platform_configuration:pedantic_warnings"
 no_pedantic_warnings_config_path =
     "//starboard/evergreen/shared/platform_configuration:no_pedantic_warnings"
+
+cobalt_licenses_platform = "evergreen"
diff --git a/starboard/linux/shared/BUILD.gn b/starboard/linux/shared/BUILD.gn
index 47b019f..ea46558 100644
--- a/starboard/linux/shared/BUILD.gn
+++ b/starboard/linux/shared/BUILD.gn
@@ -71,8 +71,6 @@
     "//starboard/linux/shared/player_components_factory.cc",
     "//starboard/linux/shared/routes.cc",
     "//starboard/linux/shared/routes.h",
-    "//starboard/linux/shared/soft_mic_platform_service.cc",
-    "//starboard/linux/shared/soft_mic_platform_service.h",
     "//starboard/linux/shared/system_get_connection_type.cc",
     "//starboard/linux/shared/system_get_device_type.cc",
     "//starboard/linux/shared/system_get_extensions.cc",
diff --git a/starboard/linux/shared/platform_configuration/BUILD.gn b/starboard/linux/shared/platform_configuration/BUILD.gn
index 7d23495..684a926 100644
--- a/starboard/linux/shared/platform_configuration/BUILD.gn
+++ b/starboard/linux/shared/platform_configuration/BUILD.gn
@@ -102,6 +102,9 @@
       "-Wl,-u_sanitizer_options_link_helper",
     ]
     defines += [ "ADDRESS_SANITIZER" ]
+    if (asan_symbolizer_path != "") {
+      defines += [ "ASAN_SYMBOLIZER_PATH=\"${asan_symbolizer_path}\"" ]
+    }
   } else if (use_tsan) {
     cflags += [
       "-fsanitize=thread",
diff --git a/starboard/linux/shared/soft_mic_platform_service.cc b/starboard/linux/shared/soft_mic_platform_service.cc
deleted file mode 100644
index 8636b1d..0000000
--- a/starboard/linux/shared/soft_mic_platform_service.cc
+++ /dev/null
@@ -1,167 +0,0 @@
-// Copyright 2021 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "starboard/linux/shared/soft_mic_platform_service.h"
-
-#include <string>
-
-#include "cobalt/extension/platform_service.h"
-#include "starboard/common/log.h"
-#include "starboard/common/string.h"
-#include "starboard/shared/starboard/application.h"
-
-typedef struct CobaltExtensionPlatformServicePrivate {
-  void* context;
-  ReceiveMessageCallback receive_callback;
-  const char* name;
-
-  ~CobaltExtensionPlatformServicePrivate() {
-    if (name) {
-      delete[] name;
-    }
-  }
-} CobaltExtensionPlatformServicePrivate;
-
-// Omit namespace linux due to symbol name conflict.
-namespace starboard {
-namespace shared {
-
-namespace {
-
-const char kGetMicSupport[] = "\"getMicSupport\"";
-const char kNotifySearchActive[] = "\"notifySearchActive\"";
-const char kNotifySearchInactive[] = "\"notifySearchInactive\"";
-const char kHasHardMicSupport[] = "has_hard_mic_support";
-const char kHasSoftMicSupport[] = "has_soft_mic_support";
-
-// Helper method for constructing JSON response string.
-inline const char* boolToChar(bool value) {
-  return value ? "true" : "false";
-}
-
-bool Has(const char* name) {
-  // Check if platform has service name.
-  SB_LOG(INFO) << "Has(): " << name;
-  return strcmp(name, "com.google.youtube.tv.SoftMic") == 0;
-}
-
-CobaltExtensionPlatformService Open(void* context,
-                                    const char* name,
-                                    ReceiveMessageCallback receive_callback) {
-  SB_DCHECK(context);
-  if (!Has(name)) {
-    SB_LOG(ERROR) << "Cannot open service, does not exist: " << name;
-    return kCobaltExtensionPlatformServiceInvalid;
-  }
-
-  CobaltExtensionPlatformService service =
-      new CobaltExtensionPlatformServicePrivate(
-          {context, receive_callback, name});
-  SB_LOG(INFO) << "Open() Service created: " << name;
-  return service;
-}
-
-void Close(CobaltExtensionPlatformService service) {
-  SB_LOG(INFO) << "Close() Service";
-  delete static_cast<CobaltExtensionPlatformServicePrivate*>(service);
-}
-
-void* Send(CobaltExtensionPlatformService service,
-           void* data,
-           uint64_t length,
-           uint64_t* output_length,
-           bool* invalid_state) {
-  SB_DCHECK(data);
-  SB_DCHECK(length);
-  SB_DCHECK(output_length);
-  SB_DCHECK(invalid_state);
-
-  char* message = new char[length + 1];
-  for (auto i = 0; i < length; i++)
-    message[i] = *(static_cast<char*>(data) + i);
-  message[length] = '\0';
-
-  SB_LOG(INFO) << "Send() message: " << message;
-
-  if (strcmp(message, kGetMicSupport) == 0) {
-    // Process "getMicSupport" web app message.
-    SB_LOG(INFO) << "Send() kGetMicSupport message received";
-
-    auto has_hard_mic = false;
-    auto has_soft_mic = true;
-
-#if !defined(COBALT_BUILD_TYPE_GOLD)
-    using shared::starboard::Application;
-
-    // Check for explicit true or false switch value for kHasHardMicSupport and
-    // kHasSoftMicSupport optional target params. If neither are set use
-    // defaults.
-    auto command_line = Application::Get()->GetCommandLine();
-
-    auto hard_mic_switch_value =
-        command_line->GetSwitchValue(kHasHardMicSupport);
-    if (strcmp("true", hard_mic_switch_value.c_str()) == 0) {
-      has_hard_mic = true;
-    } else if (strcmp("false", hard_mic_switch_value.c_str()) == 0) {
-      has_hard_mic = false;
-    }
-
-    auto soft_mic_switch_value =
-        command_line->GetSwitchValue(kHasSoftMicSupport);
-    if (strcmp("true", soft_mic_switch_value.c_str()) == 0) {
-      has_soft_mic = true;
-    } else if (strcmp("false", soft_mic_switch_value.c_str()) == 0) {
-      has_soft_mic = false;
-    }
-#endif  // !defined(COBALT_BUILD_TYPE_GOLD)
-
-    auto response = FormatString(
-        "{\"hasHardMicSupport\": %s, \"hasSoftMicSupport\": %s}",
-        (has_hard_mic ? "true" : "false"), (has_soft_mic ? "true" : "false"));
-
-    // Here we are synchronously calling the receive_callback() from within
-    // Send() which is unnecessary. Implementations should prioritize
-    // returning from Send() ASAP to avoid blocking the JavaScript thread.
-    static_cast<CobaltExtensionPlatformServicePrivate*>(service)
-        ->receive_callback(service->context, response.c_str(),
-                           response.length());
-  } else if (strcmp(message, kNotifySearchActive) == 0) {
-    // Process "notifySearchActive" web app message.
-    SB_LOG(INFO) << "Send() kNotifySearchActive message received";
-  } else if (strcmp(message, kNotifySearchInactive) == 0) {
-    // Process "notifySearchInactive" web app message.
-    SB_LOG(INFO) << "Send() kNotifySearchInactive message received";
-  }
-
-  delete[] message;
-  // The web app does not expect a synchronous response.
-  return nullptr;
-}
-
-const CobaltExtensionPlatformServiceApi kPlatformServiceApi = {
-    kCobaltExtensionPlatformServiceName,
-    1,  // API version that's implemented.
-    &Has,
-    &Open,
-    &Close,
-    &Send};
-
-}  // namespace
-
-const void* GetPlatformServiceApi() {
-  return &kPlatformServiceApi;
-}
-
-}  // namespace shared
-}  // namespace starboard
diff --git a/starboard/linux/shared/soft_mic_platform_service.h b/starboard/linux/shared/soft_mic_platform_service.h
deleted file mode 100644
index 93f0e0d..0000000
--- a/starboard/linux/shared/soft_mic_platform_service.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2021 The Cobalt Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef STARBOARD_LINUX_SHARED_SOFT_MIC_PLATFORM_SERVICE_H_
-#define STARBOARD_LINUX_SHARED_SOFT_MIC_PLATFORM_SERVICE_H_
-
-// Omit namespace linux due to symbol name conflict.
-namespace starboard {
-namespace shared {
-
-const void* GetPlatformServiceApi();
-
-}  // namespace shared
-}  // namespace starboard
-
-#endif  // STARBOARD_LINUX_SHARED_SOFT_MIC_PLATFORM_SERVICE_H_
diff --git a/starboard/linux/shared/starboard_platform.gypi b/starboard/linux/shared/starboard_platform.gypi
index b245f3a..fef07e1 100644
--- a/starboard/linux/shared/starboard_platform.gypi
+++ b/starboard/linux/shared/starboard_platform.gypi
@@ -40,8 +40,6 @@
       '<(DEPTH)/starboard/linux/shared/player_components_factory.cc',
       '<(DEPTH)/starboard/linux/shared/routes.cc',
       '<(DEPTH)/starboard/linux/shared/routes.h',
-      '<(DEPTH)/starboard/linux/shared/soft_mic_platform_service.cc',
-      '<(DEPTH)/starboard/linux/shared/soft_mic_platform_service.h',
       '<(DEPTH)/starboard/linux/shared/system_get_connection_type.cc',
       '<(DEPTH)/starboard/linux/shared/system_get_device_type.cc',
       '<(DEPTH)/starboard/linux/shared/system_get_extensions.cc',
diff --git a/starboard/linux/shared/system_get_extensions.cc b/starboard/linux/shared/system_get_extensions.cc
index 0a154b2..3411d93 100644
--- a/starboard/linux/shared/system_get_extensions.cc
+++ b/starboard/linux/shared/system_get_extensions.cc
@@ -17,9 +17,7 @@
 #include "cobalt/extension/configuration.h"
 #include "cobalt/extension/crash_handler.h"
 #include "cobalt/extension/memory_mapped_file.h"
-#include "cobalt/extension/platform_service.h"
 #include "starboard/common/string.h"
-#include "starboard/linux/shared/soft_mic_platform_service.h"
 #include "starboard/shared/posix/memory_mapped_file.h"
 #include "starboard/shared/starboard/crash_handler.h"
 #if SB_IS(EVERGREEN_COMPATIBLE)
@@ -39,9 +37,6 @@
     }
   }
 #endif
-  if (strcmp(name, kCobaltExtensionPlatformServiceName) == 0) {
-    return starboard::shared::GetPlatformServiceApi();
-  }
   if (strcmp(name, kCobaltExtensionConfigurationName) == 0) {
     return starboard::shared::GetConfigurationApi();
   }
diff --git a/starboard/loader_app/BUILD.gn b/starboard/loader_app/BUILD.gn
index 481ccc8..9ce5395 100644
--- a/starboard/loader_app/BUILD.gn
+++ b/starboard/loader_app/BUILD.gn
@@ -39,6 +39,7 @@
       "//cobalt/content/fonts:copy_font_data",
       "//starboard/elf_loader",
     ]
+    deps += cobalt_platform_dependencies
   }
 }
 
@@ -58,6 +59,7 @@
       "//cobalt/content/fonts:copy_font_data",
       "//starboard/elf_loader:elf_loader_sys",
     ]
+    deps += cobalt_platform_dependencies
   }
 }
 
diff --git a/starboard/nplb/BUILD.gn b/starboard/nplb/BUILD.gn
index db60e73..6ca3e60 100644
--- a/starboard/nplb/BUILD.gn
+++ b/starboard/nplb/BUILD.gn
@@ -271,6 +271,7 @@
   }
 
   deps = [ "//starboard/nplb/testdata/file_tests:nplb_file_tests_data" ]
+  deps += cobalt_platform_dependencies
 
   if (is_internal_build) {
     deps += [ "//starboard/private/nplb:nplb_private" ]
diff --git a/starboard/nplb/media_can_play_mime_and_key_system_test.cc b/starboard/nplb/media_can_play_mime_and_key_system_test.cc
index 4c7457c..4c94240 100644
--- a/starboard/nplb/media_can_play_mime_and_key_system_test.cc
+++ b/starboard/nplb/media_can_play_mime_and_key_system_test.cc
@@ -12,10 +12,13 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+#include "starboard/nplb/media_can_play_mime_and_key_system_test_helpers.h"
+
 #include "starboard/common/string.h"
 #include "starboard/media.h"
 #include "starboard/nplb/drm_helpers.h"
 #include "starboard/nplb/performance_helpers.h"
+#include "starboard/time.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace starboard {
@@ -789,9 +792,32 @@
 }
 
 TEST(SbMediaCanPlayMimeAndKeySystem, ValidatePerformance) {
-  TEST_PERF_FUNCWITHARGS_DEFAULT(
-      SbMediaCanPlayMimeAndKeySystem,
-      "video/webm; codecs=\"vp9\"; width=256; height=144; framerate=30", "");
+  auto test_sequential_function_calls =
+      [](const char** mime_params, int num_function_calls,
+         SbTimeMonotonic max_time_delta, const char* query_type) {
+        const SbTimeMonotonic time_start = SbTimeGetMonotonicNow();
+        for (int i = 0; i < num_function_calls; ++i) {
+          SbMediaCanPlayMimeAndKeySystem(mime_params[i], "");
+        }
+        const SbTimeMonotonic time_last = SbTimeGetMonotonicNow();
+        const SbTimeMonotonic time_delta = time_last - time_start;
+        const double time_per_call =
+            static_cast<double>(time_delta) / num_function_calls;
+
+        SB_LOG(INFO) << "SbMediaCanPlayMimeAndKeySystem - " << query_type
+                     << " measured duration " << time_delta
+                     << "us total across " << num_function_calls << " calls.";
+        SB_LOG(INFO) << "  Measured duration " << time_per_call
+                     << "us average per call.";
+        EXPECT_LE(time_delta, max_time_delta);
+      };
+
+  test_sequential_function_calls(kSdrQueryParams,
+                                 SB_ARRAY_SIZE_INT(kSdrQueryParams),
+                                 10 * kSbTimeMillisecond, "SDR queries");
+  test_sequential_function_calls(kHdrQueryParams,
+                                 SB_ARRAY_SIZE_INT(kHdrQueryParams),
+                                 20 * kSbTimeMillisecond, "HDR queries");
 }
 
 }  // namespace
diff --git a/starboard/nplb/media_can_play_mime_and_key_system_test_helpers.h b/starboard/nplb/media_can_play_mime_and_key_system_test_helpers.h
new file mode 100644
index 0000000..a48201a
--- /dev/null
+++ b/starboard/nplb/media_can_play_mime_and_key_system_test_helpers.h
@@ -0,0 +1,211 @@
+// Copyright 2021 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef STARBOARD_NPLB_MEDIA_CAN_PLAY_MIME_AND_KEY_SYSTEM_TEST_HELPERS_H_
+#define STARBOARD_NPLB_MEDIA_CAN_PLAY_MIME_AND_KEY_SYSTEM_TEST_HELPERS_H_
+
+namespace starboard {
+namespace nplb {
+
+// Query params from https://youtu.be/iXvy8ZeCs5M.
+static const char* kSdrQueryParams[] = {
+    "video/mp4; codecs=\"avc1.42001E\"",
+    "audio/mp4; codecs=\"mp4a.40.2\"",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.16.09.00\"",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.99.99.00\"",
+    "audio/webm; codecs=\"opus\"",
+    "audio/webm; codecs=\"opus\"; channels=2",
+    "audio/webm; codecs=\"opus\"; channels=99",
+    "video/mp4; codecs=av01.0.05M.08",
+    "video/webm; codecs=\"vp9\"",
+    "video/webm; codecs=\"vp9\"; width=640",
+    "video/webm; codecs=\"vp9\"; width=99999",
+    "video/webm; codecs=\"vp9\"",
+    "video/webm; codecs=\"vp9\"; height=360",
+    "video/webm; codecs=\"vp9\"; height=99999",
+    "video/webm; codecs=\"vp9\"",
+    "video/webm; codecs=\"vp9\"; framerate=30",
+    "video/webm; codecs=\"vp9\"; framerate=9999",
+    "video/webm; codecs=\"vp9\"; width=3840; height=2160; bitrate=2000000",
+    "video/webm; codecs=\"vp9\"; width=3840; height=2160; bitrate=20000000",
+    "video/webm; codecs=\"vp9\"",
+    "video/webm; codecs=\"vp9\"; bitrate=300000",
+    "video/webm; codecs=\"vp9\"; bitrate=2000000000",
+    "video/mp4; codecs=\"avc1.4d4015\"; width=426; height=240; framerate=24; "
+    "bitrate=233713",
+    "video/mp4; codecs=\"avc1.4d401e\"; width=640; height=360; framerate=24; "
+    "bitrate=422012",
+    "audio/mp4; codecs=\"mp4a.40.2\"; channels=2",
+    "video/mp4; codecs=\"avc1.4d400c\"; width=256; height=144; framerate=24; "
+    "bitrate=110487",
+    "video/webm; codecs=\"vp9\"",
+    "video/webm; codecs=\"vp9\"; eotf=bt709",
+    "video/webm; codecs=\"vp9\"; eotf=catavision",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=426; "
+    "height=240; framerate=24; bitrate=191916; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=640; "
+    "height=360; framerate=24; bitrate=400973; eotf=bt709",
+    "audio/webm; codecs=\"opus\"; channels=2",
+    "audio/webm; codecs=\"opus\"; channels=2",
+    "video/mp4; codecs=\"av01.0.00M.08\"; width=256; height=144; framerate=24; "
+    "bitrate=76146; eotf=bt709",
+    "video/mp4; codecs=\"av01.0.00M.08\"; width=426; height=240; framerate=24; "
+    "bitrate=156234; eotf=bt709",
+    "video/mp4; codecs=\"av01.0.01M.08\"; width=640; height=360; framerate=24; "
+    "bitrate=302046; eotf=bt709",
+    "audio/webm; codecs=\"opus\"",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\""};
+
+// Query params from https://youtu.be/1La4QzGeaaQ.
+static const char* kHdrQueryParams[] = {
+    "video/webm; codecs=\"vp09.02.51.10.01.09.16.09.00\"",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.99.99.00\"",
+    "audio/webm; codecs=\"opus\"",
+    "audio/webm; codecs=\"opus\"; channels=2",
+    "audio/webm; codecs=\"opus\"; channels=99",
+    "video/mp4; codecs=av01.0.05M.08",
+    "video/mp4; codecs=av99.0.05M.08",
+    "video/webm; codecs=\"vp9\"",
+    "video/webm; codecs=\"vp9\"; height=360",
+    "video/webm; codecs=\"vp9\"; height=99999",
+    "video/webm; codecs=\"vp9\"; width=3840; height=2160; bitrate=2000000",
+    "video/webm; codecs=\"vp9\"",
+    "video/webm; codecs=\"vp9\"; bitrate=300000",
+    "video/webm; codecs=\"vp9\"; bitrate=2000000000",
+    "video/webm; codecs=\"vp9\"",
+    "video/webm; codecs=\"vp9\"; width=640",
+    "video/webm; codecs=\"vp9\"; width=99999",
+    "video/webm; codecs=\"vp9\"",
+    "video/webm; codecs=\"vp9\"; framerate=30",
+    "video/webm; codecs=\"vp9\"; framerate=9999",
+    "video/mp4; codecs=\"avc1.4d4015\"; width=426; height=240; framerate=30; "
+    "bitrate=296736",
+    "video/mp4; codecs=\"avc1.4d401e\"; width=640; height=360; framerate=30; "
+    "bitrate=700126",
+    "video/mp4; codecs=\"avc1.4d401f\"; width=854; height=480; framerate=30; "
+    "bitrate=1357113",
+    "video/mp4; codecs=\"avc1.4d401f\"; width=1280; height=720; framerate=30; "
+    "bitrate=2723992",
+    "audio/mp4; codecs=\"mp4a.40.2\"; channels=2",
+    "video/mp4; codecs=\"avc1.4d400c\"; width=256; height=144; framerate=30; "
+    "bitrate=123753",
+    "video/webm; codecs=\"vp9\"",
+    "video/webm; codecs=\"vp9\"; eotf=bt709",
+    "video/webm; codecs=\"vp9\"; eotf=catavision",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=426; "
+    "height=240; framerate=30; bitrate=202710; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=640; "
+    "height=360; framerate=30; bitrate=427339; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=854; "
+    "height=480; framerate=30; bitrate=782821; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=1280; "
+    "height=720; framerate=30; bitrate=1542503; eotf=bt709",
+    "audio/webm; codecs=\"opus\"; channels=2",
+    "audio/webm; codecs=\"opus\"; channels=2",
+    "video/mp4; codecs=\"avc1.4d4020\"; width=1280; height=720; framerate=60; "
+    "bitrate=3488936",
+    "video/mp4; codecs=\"avc1.64002a\"; width=1920; height=1080; framerate=60; "
+    "bitrate=5833750",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=1280; "
+    "height=720; framerate=60; bitrate=2676194; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=1920; "
+    "height=1080; framerate=60; bitrate=4461346; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=2560; "
+    "height=1440; framerate=60; bitrate=13384663; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=3840; "
+    "height=2160; framerate=60; bitrate=26752474; eotf=bt709",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.16.09.00\"; width=256; "
+    "height=144; framerate=60; bitrate=245561",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.16.09.00\"; width=426; "
+    "height=240; framerate=60; bitrate=500223",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.16.09.00\"; width=640; "
+    "height=360; framerate=60; bitrate=1064485",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.16.09.00\"; width=854; "
+    "height=480; framerate=60; bitrate=1998847",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.16.09.00\"; width=1280; "
+    "height=720; framerate=60; bitrate=4556353",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.16.09.00\"; width=1920; "
+    "height=1080; framerate=60; bitrate=6946958",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.16.09.00\"; width=2560; "
+    "height=1440; framerate=60; bitrate=16930005",
+    "video/webm; codecs=\"vp09.02.51.10.01.09.16.09.00\"; width=3840; "
+    "height=2160; framerate=60; bitrate=30184402",
+    "video/mp4; codecs=\"av01.0.00M.10.0.110.09.16.09.0\"; width=256; "
+    "height=144; framerate=30; bitrate=89195; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.00M.10.0.110.09.16.09.0\"; width=426; "
+    "height=240; framerate=30; bitrate=172861; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.01M.10.0.110.09.16.09.0\"; width=640; "
+    "height=360; framerate=30; bitrate=369517; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.04M.10.0.110.09.16.09.0\"; width=854; "
+    "height=480; framerate=30; bitrate=695606; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.08M.10.0.110.09.16.09.0\"; width=1280; "
+    "height=720; framerate=60; bitrate=2017563; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.09M.10.0.110.09.16.09.0\"; width=1920; "
+    "height=1080; framerate=60; bitrate=3755257; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.12M.10.0.110.09.16.09.0\"; width=2560; "
+    "height=1440; framerate=60; bitrate=8546165; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.13M.10.0.110.09.16.09.0\"; width=3840; "
+    "height=2160; framerate=60; bitrate=17537773; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.17M.10.0.110.09.16.09.0\"; width=7680; "
+    "height=4320; framerate=60; bitrate=37270368; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.00M.10.0.110.09.16.09.0\"; width=256; "
+    "height=144; framerate=60; bitrate=193907; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.01M.10.0.110.09.16.09.0\"; width=426; "
+    "height=240; framerate=60; bitrate=400353; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.04M.10.0.110.09.16.09.0\"; width=640; "
+    "height=360; framerate=60; bitrate=817812; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.05M.10.0.110.09.16.09.0\"; width=854; "
+    "height=480; framerate=60; bitrate=1558025; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.08M.10.0.110.09.16.09.0\"; width=1280; "
+    "height=720; framerate=60; bitrate=4167668; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.09M.10.0.110.09.16.09.0\"; width=1920; "
+    "height=1080; framerate=60; bitrate=6870811; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.12M.10.0.110.09.16.09.0\"; width=2560; "
+    "height=1440; framerate=60; bitrate=17316706; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.13M.10.0.110.09.16.09.0\"; width=3840; "
+    "height=2160; framerate=60; bitrate=31942925; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.17M.10.0.110.09.16.09.0\"; width=7680; "
+    "height=4320; framerate=60; bitrate=66038840; eotf=smpte2084",
+    "video/mp4; codecs=\"av01.0.17M.10.0.110.09.16.09.0\"; width=7680; "
+    "height=4320; framerate=60; bitrate=45923436; eotf=smpte2084",
+    "video/mp4; codecs=\"avc1.4d4015\"; width=426; height=240; framerate=24; "
+    "bitrate=160590",
+    "video/mp4; codecs=\"avc1.4d401e\"; width=640; height=360; framerate=24; "
+    "bitrate=255156",
+    "video/mp4; codecs=\"avc1.4d401e\"; width=854; height=480; framerate=24; "
+    "bitrate=490890",
+    "video/mp4; codecs=\"avc1.4d401f\"; width=1280; height=720; framerate=24; "
+    "bitrate=1000556",
+    "video/mp4; codecs=\"avc1.640028\"; width=1920; height=1080; framerate=24; "
+    "bitrate=1810004",
+    "audio/mp4; codecs=\"mp4a.40.2\"; channels=2",
+    "video/mp4; codecs=\"avc1.4d400c\"; width=256; height=144; framerate=24; "
+    "bitrate=82746",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=426; "
+    "height=240; framerate=24; bitrate=178701; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=640; "
+    "height=360; framerate=24; bitrate=371303; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=854; "
+    "height=480; framerate=24; bitrate=579918; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=1280; "
+    "height=720; framerate=24; bitrate=999223; eotf=bt709",
+    "video/webm; codecs=\"vp09.00.51.08.01.01.01.01.00\"; width=1920; "
+    "height=1080; framerate=24; bitrate=1814623; eotf=bt709",
+    "audio/webm; codecs=\"opus\"; channels=2",
+    "audio/webm; codecs=\"opus\"; channels=2"};
+
+}  // namespace nplb
+}  // namespace starboard
+
+#endif  // STARBOARD_NPLB_MEDIA_CAN_PLAY_MIME_AND_KEY_SYSTEM_TEST_HELPERS_H_
diff --git a/starboard/nplb/nplb.gyp b/starboard/nplb/nplb.gyp
index 3d496e3..3d9fe68 100644
--- a/starboard/nplb/nplb.gyp
+++ b/starboard/nplb/nplb.gyp
@@ -126,6 +126,7 @@
         # files.
         'media_buffer_test.cc',
         'media_can_play_mime_and_key_system_test.cc',
+        'media_can_play_mime_and_key_system_test_helpers.h',
         'media_configuration_test.cc',
         'memory_align_to_page_size_test.cc',
         'memory_allocate_aligned_test.cc',
diff --git a/starboard/shared/starboard/player/filter/testing/BUILD.gn b/starboard/shared/starboard/player/filter/testing/BUILD.gn
index c1d4ba7..755b4e4 100644
--- a/starboard/shared/starboard/player/filter/testing/BUILD.gn
+++ b/starboard/shared/starboard/player/filter/testing/BUILD.gn
@@ -38,6 +38,8 @@
     "//starboard/shared/starboard/media:media_util",
     "//testing/gmock",
   ]
+
+  deps = cobalt_platform_dependencies
 }
 
 if (!is_win) {
@@ -53,6 +55,8 @@
       ":test_util",
       "//third_party/google_benchmark",
     ]
+
+    deps = cobalt_platform_dependencies
   }
 }
 
diff --git a/starboard/shared/starboard/player/player_worker.cc b/starboard/shared/starboard/player/player_worker.cc
index a17ab85..5ab9a8a 100644
--- a/starboard/shared/starboard/player/player_worker.cc
+++ b/starboard/shared/starboard/player/player_worker.cc
@@ -216,9 +216,13 @@
   SB_DCHECK(job_queue_->BelongsToCurrentThread());
 
   SB_DCHECK(player_state_ != kSbPlayerStateDestroyed);
-  SB_DCHECK(!error_occurred_);
   SB_DCHECK(ticket_ != ticket);
 
+  if (error_occurred_) {
+    SB_LOG(ERROR) << "Tried to seek after error occurred.";
+    return;
+  }
+
   SB_DLOG(INFO) << "Try to seek to " << seek_to_time << " microseconds.";
 
   if (write_pending_sample_job_token_.is_valid()) {
diff --git a/starboard/stub/platform_configuration/BUILD.gn b/starboard/stub/platform_configuration/BUILD.gn
index f897308..ab1385e 100644
--- a/starboard/stub/platform_configuration/BUILD.gn
+++ b/starboard/stub/platform_configuration/BUILD.gn
@@ -22,6 +22,7 @@
       "-Wno-unused-parameter",
     ]
   } else {
+    cflags_cc = [ "-std=gnu++14" ]
     ldflags = [ "-static-libstdc++" ]
 
     if (is_debug) {
diff --git a/third_party/crashpad/compat/linux/sys/mman.cc b/third_party/crashpad/compat/linux/sys/mman.cc
index 12aaa2c..044dbca 100644
--- a/third_party/crashpad/compat/linux/sys/mman.cc
+++ b/third_party/crashpad/compat/linux/sys/mman.cc
@@ -22,7 +22,7 @@
 
 extern "C" {
 
-int memfd_create(const char* name, unsigned int flags) {
+int memfd_create(const char* name, unsigned int flags) __THROW {
   using MemfdCreateType = int (*)(const char*, int);
   static const MemfdCreateType next_memfd_create =
       reinterpret_cast<MemfdCreateType>(dlsym(RTLD_NEXT, "memfd_create"));
diff --git a/third_party/crashpad/compat/linux/sys/mman.h b/third_party/crashpad/compat/linux/sys/mman.h
index 61c55d7..43155da 100644
--- a/third_party/crashpad/compat/linux/sys/mman.h
+++ b/third_party/crashpad/compat/linux/sys/mman.h
@@ -29,7 +29,7 @@
 extern "C" {
 #endif
 
-int memfd_create(const char* name, unsigned int flags);
+int memfd_create(const char* name, unsigned int flags) __THROW;
 
 #ifdef __cplusplus
 }  // extern "C"
diff --git a/third_party/devtools/BUILD.gn b/third_party/devtools/BUILD.gn
index e505be2..f12b7e1 100644
--- a/third_party/devtools/BUILD.gn
+++ b/third_party/devtools/BUILD.gn
@@ -2,7 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//third_party/blink/public/public_features.gni")
+import("//third_party/devtools/third_party/blink/public/public_features.gni")
 
 all_devtools_files = [
   "front_end/accessibility/accessibilityNode.css",
@@ -1128,6 +1128,10 @@
   "front_end/test_runner/module.json",
 ]
 
+if (is_starboard) {
+  devtools_test_files -= [ "//third_party/axe-core/axe.js" ]
+}
+
 devtools_embedder_scripts = [
   "front_end/devtools_compatibility.js",
   "front_end/Tests.js",
@@ -1782,6 +1786,18 @@
   "$resources_out_dir/worker_app.js",
 ]
 
+if (is_starboard) {
+  generated_applications -= [
+    "$resources_out_dir/audits_worker.js",
+    "$resources_out_dir/js_app.html",
+    "$resources_out_dir/js_app.js",
+    "$resources_out_dir/node_app.html",
+    "$resources_out_dir/node_app.js",
+    "$resources_out_dir/toolbox.html",
+    "$resources_out_dir/toolbox.js",
+  ]
+}
+
 generated_non_autostart_non_remote_modules = [
   "$resources_out_dir/animation/animation_module.js",
   "$resources_out_dir/audits/audits_module.js",
@@ -1884,6 +1900,17 @@
   "worker_app",
 ]
 
+if (is_starboard) {
+  devtools_applications -= [
+    "audits_worker",
+    "integration_test_runner",
+    "js_app",
+    "ndb_app",
+    "node_app",
+    "toolbox",
+  ]
+}
+
 #-------------------------------------------------------------------------------
 
 group("devtools_all_files") {
@@ -1912,6 +1939,18 @@
   ":copy_devtools_modules",
 ]
 
+if (is_starboard) {
+  devtools_frontend_resources_deps -= [
+    ":aria_properties",
+    ":copy_embedder_scripts",
+    ":copy_emulated_devices_images",
+    ":copy_htaccess",
+    ":copy_lighthouse_locale_files",
+    ":copy_wasm_deps",
+    ":devtools_extension_api",
+  ]
+}
+
 if (debug_devtools) {
   devtools_frontend_resources_deps += [
     ":build_debug_devtools",
@@ -1975,41 +2014,43 @@
   ]
 }
 
-action("generate_devtools_grd") {
-  script = "scripts/build/generate_devtools_grd.py"
+if (!is_starboard) {
+  action("generate_devtools_grd") {
+    script = "scripts/build/generate_devtools_grd.py"
 
-  deps = [
-    ":devtools_frontend_resources",
-  ]
+    deps = [
+      ":devtools_frontend_resources",
+    ]
 
-  grd_files =
-      copied_devtools_modules + generated_applications +
-      generated_non_autostart_non_remote_modules + devtools_embedder_scripts +
-      generated_scripts + generated_worker_bundles +
-      [
-        "$resources_out_dir/devtools_extension_api.js",
-        "$resources_out_dir/sdk/wasm_source_map/pkg/wasm_source_map_bg.wasm",
-      ]
+    grd_files =
+        copied_devtools_modules + generated_applications +
+        generated_non_autostart_non_remote_modules + devtools_embedder_scripts +
+        generated_scripts + generated_worker_bundles +
+        [
+          "$resources_out_dir/devtools_extension_api.js",
+          "$resources_out_dir/sdk/wasm_source_map/pkg/wasm_source_map_bg.wasm",
+        ]
 
-  inputs = grd_files + devtools_image_files
-  outfile = "$root_gen_dir/devtools/devtools_resources.grd"
-  outputs = [
-    outfile,
-  ]
+    inputs = grd_files + devtools_image_files
+    outfile = "$root_gen_dir/devtools/devtools_resources.grd"
+    outputs = [
+      outfile,
+    ]
 
-  relative_path_dirs = [
-    resources_out_dir,
-    "front_end",
-  ]
+    relative_path_dirs = [
+      resources_out_dir,
+      "front_end",
+    ]
 
-  args = rebase_path(grd_files, root_build_dir) + [ "--relative_path_dirs" ] +
-         rebase_path(relative_path_dirs, root_build_dir) +
-         [
-           "--images",
-           rebase_path("front_end/Images", root_build_dir),
-           "--output",
-           rebase_path(outfile, root_build_dir),
-         ]
+    args = rebase_path(grd_files, root_build_dir) + [ "--relative_path_dirs" ] +
+          rebase_path(relative_path_dirs, root_build_dir) +
+          [
+            "--images",
+            rebase_path("front_end/Images", root_build_dir),
+            "--output",
+            rebase_path(outfile, root_build_dir),
+          ]
+  }
 }
 
 action("devtools_extension_api") {
@@ -2028,9 +2069,15 @@
 action("supported_css_properties") {
   script = "scripts/build/generate_supported_css.py"
 
-  inputs = [
-    "//third_party/blink/renderer/core/css/css_properties.json5",
-  ]
+  if (is_starboard) {
+    inputs = [
+      "blink/properties/CSSProperties.json5",
+    ]
+  } else {
+    inputs = [
+      "//third_party/blink/renderer/core/css/css_properties.json5",
+    ]
+  }
 
   outputs = [
     "$resources_out_dir/SupportedCSSProperties.js",
@@ -2040,26 +2087,34 @@
       rebase_path(inputs, root_build_dir) + rebase_path(outputs, root_build_dir)
 }
 
-action("aria_properties") {
-  script = "scripts/build/generate_aria.py"
+if (!is_starboard) {
+  action("aria_properties") {
+    script = "scripts/build/generate_aria.py"
 
-  inputs = [
-    "//third_party/blink/renderer/core/html/aria_properties.json5",
-  ]
+    inputs = [
+      "//third_party/blink/renderer/core/html/aria_properties.json5",
+    ]
 
-  outputs = [
-    "$resources_out_dir/accessibility/ARIAProperties.js",
-  ]
+    outputs = [
+      "$resources_out_dir/accessibility/ARIAProperties.js",
+    ]
 
-  args =
-      rebase_path(inputs, root_build_dir) + rebase_path(outputs, root_build_dir)
+    args =
+        rebase_path(inputs, root_build_dir) + rebase_path(outputs, root_build_dir)
+  }
 }
 
 action("frontend_protocol_sources") {
   script = "scripts/build/code_generator_frontend.py"
-  deps = [
-    "//third_party/blink/public/devtools_protocol:protocol_version",
-  ]
+  if (is_starboard) {
+    deps = [
+      "third_party/blink/public/devtools_protocol:protocol_version",
+    ]
+  } else {
+    deps = [
+      "//third_party/blink/public/devtools_protocol:protocol_version",
+    ]
+  }
   inputs = [
     "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json",
   ]
@@ -2074,7 +2129,8 @@
 }
 
 action("build_release_devtools") {
-  script = "scripts/build/build_release_applications.py"
+  script = "//starboard/build/run_bash.py"
+  py_script = "scripts/build/build_release_applications.py"
 
   deps = [
     ":aria_properties",
@@ -2082,6 +2138,10 @@
     ":supported_css_properties",
   ]
 
+  if (is_starboard) {
+    deps -= [ ":aria_properties" ]
+  }
+
   helper_scripts = [
     "scripts/build/modular_build.py",
     "scripts/build/rjsmin.py",
@@ -2098,7 +2158,17 @@
       generated_remote_modules + generated_test_modules +
       generated_worker_bundles
 
-  args = devtools_applications + [
+  if (is_starboard) {
+    inputs -= generated_aria_properties
+    outputs -= generated_remote_modules
+    outputs -= generated_test_modules
+  }
+
+  args = [
+           "python2",
+           rebase_path(py_script, root_build_dir),
+         ] + devtools_applications +
+         [
            "--input_path",
            rebase_path("front_end", root_build_dir),
            "--output_path",
@@ -2107,7 +2177,8 @@
 }
 
 action("copy_devtools_modules") {
-  script = "scripts/build/copy_devtools_modules.py"
+  script = "//starboard/build/run_bash.py"
+  py_script = "scripts/build/copy_devtools_modules.py"
 
   deps = [
     ":build_release_devtools",
@@ -2116,7 +2187,11 @@
   inputs = all_devtools_modules
   outputs = copied_devtools_modules
 
-  args = all_devtools_modules + [
+  args = [
+           "python2",
+           rebase_path(py_script, root_build_dir),
+         ] + all_devtools_modules +
+         [
            "--input_path",
            rebase_path(".", root_build_dir),
            "--output_path",
diff --git a/third_party/devtools/scripts/build/generate_supported_css.py b/third_party/devtools/scripts/build/generate_supported_css.py
index 6df3086..3077c05 100755
--- a/third_party/devtools/scripts/build/generate_supported_css.py
+++ b/third_party/devtools/scripts/build/generate_supported_css.py
@@ -38,7 +38,7 @@
 
 
 def _keep_only_required_keys(entry):
-    for key in entry.keys():
+    for key in list(entry.keys()):
         if key not in ("name", "longhands", "svg", "inherited", "keywords"):
             del entry[key]
     return entry
diff --git a/third_party/devtools/third_party/blink/public/devtools_protocol/BUILD.gn b/third_party/devtools/third_party/blink/public/devtools_protocol/BUILD.gn
index 66e0c36..f5bec1c 100644
--- a/third_party/devtools/third_party/blink/public/devtools_protocol/BUILD.gn
+++ b/third_party/devtools/third_party/blink/public/devtools_protocol/BUILD.gn
@@ -2,8 +2,8 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-browser_protocol_pdl = "//third_party/blink/public/devtools_protocol/browser_protocol.pdl"
-js_protocol_pdl = "//v8/include/js_protocol.pdl"
+browser_protocol_pdl = "//third_party/devtools/third_party/blink/public/devtools_protocol/browser_protocol.pdl"
+js_protocol_pdl = "//third_party/v8/include/js_protocol.pdl"
 
 action("protocol_version") {
   script = "//third_party/inspector_protocol/concatenate_protocols.py"
diff --git a/third_party/icu/BUILD.gn b/third_party/icu/BUILD.gn
index c36739b..8c9c1a1 100644
--- a/third_party/icu/BUILD.gn
+++ b/third_party/icu/BUILD.gn
@@ -14,6 +14,10 @@
   import("//build/config/sanitizers/sanitizers.gni")
 }
 
+if (is_starboard) {
+  import("//cobalt/build/contents_dir.gni")
+}
+
 assert(!icu_disable_thin_archive || !is_component_build,
        "icu_disable_thin_archive only works in static library builds")
 
@@ -53,6 +57,14 @@
     "UCONFIG_NO_REGULAR_EXPRESSIONS"
   ]
 
+  if (is_starboard) {
+    defines -= [
+      "USE_CHROMIUM_ICU=1",
+      "U_ENABLE_TRACING=1",
+      "U_ENABLE_RESOURCE_TRACING=0",
+    ]
+  }
+
   if (!is_component_build) {
     defines += [ "U_STATIC_IMPLEMENTATION" ]
   }
@@ -373,7 +385,16 @@
 data_bundle = "${data_bundle_prefix}.dat"
 
 if (icu_use_data_file) {
-  if (is_ios) {
+  if (is_starboard) {
+    not_needed([ "data_bundle", "data_dir" ])
+    copy("icudata") {
+      filename = "icudt68l.dat"
+      sources = [ "$static_contents_source_dir/icu/$filename"]
+      output = "$sb_static_contents_output_data_dir/icu/$filename"
+      outputs = [ output ]
+      data = [ output ]
+    }
+  } else if (is_ios) {
     bundle_data("icudata") {
       sources = [ "$data_dir/$data_bundle" ]
       outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
diff --git a/third_party/libjpeg-turbo/BUILD.gn b/third_party/libjpeg-turbo/BUILD.gn
index ab09f6e..c8905a5 100644
--- a/third_party/libjpeg-turbo/BUILD.gn
+++ b/third_party/libjpeg-turbo/BUILD.gn
@@ -31,7 +31,7 @@
   }
 }
 
-if (current_cpu == "x86" || current_cpu == "x64") {
+if (yasm_exists && (current_cpu == "x86" || current_cpu == "x64")) {
   if (is_starboard) {
     import("//starboard/build/nasm_assemble.gni")
   } else {
@@ -150,10 +150,10 @@
   include_dirs = [ "." ]
   deps = [ ":libjpeg_headers" ]
 
-  if (current_cpu == "x86") {
+  if (current_cpu == "x86" && yasm_exists) {
     deps += [ ":simd_asm" ]
     sources = [ "simd/i386/jsimd.c" ]
-  } else if (current_cpu == "x64") {
+  } else if (current_cpu == "x64" && yasm_exists) {
     deps += [ ":simd_asm" ]
     sources = [ "simd/x86_64/jsimd.c" ]
   } else if ((current_cpu == "arm" || current_cpu == "arm64") && arm_use_neon) {
@@ -188,7 +188,9 @@
 
     defines = [ "NEON_INTRINSICS" ]
 
-    configs -= [ "//build/config/compiler:default_optimization" ]
+    if (!is_starboard) {
+      configs -= [ "//build/config/compiler:default_optimization" ]
+    }
     configs += [ "//build/config/compiler:optimize_speed" ]
   } else {
     sources = [ "jsimd_none.c" ]
@@ -224,7 +226,9 @@
     "jctrans.c",
     "jdapimin.c",
     "jdapistd.c",
+    "jdatadst-tj.c",
     "jdatadst.c",
+    "jdatasrc-tj.c",
     "jdatasrc.c",
     "jdcoefct.c",
     "jdcolor.c",
@@ -254,6 +258,8 @@
     "jquant1.c",
     "jquant2.c",
     "jutils.c",
+    "transupp.c",
+    "turbojpeg.c",
   ]
 
   defines = [
@@ -267,12 +273,14 @@
       "jcarith.c",
       "jdarith.c",
     ]
+
     # These dependencies are needed for file io
     # and are not currently used by Cobalt
     sources -= [
       "jdatadst.c",
       "jdatasrc.c",
     ]
+
     # This is defined in code.
     defines -= [ "NO_GETENV" ]
   }
diff --git a/third_party/libxml/BUILD.gn b/third_party/libxml/BUILD.gn
index cc230d2..1f249ba 100644
--- a/third_party/libxml/BUILD.gn
+++ b/third_party/libxml/BUILD.gn
@@ -150,6 +150,7 @@
     visibility += [
       "//base/test:test_support",
       "//cobalt/base",
+      "//cobalt/dom_parser",
       "//cobalt/renderer/rasterizer/skia/skia",
     ]
   }
@@ -247,7 +248,7 @@
     "src/parserInternals.c",
     "src/pattern.c",
 
-    #"src/relaxng.c",
+    "src/relaxng.c",
     "src/save.h",
 
     #"src/schematron.c",
@@ -276,17 +277,17 @@
     #"src/xmlmodule.c",
     "src/xmlreader.c",
 
-    #"src/xmlregexp.c",
+    "src/xmlregexp.c",
     "src/xmlsave.c",
 
-    #"src/xmlschemas.c",
-    #"src/xmlschemastypes.c",
+    "src/xmlschemas.c",
+    "src/xmlschemastypes.c",
     "src/xmlstring.c",
     "src/xmlunicode.c",
     "src/xmlwriter.c",
     "src/xpath.c",
 
-    #"src/xpointer.c",
+    "src/xpointer.c",
     #"src/xzlib.c",
     "src/xzlib.h",
     "win32/config.h",
diff --git a/third_party/llvm-project/libcxx/BUILD.gn b/third_party/llvm-project/libcxx/BUILD.gn
index 60c976e..83f05f6 100644
--- a/third_party/llvm-project/libcxx/BUILD.gn
+++ b/third_party/llvm-project/libcxx/BUILD.gn
@@ -51,10 +51,6 @@
 
 static_library("cxx") {
   sources = [
-    "include/apple_availability.h",
-    "include/atomic_support.h",
-    "include/config_elast.h",
-    "include/refstring.h",
     "src/algorithm.cpp",
     "src/any.cpp",
     "src/bind.cpp",
@@ -62,6 +58,10 @@
     "src/chrono.cpp",
     "src/condition_variable.cpp",
     "src/exception.cpp",
+    "src/include/apple_availability.h",
+    "src/include/atomic_support.h",
+    "src/include/config_elast.h",
+    "src/include/refstring.h",
 
     # Remove file system operations
     #"src/filesystem/directory_iterator.cpp",
diff --git a/third_party/llvm-project/libunwind/src/AddressSpace.hpp b/third_party/llvm-project/libunwind/src/AddressSpace.hpp
index 08dc656..cf12cf4 100644
--- a/third_party/llvm-project/libunwind/src/AddressSpace.hpp
+++ b/third_party/llvm-project/libunwind/src/AddressSpace.hpp
@@ -45,7 +45,7 @@
 
 #if defined(STARBOARD_IMPLEMENTATION)
 #include "starboard/memory.h"
-#include "starboard/elf_loader/evergreen_info.h"
+#include "starboard/elf_loader/evergreen_info.h"  // nogncheck
 #endif
 
 #ifdef __APPLE__
diff --git a/third_party/musl/BUILD.gn b/third_party/musl/BUILD.gn
index 08059c2..a3b98a6 100644
--- a/third_party/musl/BUILD.gn
+++ b/third_party/musl/BUILD.gn
@@ -499,6 +499,11 @@
       "src/string/memset.c",
     ]
   }
+
+  deps = [
+    "//starboard:starboard_headers_only",
+    "//starboard/common:common_headers_only",
+  ]
 }
 
 target(gtest_target_type, "musl_unittests") {
diff --git a/third_party/protobuf/BUILD.gn b/third_party/protobuf/BUILD.gn
index 46161c7..a377526 100644
--- a/third_party/protobuf/BUILD.gn
+++ b/third_party/protobuf/BUILD.gn
@@ -178,7 +178,10 @@
     "//build/config/compiler:no_size_t_to_int_warning",
   ]
 
-  if (!is_starboard) {
+  if (is_starboard) {
+    public_configs -= [ ":protobuf_config" ]
+    all_dependent_configs = [ ":protobuf_config" ]
+  } else {
     deps = [
       "//build/config/sanitizers:deps",
     ]
diff --git a/third_party/skia/gn/effects_imagefilters.gni b/third_party/skia/gn/effects_imagefilters.gni
index 8a477a2..46448c2 100644
--- a/third_party/skia/gn/effects_imagefilters.gni
+++ b/third_party/skia/gn/effects_imagefilters.gni
@@ -28,7 +28,6 @@
 skia_effects_imagefilter_sources = [
   "$_src/effects/imagefilters/SkAlphaThresholdFilter.cpp",
   "$_src/effects/imagefilters/SkArithmeticImageFilter.cpp",
-  "$_src/effects/imagefilters/SkBlurImageFilter.cpp",
   "$_src/effects/imagefilters/SkColorFilterImageFilter.cpp",
   "$_src/effects/imagefilters/SkComposeImageFilter.cpp",
   "$_src/effects/imagefilters/SkDisplacementMapEffect.cpp",
diff --git a/third_party/woff2/BUILD.gn b/third_party/woff2/BUILD.gn
index 0433da9..8e5c1ba 100644
--- a/third_party/woff2/BUILD.gn
+++ b/third_party/woff2/BUILD.gn
@@ -2,8 +2,6 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-# optimize_target_for_speed
-
 config("woff2_includes") {
   include_dirs = [ "include" ]
 }
@@ -31,6 +29,11 @@
     "//third_party/brotli:dec",
   ]
 
+  if (is_starboard) {
+    configs -= [ "//starboard/build/config:size" ]
+    configs += [ "//starboard/build/config:speed" ]
+  }
+
   public_configs = [ ":woff2_includes" ]
 
   # TODO(ksakamoto): http://crbug.com/167187
