Updating with "scripts/update-fuchsia-sdk.sh"
Change-Id: I7c54a59e934148c658082402a37307e5a907785d
Reviewed-on: https://fuchsia-review.googlesource.com/c/samples/+/376886
Reviewed-by: third_party Roller <third-party-roller@fuchsia-infra.iam.gserviceaccount.com>
Commit-Queue: third_party Roller <third-party-roller@fuchsia-infra.iam.gserviceaccount.com>
diff --git a/third_party/fuchsia-sdk/.build-id/0c/29ccbca4fdab10.debug b/third_party/fuchsia-sdk/.build-id/0c/29ccbca4fdab10.debug
deleted file mode 100755
index c1e7ff8..0000000
--- a/third_party/fuchsia-sdk/.build-id/0c/29ccbca4fdab10.debug
+++ /dev/null
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/1d/947e70233f958c.debug b/third_party/fuchsia-sdk/.build-id/1d/947e70233f958c.debug
new file mode 100755
index 0000000..c81db0b
--- /dev/null
+++ b/third_party/fuchsia-sdk/.build-id/1d/947e70233f958c.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/33/b2d448d74416ad.debug b/third_party/fuchsia-sdk/.build-id/33/b2d448d74416ad.debug
deleted file mode 100755
index ffda7fd..0000000
--- a/third_party/fuchsia-sdk/.build-id/33/b2d448d74416ad.debug
+++ /dev/null
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/35/046e496d88a5a0.debug b/third_party/fuchsia-sdk/.build-id/35/046e496d88a5a0.debug
new file mode 100755
index 0000000..d1b53f5
--- /dev/null
+++ b/third_party/fuchsia-sdk/.build-id/35/046e496d88a5a0.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/4c/909da57babd26d.debug b/third_party/fuchsia-sdk/.build-id/4c/909da57babd26d.debug
deleted file mode 100755
index c0c8f93..0000000
--- a/third_party/fuchsia-sdk/.build-id/4c/909da57babd26d.debug
+++ /dev/null
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/50/75674b247da3c2.debug b/third_party/fuchsia-sdk/.build-id/50/75674b247da3c2.debug
new file mode 100755
index 0000000..13709ae
--- /dev/null
+++ b/third_party/fuchsia-sdk/.build-id/50/75674b247da3c2.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/67/82a4d0469a59de.debug b/third_party/fuchsia-sdk/.build-id/67/82a4d0469a59de.debug
new file mode 100755
index 0000000..d184d86
--- /dev/null
+++ b/third_party/fuchsia-sdk/.build-id/67/82a4d0469a59de.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/75/bddba18dc130a9.debug b/third_party/fuchsia-sdk/.build-id/75/bddba18dc130a9.debug
new file mode 100755
index 0000000..369afbc
--- /dev/null
+++ b/third_party/fuchsia-sdk/.build-id/75/bddba18dc130a9.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/c4/10147e2fb24e70.debug b/third_party/fuchsia-sdk/.build-id/79/25b5305322d7fc.debug
similarity index 77%
rename from third_party/fuchsia-sdk/.build-id/c4/10147e2fb24e70.debug
rename to third_party/fuchsia-sdk/.build-id/79/25b5305322d7fc.debug
index 777237d..634854b 100755
--- a/third_party/fuchsia-sdk/.build-id/c4/10147e2fb24e70.debug
+++ b/third_party/fuchsia-sdk/.build-id/79/25b5305322d7fc.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/7e/9475a8d268f000.debug b/third_party/fuchsia-sdk/.build-id/7e/9475a8d268f000.debug
new file mode 100755
index 0000000..038d5dd
--- /dev/null
+++ b/third_party/fuchsia-sdk/.build-id/7e/9475a8d268f000.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/7f/e61a8be87f5652.debug b/third_party/fuchsia-sdk/.build-id/7f/e61a8be87f5652.debug
deleted file mode 100755
index bd93f18..0000000
--- a/third_party/fuchsia-sdk/.build-id/7f/e61a8be87f5652.debug
+++ /dev/null
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/80/0ea41e91ffb679.debug b/third_party/fuchsia-sdk/.build-id/80/0ea41e91ffb679.debug
deleted file mode 100755
index d6a1fb9..0000000
--- a/third_party/fuchsia-sdk/.build-id/80/0ea41e91ffb679.debug
+++ /dev/null
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/8c/d47548b9007c1a.debug b/third_party/fuchsia-sdk/.build-id/8c/d47548b9007c1a.debug
new file mode 100755
index 0000000..12da599
--- /dev/null
+++ b/third_party/fuchsia-sdk/.build-id/8c/d47548b9007c1a.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/8d/a971e4ecef91b1.debug b/third_party/fuchsia-sdk/.build-id/8d/a971e4ecef91b1.debug
deleted file mode 100755
index 63f6c1b..0000000
--- a/third_party/fuchsia-sdk/.build-id/8d/a971e4ecef91b1.debug
+++ /dev/null
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/9c/00743baf710b97.debug b/third_party/fuchsia-sdk/.build-id/9c/00743baf710b97.debug
new file mode 100755
index 0000000..5a993b8
--- /dev/null
+++ b/third_party/fuchsia-sdk/.build-id/9c/00743baf710b97.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/a5/8398077c85a053.debug b/third_party/fuchsia-sdk/.build-id/a5/8398077c85a053.debug
deleted file mode 100755
index e6485f1..0000000
--- a/third_party/fuchsia-sdk/.build-id/a5/8398077c85a053.debug
+++ /dev/null
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/b1/5d5c1940e2b127.debug b/third_party/fuchsia-sdk/.build-id/b1/5d5c1940e2b127.debug
new file mode 100755
index 0000000..61df340
--- /dev/null
+++ b/third_party/fuchsia-sdk/.build-id/b1/5d5c1940e2b127.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/d3/8748f7c3c7ef50.debug b/third_party/fuchsia-sdk/.build-id/b3/a89c34864a6bf4.debug
similarity index 75%
rename from third_party/fuchsia-sdk/.build-id/d3/8748f7c3c7ef50.debug
rename to third_party/fuchsia-sdk/.build-id/b3/a89c34864a6bf4.debug
index 917ecb2..61eb25b 100755
--- a/third_party/fuchsia-sdk/.build-id/d3/8748f7c3c7ef50.debug
+++ b/third_party/fuchsia-sdk/.build-id/b3/a89c34864a6bf4.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/b3/ea434ca797c755.debug b/third_party/fuchsia-sdk/.build-id/b3/ea434ca797c755.debug
new file mode 100755
index 0000000..4f19b23
--- /dev/null
+++ b/third_party/fuchsia-sdk/.build-id/b3/ea434ca797c755.debug
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/b6/f5d4b3be9d7491.debug b/third_party/fuchsia-sdk/.build-id/b6/f5d4b3be9d7491.debug
deleted file mode 100755
index cf88307..0000000
--- a/third_party/fuchsia-sdk/.build-id/b6/f5d4b3be9d7491.debug
+++ /dev/null
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/d1/cf2889a3bde4b0.debug b/third_party/fuchsia-sdk/.build-id/d1/cf2889a3bde4b0.debug
deleted file mode 100755
index 89876fe..0000000
--- a/third_party/fuchsia-sdk/.build-id/d1/cf2889a3bde4b0.debug
+++ /dev/null
Binary files differ
diff --git a/third_party/fuchsia-sdk/.build-id/f0/28674383369321.debug b/third_party/fuchsia-sdk/.build-id/f0/28674383369321.debug
deleted file mode 100755
index 0677d2b..0000000
--- a/third_party/fuchsia-sdk/.build-id/f0/28674383369321.debug
+++ /dev/null
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/dist/VkLayer_image_pipe_swapchain.so b/third_party/fuchsia-sdk/arch/arm64/dist/VkLayer_image_pipe_swapchain.so
index 6dfb131..418bb5e 100755
--- a/third_party/fuchsia-sdk/arch/arm64/dist/VkLayer_image_pipe_swapchain.so
+++ b/third_party/fuchsia-sdk/arch/arm64/dist/VkLayer_image_pipe_swapchain.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/dist/libfdio.so b/third_party/fuchsia-sdk/arch/arm64/dist/libfdio.so
index fb89613..f0e8bf9 100755
--- a/third_party/fuchsia-sdk/arch/arm64/dist/libfdio.so
+++ b/third_party/fuchsia-sdk/arch/arm64/dist/libfdio.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/dist/libmemfs.so b/third_party/fuchsia-sdk/arch/arm64/dist/libmemfs.so
index ef2ae74..12064f7 100755
--- a/third_party/fuchsia-sdk/arch/arm64/dist/libmemfs.so
+++ b/third_party/fuchsia-sdk/arch/arm64/dist/libmemfs.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/dist/libsvc.so b/third_party/fuchsia-sdk/arch/arm64/dist/libsvc.so
index 3579716..968a3ce 100755
--- a/third_party/fuchsia-sdk/arch/arm64/dist/libsvc.so
+++ b/third_party/fuchsia-sdk/arch/arm64/dist/libsvc.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/dist/libsyslog.so b/third_party/fuchsia-sdk/arch/arm64/dist/libsyslog.so
index 95ecf74..b70b665 100755
--- a/third_party/fuchsia-sdk/arch/arm64/dist/libsyslog.so
+++ b/third_party/fuchsia-sdk/arch/arm64/dist/libsyslog.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/dist/libtrace-provider-so.so b/third_party/fuchsia-sdk/arch/arm64/dist/libtrace-provider-so.so
index 404e263..1f7fcd7 100755
--- a/third_party/fuchsia-sdk/arch/arm64/dist/libtrace-provider-so.so
+++ b/third_party/fuchsia-sdk/arch/arm64/dist/libtrace-provider-so.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/lib/libfdio.so b/third_party/fuchsia-sdk/arch/arm64/lib/libfdio.so
index ffda7fd..d184d86 100755
--- a/third_party/fuchsia-sdk/arch/arm64/lib/libfdio.so
+++ b/third_party/fuchsia-sdk/arch/arm64/lib/libfdio.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/lib/libmemfs.so b/third_party/fuchsia-sdk/arch/arm64/lib/libmemfs.so
index 0677d2b..13709ae 100755
--- a/third_party/fuchsia-sdk/arch/arm64/lib/libmemfs.so
+++ b/third_party/fuchsia-sdk/arch/arm64/lib/libmemfs.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/lib/libsvc.so b/third_party/fuchsia-sdk/arch/arm64/lib/libsvc.so
index 3579716..968a3ce 100755
--- a/third_party/fuchsia-sdk/arch/arm64/lib/libsvc.so
+++ b/third_party/fuchsia-sdk/arch/arm64/lib/libsvc.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/lib/libsyslog.so b/third_party/fuchsia-sdk/arch/arm64/lib/libsyslog.so
index d6a1fb9..038d5dd 100755
--- a/third_party/fuchsia-sdk/arch/arm64/lib/libsyslog.so
+++ b/third_party/fuchsia-sdk/arch/arm64/lib/libsyslog.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/lib/libtrace-provider-so.so b/third_party/fuchsia-sdk/arch/arm64/lib/libtrace-provider-so.so
index 89876fe..369afbc 100755
--- a/third_party/fuchsia-sdk/arch/arm64/lib/libtrace-provider-so.so
+++ b/third_party/fuchsia-sdk/arch/arm64/lib/libtrace-provider-so.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/sysroot/dist/lib/ld.so.1 b/third_party/fuchsia-sdk/arch/arm64/sysroot/dist/lib/ld.so.1
index 003fcc0..c033119 100755
--- a/third_party/fuchsia-sdk/arch/arm64/sysroot/dist/lib/ld.so.1
+++ b/third_party/fuchsia-sdk/arch/arm64/sysroot/dist/lib/ld.so.1
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/arm64/sysroot/lib/libc.so b/third_party/fuchsia-sdk/arch/arm64/sysroot/lib/libc.so
index 917ecb2..61eb25b 100755
--- a/third_party/fuchsia-sdk/arch/arm64/sysroot/lib/libc.so
+++ b/third_party/fuchsia-sdk/arch/arm64/sysroot/lib/libc.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/dist/VkLayer_image_pipe_swapchain.so b/third_party/fuchsia-sdk/arch/x64/dist/VkLayer_image_pipe_swapchain.so
index 799f231..4c71ebe 100755
--- a/third_party/fuchsia-sdk/arch/x64/dist/VkLayer_image_pipe_swapchain.so
+++ b/third_party/fuchsia-sdk/arch/x64/dist/VkLayer_image_pipe_swapchain.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/dist/libfdio.so b/third_party/fuchsia-sdk/arch/x64/dist/libfdio.so
index 6de8a95..64046cf 100755
--- a/third_party/fuchsia-sdk/arch/x64/dist/libfdio.so
+++ b/third_party/fuchsia-sdk/arch/x64/dist/libfdio.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/dist/libmemfs.so b/third_party/fuchsia-sdk/arch/x64/dist/libmemfs.so
index da77549..a5c24be 100755
--- a/third_party/fuchsia-sdk/arch/x64/dist/libmemfs.so
+++ b/third_party/fuchsia-sdk/arch/x64/dist/libmemfs.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/dist/libsvc.so b/third_party/fuchsia-sdk/arch/x64/dist/libsvc.so
index 0d7576b..d8ed091 100755
--- a/third_party/fuchsia-sdk/arch/x64/dist/libsvc.so
+++ b/third_party/fuchsia-sdk/arch/x64/dist/libsvc.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/dist/libsyslog.so b/third_party/fuchsia-sdk/arch/x64/dist/libsyslog.so
index 18ce66b..c328b9c 100755
--- a/third_party/fuchsia-sdk/arch/x64/dist/libsyslog.so
+++ b/third_party/fuchsia-sdk/arch/x64/dist/libsyslog.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/dist/libtrace-provider-so.so b/third_party/fuchsia-sdk/arch/x64/dist/libtrace-provider-so.so
index bf4f0fd..239a11d 100755
--- a/third_party/fuchsia-sdk/arch/x64/dist/libtrace-provider-so.so
+++ b/third_party/fuchsia-sdk/arch/x64/dist/libtrace-provider-so.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/lib/libfdio.so b/third_party/fuchsia-sdk/arch/x64/lib/libfdio.so
index bd93f18..c81db0b 100755
--- a/third_party/fuchsia-sdk/arch/x64/lib/libfdio.so
+++ b/third_party/fuchsia-sdk/arch/x64/lib/libfdio.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/lib/libmemfs.so b/third_party/fuchsia-sdk/arch/x64/lib/libmemfs.so
index c1e7ff8..61df340 100755
--- a/third_party/fuchsia-sdk/arch/x64/lib/libmemfs.so
+++ b/third_party/fuchsia-sdk/arch/x64/lib/libmemfs.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/lib/libsvc.so b/third_party/fuchsia-sdk/arch/x64/lib/libsvc.so
index 0d7576b..d8ed091 100755
--- a/third_party/fuchsia-sdk/arch/x64/lib/libsvc.so
+++ b/third_party/fuchsia-sdk/arch/x64/lib/libsvc.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/lib/libsyslog.so b/third_party/fuchsia-sdk/arch/x64/lib/libsyslog.so
index 63f6c1b..4f19b23 100755
--- a/third_party/fuchsia-sdk/arch/x64/lib/libsyslog.so
+++ b/third_party/fuchsia-sdk/arch/x64/lib/libsyslog.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/lib/libtrace-provider-so.so b/third_party/fuchsia-sdk/arch/x64/lib/libtrace-provider-so.so
index e6485f1..5a993b8 100755
--- a/third_party/fuchsia-sdk/arch/x64/lib/libtrace-provider-so.so
+++ b/third_party/fuchsia-sdk/arch/x64/lib/libtrace-provider-so.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/sysroot/dist/lib/ld.so.1 b/third_party/fuchsia-sdk/arch/x64/sysroot/dist/lib/ld.so.1
index e3a60fe..8481eea 100755
--- a/third_party/fuchsia-sdk/arch/x64/sysroot/dist/lib/ld.so.1
+++ b/third_party/fuchsia-sdk/arch/x64/sysroot/dist/lib/ld.so.1
Binary files differ
diff --git a/third_party/fuchsia-sdk/arch/x64/sysroot/lib/libc.so b/third_party/fuchsia-sdk/arch/x64/sysroot/lib/libc.so
index 777237d..634854b 100755
--- a/third_party/fuchsia-sdk/arch/x64/sysroot/lib/libc.so
+++ b/third_party/fuchsia-sdk/arch/x64/sysroot/lib/libc.so
Binary files differ
diff --git a/third_party/fuchsia-sdk/bin/devshell/emu b/third_party/fuchsia-sdk/bin/devshell/emu
index de397a4..f7c8178 100755
--- a/third_party/fuchsia-sdk/bin/devshell/emu
+++ b/third_party/fuchsia-sdk/bin/devshell/emu
@@ -12,7 +12,7 @@
 ##   -ds <size> extends the fvm image size to <size> bytes. Default is twice the original size
 ##   -N run with emulated nic via tun/tap
 ##   -I <ifname> uses the tun/tap interface named ifname
