[blink] Eliminate BigBuffer copies in code caching

- Changes cached metadata callback signatures to take mojo_base::BigBuffer
  instead of base::span or raw [ptr, len] parameters.
- Transfers metadata buffers with as few copies as possible.
- Refactors blink::CachedMetadata to be able to have a BigBuffer as the
  backing store, in addition to a Vector. This allows us to avoid the
  final copy when creating CachedMetadata.

BUG: chromium:992991

Change-Id: I567c51028dfe754fa9403614f466ca202e156570
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1759008
Commit-Queue: Bill Budge <[email protected]>
Reviewed-by: Matt Falkenhagen <[email protected]>
Reviewed-by: Kentaro Hara <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Cr-Commit-Position: refs/heads/master@{#689504}
diff --git a/content/renderer/loader/navigation_body_loader_unittest.cc b/content/renderer/loader/navigation_body_loader_unittest.cc
index 03b9eb4..43c2e085 100644
--- a/content/renderer/loader/navigation_body_loader_unittest.cc
+++ b/content/renderer/loader/navigation_body_loader_unittest.cc
@@ -76,7 +76,7 @@
     base::RunLoop().RunUntilIdle();
   }
 
-  void BodyCodeCacheReceived(base::span<const uint8_t>) override {}
+  void BodyCodeCacheReceived(mojo_base::BigBuffer data) override {}
 
   void BodyDataReceived(base::span<const char> data) override {
     ASSERT_TRUE(expecting_data_received_);