Reland "[USVString] Change the type of url with USVString in navigator.sendBeacon"

This is a reland of I66825c20395ea6fd6b26e32fc8f6508fd85aeef7.

Original CL caused a memory leak for the layout test. This CL fixes it speculatively.

Bug: 790860
Change-Id: I0daac689085625b4954bac34991e28addea6f8e1
Reviewed-on: https://chromium-review.googlesource.com/874977
Reviewed-by: Takeshi Yoshino <tyoshino@chromium.org>
Commit-Queue: Gyuyoung Kim <gyuyoung.kim@lge.com>
Cr-Commit-Position: refs/heads/master@{#530424}
diff --git a/html/dom/usvstring-reflection.html b/html/dom/usvstring-reflection.html
index 7b408e0..aaf6c0b 100644
--- a/html/dom/usvstring-reflection.html
+++ b/html/dom/usvstring-reflection.html
@@ -95,8 +95,18 @@
 }, "websocket url : unpaired surrogate codepoint should be replaced with U+FFFD")
 
 test(() => {
+  try {
+    navigator.sendBeacon("resources/\uD800blank.txt");
+    assert_true(true);
+  } catch (e) {
+    assert_true(false);
+  }
+}, "sendBeacon URL: unpaired surrogate codepoint should not make any exceptions.")
+
+test(() => {
   var w = window.open("about:blank#\uD800");
   assert_equals(w.document.URL, 'about:blank#%EF%BF%BD');
   assert_equals(w.document.documentURI, 'about:blank#%EF%BF%BD');
 }, "Document URLs: unpaired surrogate codepoint should be replaced with U+FFFD")
+
 </script>