-##   -u <path> execute emu if-up script, default is no script
+##   -u <path> execute emu if-up script, default: linux: no script, macos: tap ifup script.
 ##   -e <directory> location of emulator, defaults to looking in prebuilt/third_party/aemu/PLATFORM
 ##   -g <port> enable gRPC service on port to control the emulator, default is 5556 when WebRTC service is enabled
 ##   -r <fps> webrtc frame rate when using gRPC service, default is 30
@@ -44,7 +44,7 @@
 HEADLESS=0
 AEMU="emulator"
 AEMU_DIR=""
-UPSCRIPT=no
+UPSCRIPT=
 WINDOW_SIZE="1280x800"
 GRPC=
 RTCFPS="30"
@@ -322,6 +322,10 @@
       echo "  sudo chown $USER /dev/$IFNAME"
       exit 1
     fi
+    if [[ -z "${UPSCRIPT}" ]]; then
+      echo "sudo follows to configure the tap interface:"
+      UPSCRIPT="${FUCHSIA_DIR}/zircon/scripts/qemu-ifup-macos"
+    fi
   else
     if [[ -z "$IFNAME" ]]; then
       IFNAME="qemu"
@@ -340,8 +344,11 @@
     if (command -v ufw && grep -q "^ENABLED=yes" /etc/ufw/ufw.conf) >/dev/null 2>&1; then
       fx-warn "Active firewall detected: If this emulator is unreachable, run: fx setup-ufw"
     fi
