Import Cobalt 19.master.0.203780

Includes the following patches:
  https://cobalt-review.googlesource.com/c/cobalt/+/5210
    by errong.leng@samsung.com
  https://cobalt-review.googlesource.com/c/cobalt/+/5270
    by linus.wang@samsung.com
diff --git a/src/third_party/web_platform_tests/battery-status/battery-charging-manual.html b/src/third_party/web_platform_tests/battery-status/battery-charging-manual.html
new file mode 100644
index 0000000..3eafcac
--- /dev/null
+++ b/src/third_party/web_platform_tests/battery-status/battery-charging-manual.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Battery Test: battery neither empty or full, charger plugged in</title>
+<meta name="flags" content="interact">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<h2>Description</h2>
+<p>
+  This test validates that all of the BatteryManager attributes exist and are set to their correct values when battery is charging.
+</p>
+
+<h2>Preconditions</h2>
+<ol>
+  <li>
+    The device is plugged in to the charger before this test is run.
+  </li>
+  <li>
+    The battery must neither be empty or full, nor reach empty or full capacity during the test.
+  </li>
+  <li>
+    Waiting for battery level change to fire levelchange event, maybe need a long time
+  </li>
+</ol>
+
+<script>
+
+setup({ explicit_timeout: true });
+
+async_test(function (t) {
+  navigator.getBattery().then(function (battery) {
+    t.step(function () {
+      assert_true(battery.charging, 'charging must be set to true');
+      assert_less_than(battery.chargingTime, Infinity, 'chargingTime must be less than Infinity');
+      assert_equals(battery.dischargingTime, Infinity, 'dischargingTime must be set to Infinity');
+      assert_greater_than(battery.level, 0, 'level must be greater than 0');
+      assert_less_than(battery.level, 1.0, 'level must be less than 1.0');
+
+      var battery_level = battery.level;
+      battery.onlevelchange = t.step_func(function () {
+        assert_greater_than(battery.level, battery_level, 'The value of the level attribute must increase');
+        t.done();
+      });
+    });
+  }, function (error) {
+    t.step(function () {
+      assert_unreached(error.message);
+    });
+    t.done();
+  });
+}, document.title);
+
+</script>