+    if [[ -z "${UPSCRIPT}" ]]; then
+      UPSCRIPT=no
+    fi
   fi
-  ARGS+=("-netdev" "type=tap,ifname=$IFNAME,script=$UPSCRIPT,downscript=no,id=net0")
+  ARGS+=("-netdev" "type=tap,ifname=$IFNAME,id=net0${UPSCRIPT:+,script=${UPSCRIPT}}")
   HASH=$(echo $IFNAME | shasum)
   SUFFIX=$(for i in {0..2}; do echo -n ":${HASH:$(( 2 * i )):2}"; done)
   MAC=",mac=52:54:00$SUFFIX"
diff --git a/third_party/fuchsia-sdk/fidl/fuchsia.cobalt/cobalt.fidl b/third_party/fuchsia-sdk/fidl/fuchsia.cobalt/cobalt.fidl
index 6310165..28e21f0 100644
--- a/third_party/fuchsia-sdk/fidl/fuchsia.cobalt/cobalt.fidl
+++ b/third_party/fuchsia-sdk/fidl/fuchsia.cobalt/cobalt.fidl
@@ -111,7 +111,8 @@
 // LoggerFactory creates Loggers.
 protocol LoggerFactory {
     // Creates a Logger for the project with the given ID, using the state of
-    // the metrics registry that is bundled with Cobalt.
+    // the metrics registry that is bundled with Cobalt. The project must be in
+    // the "fuchsia" customer.
     //
     // `project_id` The ID of the client's Cobalt project.
     //
@@ -123,7 +124,8 @@
         -> (Status status);
 
     // Creates a LoggerSimple for the project with the given ID, using the
-    // state of the metrics registry that is bundled with Cobalt.
+    // state of the metrics registry that is bundled with Cobalt. The project
+    // must be in the "fuchsia" customer.
     //
     // `project_id` The ID of the client's Cobalt project.
     //
@@ -133,6 +135,20 @@
     CreateLoggerSimpleFromProjectId(uint32 project_id,
                                     request<LoggerSimple> logger)
         -> (Status status);
+
+    // Creates a Logger for the project specified, using the state of the
+    // metrics registry that is bundled with Cobalt.
+    //
+    // `customer_id` The ID of the client's Cobalt customer.
+    //
+    // `project_id` The ID of the client's Cobalt project.
+    //
+    // `status` Returns OK on success or INVALID_ARGUMENTS if there is no
+    // project with the given IDs in the version of the metrics registry that
+    // is bundled with Cobalt.
+    CreateLoggerFromProjectSpec(uint32 customer_id, uint32 project_id,
+                                request<Logger> logger)
+        -> (Status status);
 };
 
 // A vector of event codes. When used in one of the Log*() calls below,
diff --git a/third_party/fuchsia-sdk/fidl/fuchsia.net.http/client.fidl b/third_party/fuchsia-sdk/fidl/fuchsia.net.http/client.fidl
index b135c69..2c321f9 100644
--- a/third_party/fuchsia-sdk/fidl/fuchsia.net.http/client.fidl
+++ b/third_party/fuchsia-sdk/fidl/fuchsia.net.http/client.fidl
@@ -70,9 +70,6 @@
     /// Determines when to give up on waiting for a response from the server. If no deadline is
     /// provided, the implementation will provide a reasonable default.
     5: zx.time deadline;
-
-    // Legacy duplicate of |url|, to allow soft-transition to fuchsia.url.Url.
-    6: bytes url_as_bytes;
 };
 
 /// A description of the redirect the server requested.
diff --git a/third_party/fuchsia-sdk/fidl/fuchsia.web/url_request_rewrite_rules.fidl b/third_party/fuchsia-sdk/fidl/fuchsia.web/url_request_rewrite_rules.fidl
index 83d423a..cf64f1b 100644
--- a/third_party/fuchsia-sdk/fidl/fuchsia.web/url_request_rewrite_rules.fidl
+++ b/third_party/fuchsia-sdk/fidl/fuchsia.web/url_request_rewrite_rules.fidl
@@ -31,6 +31,9 @@
 
     /// Replaces a URL if the original URL ends with a pattern.
     4: UrlRequestRewriteReplaceUrl replace_url;
+
+    /// Adds to the URL query.
+    5: UrlRequestRewriteAddQuery add_query;
 };
 
 /// Adds `headers` to the URL request. If a header is already present in the original URL request,
@@ -70,3 +73,11 @@
     1: Url url_ends_with;
     2: Url new_url;
 };
+
+/// Adds the specified `query` parameters to the query section of the URL, creating a query section
+/// if none exists.
+/// - `query` must be set.
+/// - `query` must be a valid [URL-query string](https://url.spec.whatwg.org/#url-query-string).
+table UrlRequestRewriteAddQuery {
+    1: Url query;
+};
diff --git a/third_party/fuchsia-sdk/meta/manifest.json b/third_party/fuchsia-sdk/meta/manifest.json
index 9fa7601..4c9c86d 100644
--- a/third_party/fuchsia-sdk/meta/manifest.json
+++ b/third_party/fuchsia-sdk/meta/manifest.json
@@ -6,7 +6,7 @@
       "x64"
     ]
   },
-  "id": "0.20200330.2.3",
+  "id": "0.20200331.1.1",
   "parts": [
     {
       "meta": "bin/fconfig-meta.json",
diff --git a/third_party/fuchsia-sdk/pkg/fdio/meta.json b/third_party/fuchsia-sdk/pkg/fdio/meta.json
index 0a6f4df..ecb6389 100644
--- a/third_party/fuchsia-sdk/pkg/fdio/meta.json
+++ b/third_party/fuchsia-sdk/pkg/fdio/meta.json
@@ -1,13 +1,13 @@
 {
   "binaries": {
     "arm64": {
-      "debug": ".build-id/33/b2d448d74416ad.debug",
+      "debug": ".build-id/67/82a4d0469a59de.debug",
       "dist": "arch/arm64/dist/libfdio.so",
       "dist_path": "lib/libfdio.so",
       "link": "arch/arm64/lib/libfdio.so"
     },
     "x64": {
-      "debug": ".build-id/7f/e61a8be87f5652.debug",
+      "debug": ".build-id/1d/947e70233f958c.debug",
       "dist": "arch/x64/dist/libfdio.so",
       "dist_path": "lib/libfdio.so",
       "link": "arch/x64/lib/libfdio.so"
diff --git a/third_party/fuchsia-sdk/pkg/memfs/meta.json b/third_party/fuchsia-sdk/pkg/memfs/meta.json
index ef378f7..1306b58 100644
--- a/third_party/fuchsia-sdk/pkg/memfs/meta.json
+++ b/third_party/fuchsia-sdk/pkg/memfs/meta.json
@@ -1,13 +1,13 @@
 {
   "binaries": {
     "arm64": {
-      "debug": ".build-id/f0/28674383369321.debug",
+      "debug": ".build-id/50/75674b247da3c2.debug",
       "dist": "arch/arm64/dist/libmemfs.so",
       "dist_path": "lib/libmemfs.so",
       "link": "arch/arm64/lib/libmemfs.so"
     },
     "x64": {
-      "debug": ".build-id/0c/29ccbca4fdab10.debug",
+      "debug": ".build-id/b1/5d5c1940e2b127.debug",
       "dist": "arch/x64/dist/libmemfs.so",
       "dist_path": "lib/libmemfs.so",
       "link": "arch/x64/lib/libmemfs.so"
diff --git a/third_party/fuchsia-sdk/pkg/scenic_cpp/BUILD.gn b/third_party/fuchsia-sdk/pkg/scenic_cpp/BUILD.gn
index c4c5cb6..340ad70 100644
--- a/third_party/fuchsia-sdk/pkg/scenic_cpp/BUILD.gn
+++ b/third_party/fuchsia-sdk/pkg/scenic_cpp/BUILD.gn
@@ -11,11 +11,13 @@
 fuchsia_sdk_pkg("scenic_cpp") {
   sources = [
     "commands.cc",
+    "commands_sizing.cc",
     "resources.cc",
     "session.cc",
     "view_ref_pair.cc",
     "view_token_pair.cc",
     "include/lib/ui/scenic/cpp/commands.h",
+    "include/lib/ui/scenic/cpp/commands_sizing.h",
     "include/lib/ui/scenic/cpp/id.h",
     "include/lib/ui/scenic/cpp/resources.h",
     "include/lib/ui/scenic/cpp/session.h",
diff --git a/third_party/fuchsia-sdk/pkg/scenic_cpp/commands_sizing.cc b/third_party/fuchsia-sdk/pkg/scenic_cpp/commands_sizing.cc
new file mode 100644
index 0000000..e68723c
--- /dev/null
+++ b/third_party/fuchsia-sdk/pkg/scenic_cpp/commands_sizing.cc
@@ -0,0 +1,18 @@
+// Copyright 2020 The Fuchsia Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <lib/ui/scenic/cpp/commands_sizing.h>
+#include <zircon/types.h>
+
+namespace scenic {
+
+// TODO(fxb/24704): Generate this file using the FIDL JSON IR.
+
+CommandSize MeasureCommand(const fuchsia::ui::scenic::Command& command) {
+    // For now, we size all commands as if they were taking the max bytes and
+    // max handles in order to force safe flushing.
+    return CommandSize(ZX_CHANNEL_MAX_MSG_BYTES, ZX_CHANNEL_MAX_MSG_HANDLES);
+}
+
+}  // namespace scenic
diff --git a/third_party/fuchsia-sdk/pkg/scenic_cpp/include/lib/ui/scenic/cpp/commands_sizing.h b/third_party/fuchsia-sdk/pkg/scenic_cpp/include/lib/ui/scenic/cpp/commands_sizing.h
new file mode 100644
index 0000000..1366eea
--- /dev/null
+++ b/third_party/fuchsia-sdk/pkg/scenic_cpp/include/lib/ui/scenic/cpp/commands_sizing.h
@@ -0,0 +1,25 @@
+// Copyright 2020 The Fuchsia Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef LIB_UI_SCENIC_CPP_COMMANDS_SIZING_H_
+#define LIB_UI_SCENIC_CPP_COMMANDS_SIZING_H_
+
+#include <fuchsia/ui/scenic/cpp/fidl.h>
+
+namespace scenic {
+
+struct CommandSize {
+    explicit CommandSize(int64_t num_bytes, int64_t num_handles)
+        : num_bytes(num_bytes), num_handles(num_handles) {}
+
+    const int64_t num_bytes;
+    const int64_t num_handles;
+};
+
+// Helper function to measure a Scenic command.
+CommandSize MeasureCommand(const fuchsia::ui::scenic::Command& command);
+
+}  // namespace scenic
+
+#endif  // LIB_UI_SCENIC_CPP_COMMANDS_SIZING_H_
diff --git a/third_party/fuchsia-sdk/pkg/scenic_cpp/include/lib/ui/scenic/cpp/session.h b/third_party/fuchsia-sdk/pkg/scenic_cpp/include/lib/ui/scenic/cpp/session.h
index e07a146..782a715 100644
--- a/third_party/fuchsia-sdk/pkg/scenic_cpp/include/lib/ui/scenic/cpp/session.h
+++ b/third_party/fuchsia-sdk/pkg/scenic_cpp/include/lib/ui/scenic/cpp/session.h
@@ -19,6 +19,14 @@
 
 namespace scenic {
 
+// Records the number of bytes occupied by enqueue requests without any commands.
+//
+// As commands are accumulated, they are measured the number of bytes and handles
+// added to this base. See |Flush|, |commands_num_bytes_|, and
+// |commands_num_handles_|.
+constexpr int64_t kEnqueueRequestBaseNumBytes =
+    sizeof(fidl_message_header_t) + sizeof(fidl_vector_t);
+
 // Connect to Scenic and establish a new Session, as well as an InterfaceRequest
 // for a SessionListener that can be hooked up as desired.
 //
@@ -126,7 +134,8 @@
   void EnqueueReleaseFence(zx::event fence);
 
   // Flushes queued operations to the session.
-  void Flush();
+  // Virtual for testing.
+  virtual void Flush();
 
   // Presents all previously enqueued operations.
   // Implicitly flushes all queued operations to the session.
@@ -155,7 +164,12 @@
 
   void SetDebugName(const std::string& debug_name);
 
- private:
+protected:
+  std::vector<fuchsia::ui::scenic::Command> commands_;
+  int64_t commands_num_bytes_ = kEnqueueRequestBaseNumBytes;
+  int64_t commands_num_handles_ = 0;
+
+private:
   // |fuchsia::ui::scenic::SessionListener|
   void OnScenicError(std::string error) override;
   void OnScenicEvent(std::vector<fuchsia::ui::scenic::Event> events) override;
@@ -166,7 +180,6 @@
   uint32_t next_resource_id_ = 1u;
   uint32_t resource_count_ = 0u;
 
-  std::vector<fuchsia::ui::scenic::Command> commands_;
   std::vector<zx::event> acquire_fences_;
   std::vector<zx::event> release_fences_;
 
diff --git a/third_party/fuchsia-sdk/pkg/scenic_cpp/meta.json b/third_party/fuchsia-sdk/pkg/scenic_cpp/meta.json
index b6466d2..0f51030 100644
--- a/third_party/fuchsia-sdk/pkg/scenic_cpp/meta.json
+++ b/third_party/fuchsia-sdk/pkg/scenic_cpp/meta.json
@@ -15,6 +15,7 @@
   ],
   "headers": [
     "pkg/scenic_cpp/include/lib/ui/scenic/cpp/commands.h",
+    "pkg/scenic_cpp/include/lib/ui/scenic/cpp/commands_sizing.h",
     "pkg/scenic_cpp/include/lib/ui/scenic/cpp/id.h",
     "pkg/scenic_cpp/include/lib/ui/scenic/cpp/resources.h",
     "pkg/scenic_cpp/include/lib/ui/scenic/cpp/session.h",
@@ -26,6 +27,7 @@
   "root": "pkg/scenic_cpp",
   "sources": [
     "pkg/scenic_cpp/commands.cc",
+    "pkg/scenic_cpp/commands_sizing.cc",
     "pkg/scenic_cpp/resources.cc",
     "pkg/scenic_cpp/session.cc",
     "pkg/scenic_cpp/view_ref_pair.cc",
diff --git a/third_party/fuchsia-sdk/pkg/scenic_cpp/session.cc b/third_party/fuchsia-sdk/pkg/scenic_cpp/session.cc
index 98021fc..155a1cf 100644
--- a/third_party/fuchsia-sdk/pkg/scenic_cpp/session.cc
+++ b/third_party/fuchsia-sdk/pkg/scenic_cpp/session.cc
@@ -4,18 +4,12 @@
 
 #include <lib/syslog/global.h>
 #include <lib/ui/scenic/cpp/commands.h>
+#include <lib/ui/scenic/cpp/commands_sizing.h>
 #include <lib/ui/scenic/cpp/session.h>
 #include <zircon/assert.h>
 
 namespace scenic {
 
-// Don't batch commands - enqueue every command as its own message. This is a workaround
-// for FL-258, where commands were getting corrupted. The commands are still batched
-// and processed per-Present() on the Scenic side.
-// TODO(SCN-1522) Once FL-258 is fixed, either batch commands or move away from
-// command-union pattern.
-constexpr size_t kCommandsPerMessage = 1u;
-
 SessionPtrAndListenerRequest CreateScenicSessionPtrAndListenerRequest(
     fuchsia::ui::scenic::Scenic* scenic, async_dispatcher_t* dispatcher) {
   fuchsia::ui::scenic::SessionPtr session;
@@ -85,9 +79,22 @@
 }
 
 void Session::Enqueue(fuchsia::ui::scenic::Command command) {
+  auto size = MeasureCommand(command);
+
+  // If we would go over caps by adding this command, flush the commands we have
+  // accumulated so far.
+  if (commands_.size() > 0 &&
+      (static_cast<int64_t>(ZX_CHANNEL_MAX_MSG_BYTES) < commands_num_bytes_ + size.num_bytes ||
+       static_cast<int64_t>(ZX_CHANNEL_MAX_MSG_HANDLES) < commands_num_handles_ + size.num_handles)) {
+    Flush();
+  }
+
   commands_.push_back(std::move(command));
-  if (commands_.size() >= kCommandsPerMessage ||
-      commands_.back().Which() == fuchsia::ui::scenic::Command::Tag::kInput) {
+  commands_num_bytes_ += size.num_bytes;
+  commands_num_handles_ += size.num_handles;
+
+  // Eagerly flush all input commands.
+  if (commands_.back().Which() == fuchsia::ui::scenic::Command::Tag::kInput) {
     Flush();
   }
 }
@@ -107,9 +114,11 @@
     session_->Enqueue(std::move(commands_));
 
     // After being moved, |commands_| is in a "valid but unspecified state";
-    // see http://en.cppreference.com/w/cpp/utility/move.  Calling reset() makes
+    // see http://en.cppreference.com/w/cpp/utility/move.  Calling clear() makes
     // it safe to continue using.
     commands_.clear();
+    commands_num_bytes_ = kEnqueueRequestBaseNumBytes;
+    commands_num_handles_ = 0;
   }
 }
 
@@ -128,6 +137,9 @@
 void Session::Present2(zx_duration_t requested_presentation_time,
                        zx_duration_t requested_prediction_span,
                        Present2Callback immediate_callback) {
+  ZX_DEBUG_ASSERT(session_);
+  Flush();
+
   fuchsia::ui::scenic::Present2Args args;
   args.set_requested_presentation_time(requested_presentation_time);
   args.set_release_fences(std::move(release_fences_));
diff --git a/third_party/fuchsia-sdk/pkg/svc/meta.json b/third_party/fuchsia-sdk/pkg/svc/meta.json
index e189a31..c275db5 100644
--- a/third_party/fuchsia-sdk/pkg/svc/meta.json
+++ b/third_party/fuchsia-sdk/pkg/svc/meta.json
@@ -1,13 +1,13 @@
 {
   "binaries": {
     "arm64": {
-      "debug": ".build-id/4c/909da57babd26d.debug",
+      "debug": ".build-id/35/046e496d88a5a0.debug",
       "dist": "arch/arm64/dist/libsvc.so",
       "dist_path": "lib/libsvc.so",
       "link": "arch/arm64/lib/libsvc.so"
     },
     "x64": {
-      "debug": ".build-id/b6/f5d4b3be9d7491.debug",
+      "debug": ".build-id/8c/d47548b9007c1a.debug",
       "dist": "arch/x64/dist/libsvc.so",
       "dist_path": "lib/libsvc.so",
       "link": "arch/x64/lib/libsvc.so"
diff --git a/third_party/fuchsia-sdk/pkg/syslog/meta.json b/third_party/fuchsia-sdk/pkg/syslog/meta.json
index 00c97df..da77866 100644
--- a/third_party/fuchsia-sdk/pkg/syslog/meta.json
+++ b/third_party/fuchsia-sdk/pkg/syslog/meta.json
@@ -1,13 +1,13 @@
 {
   "binaries": {
     "arm64": {
-      "debug": ".build-id/80/0ea41e91ffb679.debug",
+      "debug": ".build-id/7e/9475a8d268f000.debug",
       "dist": "arch/arm64/dist/libsyslog.so",
       "dist_path": "lib/libsyslog.so",
       "link": "arch/arm64/lib/libsyslog.so"
     },
     "x64": {
-      "debug": ".build-id/8d/a971e4ecef91b1.debug",
+      "debug": ".build-id/b3/ea434ca797c755.debug",
       "dist": "arch/x64/dist/libsyslog.so",
       "dist_path": "lib/libsyslog.so",
       "link": "arch/x64/lib/libsyslog.so"
diff --git a/third_party/fuchsia-sdk/pkg/sysroot/meta.json b/third_party/fuchsia-sdk/pkg/sysroot/meta.json
index 9455959..d088983 100644
--- a/third_party/fuchsia-sdk/pkg/sysroot/meta.json
+++ b/third_party/fuchsia-sdk/pkg/sysroot/meta.json
@@ -4,7 +4,7 @@
   "versions": {
     "arm64": {
       "debug_libs": [
-        ".build-id/d3/8748f7c3c7ef50.debug",
+        ".build-id/b3/a89c34864a6bf4.debug",
         ".build-id/ac/2f3c8c7ce1cb11.debug"
       ],
       "dist_dir": "arch/arm64/sysroot",
@@ -310,7 +310,7 @@
     },
     "x64": {
       "debug_libs": [
-        ".build-id/c4/10147e2fb24e70.debug",
+        ".build-id/79/25b5305322d7fc.debug",
         ".build-id/14/b2634c21e0d39e.debug"
       ],
       "dist_dir": "arch/x64/sysroot",
diff --git a/third_party/fuchsia-sdk/pkg/trace-provider-so/meta.json b/third_party/fuchsia-sdk/pkg/trace-provider-so/meta.json
index 385a3e2..80dfb46 100644
--- a/third_party/fuchsia-sdk/pkg/trace-provider-so/meta.json
+++ b/third_party/fuchsia-sdk/pkg/trace-provider-so/meta.json
@@ -1,13 +1,13 @@
 {
   "binaries": {
     "arm64": {
-      "debug": ".build-id/d1/cf2889a3bde4b0.debug",
+      "debug": ".build-id/75/bddba18dc130a9.debug",
       "dist": "arch/arm64/dist/libtrace-provider-so.so",
       "dist_path": "lib/libtrace-provider-so.so",
       "link": "arch/arm64/lib/libtrace-provider-so.so"
     },
     "x64": {
-      "debug": ".build-id/a5/8398077c85a053.debug",
+      "debug": ".build-id/9c/00743baf710b97.debug",
       "dist": "arch/x64/dist/libtrace-provider-so.so",
       "dist_path": "lib/libtrace-provider-so.so",
       "link": "arch/x64/lib/libtrace-provider-so.so"
diff --git a/third_party/fuchsia-sdk/pkg/zx/include/lib/zx/vmo.h b/third_party/fuchsia-sdk/pkg/zx/include/lib/zx/vmo.h
index 1e18e3f..ae168a6 100644
--- a/third_party/fuchsia-sdk/pkg/zx/include/lib/zx/vmo.h
+++ b/third_party/fuchsia-sdk/pkg/zx/include/lib/zx/vmo.h
@@ -66,13 +66,6 @@
     return zx_vmo_set_cache_policy(get(), cache_policy);
   }
 
-  // Deprecated.  Use the version of this function that takes a const resource&
-  // instead of the one that takes a const handle&.  We keep this function
-  // around to allow out-of-tree usages to soft-transition.
-  zx_status_t replace_as_executable(const handle& vmex, vmo* result) {
-    return replace_as_executable(*zx::unowned_resource(vmex.get()), result);
-  }
-
   zx_status_t replace_as_executable(const resource& vmex, vmo* result) {
     zx_handle_t h = ZX_HANDLE_INVALID;
     zx_status_t status = zx_vmo_replace_as_executable(value_, vmex.get(), &h);
diff --git a/third_party/fuchsia-sdk/tools/arm64/fidlgen b/third_party/fuchsia-sdk/tools/arm64/fidlgen
index 782c530..217e822 100755
--- a/third_party/fuchsia-sdk/tools/arm64/fidlgen
+++ b/third_party/fuchsia-sdk/tools/arm64/fidlgen
Binary files differ
diff --git a/third_party/fuchsia-sdk/tools/cmc b/third_party/fuchsia-sdk/tools/cmc
index 95c37f0..acac465 100755
--- a/third_party/fuchsia-sdk/tools/cmc
+++ b/third_party/fuchsia-sdk/tools/cmc
Binary files differ
diff --git a/third_party/fuchsia-sdk/tools/fidlcat b/third_party/fuchsia-sdk/tools/fidlcat
index d447563..b25642b 100755
--- a/third_party/fuchsia-sdk/tools/fidlcat
+++ b/third_party/fuchsia-sdk/tools/fidlcat
Binary files differ
diff --git a/third_party/fuchsia-sdk/tools/fidlgen b/third_party/fuchsia-sdk/tools/fidlgen
index 798f136..a59dbc4 100755
--- a/third_party/fuchsia-sdk/tools/fidlgen
+++ b/third_party/fuchsia-sdk/tools/fidlgen
Binary files differ
diff --git a/third_party/fuchsia-sdk/tools/fidlgen_dart b/third_party/fuchsia-sdk/tools/fidlgen_dart
index b640f3d..4b48975 100755
--- a/third_party/fuchsia-sdk/tools/fidlgen_dart
+++ b/third_party/fuchsia-sdk/tools/fidlgen_dart
Binary files differ
diff --git a/third_party/fuchsia-sdk/tools/x64/cmc b/third_party/fuchsia-sdk/tools/x64/cmc
index 95c37f0..acac465 100755
--- a/third_party/fuchsia-sdk/tools/x64/cmc
+++ b/third_party/fuchsia-sdk/tools/x64/cmc
Binary files differ
diff --git a/third_party/fuchsia-sdk/tools/x64/fidlcat b/third_party/fuchsia-sdk/tools/x64/fidlcat
index d447563..b25642b 100755
--- a/third_party/fuchsia-sdk/tools/x64/fidlcat
+++ b/third_party/fuchsia-sdk/tools/x64/fidlcat
Binary files differ
diff --git a/third_party/fuchsia-sdk/tools/x64/fidlgen b/third_party/fuchsia-sdk/tools/x64/fidlgen
index 798f136..a59dbc4 100755
--- a/third_party/fuchsia-sdk/tools/x64/fidlgen
+++ b/third_party/fuchsia-sdk/tools/x64/fidlgen
Binary files differ