diff --git a/third_party/blink/public/mojom/app_banner/app_banner.mojom b/third_party/blink/public/mojom/app_banner/app_banner.mojom
index 170628b3481b..724e64e1ea7a 100644
--- a/third_party/blink/public/mojom/app_banner/app_banner.mojom
+++ b/third_party/blink/public/mojom/app_banner/app_banner.mojom
@@ -11,8 +11,8 @@ enum AppBannerPromptReply {
 
 interface AppBannerController {
   // The browser asks the renderer if the app banner should be shown.
-  BannerPromptRequest(pending_remote<AppBannerService> service,
-                      pending_receiver<AppBannerEvent> event_receiver,
+  BannerPromptRequest(AppBannerService service,
+                      AppBannerEvent& event_receiver,
                       array<string> platform) => (AppBannerPromptReply reply);
 };
 
diff --git a/third_party/blink/public/mojom/appcache/appcache.mojom b/third_party/blink/public/mojom/appcache/appcache.mojom
index b1419ace64f3..69f67b652ee4 100644
--- a/third_party/blink/public/mojom/appcache/appcache.mojom
+++ b/third_party/blink/public/mojom/appcache/appcache.mojom
@@ -64,8 +64,8 @@ interface AppCacheBackend {
   // Informs the browser of a new appcache host.
   //
   // Unregistering the host is accomplished by closing the AppCacheHost pipe.
-  RegisterHost(pending_receiver<AppCacheHost> host_receiver,
-               pending_remote<AppCacheFrontend> frontend,
+  RegisterHost(AppCacheHost& host_receiver,
+               AppCacheFrontend frontend,
                mojo_base.mojom.UnguessableToken host_id);
 };
 
@@ -139,5 +139,5 @@ interface AppCacheFrontend {
   // In the network service world this message sets the URLLoaderFactory to be
   // used for subresources.
   SetSubresourceFactory(
-      pending_remote<network.mojom.URLLoaderFactory> url_loader_factory);
+      network.mojom.URLLoaderFactory url_loader_factory);
 };
diff --git a/third_party/blink/public/mojom/associated_interfaces/associated_interfaces.mojom b/third_party/blink/public/mojom/associated_interfaces/associated_interfaces.mojom
index a588177e6afa..bc00b6afbda3 100644
--- a/third_party/blink/public/mojom/associated_interfaces/associated_interfaces.mojom
+++ b/third_party/blink/public/mojom/associated_interfaces/associated_interfaces.mojom
@@ -13,5 +13,5 @@ interface AssociatedInterface {};
 interface AssociatedInterfaceProvider {
   GetAssociatedInterface(
       string name,
-      pending_associated_receiver<AssociatedInterface> receiver);
+      associated AssociatedInterface& receiver);
 };
diff --git a/third_party/blink/public/mojom/background_fetch/background_fetch.mojom b/third_party/blink/public/mojom/background_fetch/background_fetch.mojom
index 5412d1318311..2a5f3eb69dc3 100644
--- a/third_party/blink/public/mojom/background_fetch/background_fetch.mojom
+++ b/third_party/blink/public/mojom/background_fetch/background_fetch.mojom
@@ -88,7 +88,7 @@ struct BackgroundFetchRegistrationData {
 // The registration data and interface to make per registration calls.
 struct BackgroundFetchRegistration {
   BackgroundFetchRegistrationData registration_data;
-  pending_remote<BackgroundFetchRegistrationService> registration_interface;
+  BackgroundFetchRegistrationService registration_interface;
 };
 
 // This contains the data we need to record UKM metrics, that isn't needed for
@@ -170,5 +170,5 @@ interface BackgroundFetchRegistrationService {
                 bool match_all) => (array<BackgroundFetchSettledFetch> fetches);
 
   // Registers the |observer| to receive events for the given registration.
-  AddRegistrationObserver(pending_remote<BackgroundFetchRegistrationObserver> observer);
+  AddRegistrationObserver(BackgroundFetchRegistrationObserver observer);
 };
diff --git a/third_party/blink/public/mojom/blob/blob.mojom b/third_party/blink/public/mojom/blob/blob.mojom
index 310e45608335..0689f158fb1d 100644
--- a/third_party/blink/public/mojom/blob/blob.mojom
+++ b/third_party/blink/public/mojom/blob/blob.mojom
@@ -31,15 +31,15 @@ interface BlobReaderClient {
 // This interface provides access to a blob in the blob system.
 interface Blob {
   // Creates a copy of this Blob reference.
-  Clone(pending_receiver<Blob> blob);
+  Clone(Blob& blob);
 
   // Creates a reference to this Blob as a DataPipeGetter.
-  AsDataPipeGetter(pending_receiver<network.mojom.DataPipeGetter> data_pipe_getter);
+  AsDataPipeGetter(network.mojom.DataPipeGetter& data_pipe_getter);
 
   // Causes the entire contents of this blob to be written into the given data
   // pipe. An optional BlobReaderClient will be informed of the result of the
   // read operation.
-  ReadAll(handle<data_pipe_producer> pipe, pending_remote<BlobReaderClient>? client);
+  ReadAll(handle<data_pipe_producer> pipe, BlobReaderClient? client);
 
   // Causes a subrange of the contents of this blob to be written into the
   // given data pipe. If |length| is -1 (uint64_t max), the range's end is
@@ -47,7 +47,7 @@ interface Blob {
   // optional BlobReaderClient will be informed of the result of the read
   // operation.
   ReadRange(uint64 offset, uint64 length, handle<data_pipe_producer> pipe,
-            pending_remote<BlobReaderClient>? client);
+            BlobReaderClient? client);
 
   // Reads the side-data (if any) associated with this blob. This is the same
   // data that would be passed to OnReceivedCachedMetadata if you were reading
diff --git a/third_party/blink/public/mojom/blob/blob_registry.mojom b/third_party/blink/public/mojom/blob/blob_registry.mojom
index d17557ff5bc3..c7ae25984537 100644
--- a/third_party/blink/public/mojom/blob/blob_registry.mojom
+++ b/third_party/blink/public/mojom/blob/blob_registry.mojom
@@ -27,7 +27,7 @@ interface BlobRegistry {
   // Registers a new blob with the blob registry.
   // TODO(mek): Make this method non-sync and get rid of the UUID parameter once
   // enough of the rest of the system doesn't rely on the UUID anymore.
-  [Sync] Register(pending_receiver<blink.mojom.Blob> blob, string uuid,
+  [Sync] Register(blink.mojom.Blob& blob, string uuid,
                   string content_type, string content_disposition,
                   array<DataElement> elements) => ();
 
@@ -43,15 +43,15 @@ interface BlobRegistry {
   RegisterFromStream(string content_type, string content_disposition,
                      uint64 length_hint,
                      handle<data_pipe_consumer> data,
-                     pending_associated_remote<ProgressClient>? progress_client)
+                     associated ProgressClient? progress_client)
       => (SerializedBlob? blob);
 
   // Returns a reference to an existing blob. Should not be used by new code,
   // is only exposed to make converting existing blob using code easier.
   // TODO(mek): Remove when crbug.com/740744 is resolved.
-  [Sync] GetBlobFromUUID(pending_receiver<Blob> blob, string uuid) => ();
+  [Sync] GetBlobFromUUID(Blob& blob, string uuid) => ();
 
   // Returns a BlobURLStore for a specific origin.
   URLStoreForOrigin(url.mojom.Origin origin,
-                    pending_associated_receiver<blink.mojom.BlobURLStore> url_store);
+                    associated blink.mojom.BlobURLStore& url_store);
 };
diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_party/blink/public/mojom/blob/blob_url_store.mojom
index ca0fa77b3942..84aad0feb2c0 100644
--- a/third_party/blink/public/mojom/blob/blob_url_store.mojom
+++ b/third_party/blink/public/mojom/blob/blob_url_store.mojom
@@ -16,13 +16,13 @@ interface BlobURLStore {
   // all URLs registered through it will be revoked.
   // TODO(kinuko,mek): This should probably create and return a new blob: URL rather
   // than letting the caller in the renderer provide one.
-  [Sync] Register(pending_remote<blink.mojom.Blob> blob, url.mojom.Url url) => ();
+  [Sync] Register(blink.mojom.Blob blob, url.mojom.Url url) => ();
 
   // Revokes a public Blob URL.
   Revoke(url.mojom.Url url);
 
   // Resolves a public Blob URL.
-  Resolve(url.mojom.Url url) => (pending_remote<blink.mojom.Blob>? blob);
+  Resolve(url.mojom.Url url) => (blink.mojom.Blob? blob);
 
   // Resolves a public Blob URL to a URLLoaderFactory that can only load the
   // specified URL. The reason the API is shaped like this rather than just
@@ -33,19 +33,19 @@ interface BlobURLStore {
   // both the blob URL and all other references to the blob have been dropped.
   ResolveAsURLLoaderFactory(
       url.mojom.Url url,
-      pending_receiver<network.mojom.URLLoaderFactory> factory);
+      network.mojom.URLLoaderFactory& factory);
 
   // Resolves a public Blob URL into a BlobURLToken. The BlobURLToken can be
   // used by the browser process to securely look up the blob a URL used to
   // refer to, even after the URL is revoked.
   // As long as the token is alive, the resolved blob will also be kept alive.
-  ResolveForNavigation(url.mojom.Url url, pending_receiver<BlobURLToken> token);
+  ResolveForNavigation(url.mojom.Url url, BlobURLToken& token);
 };
 
 // A token representing a Blob URL. The browser process can use this to look up
 // the blob URL and blob it referred to, even after the blob URL itself is
 // revoked. For the renderer this is just an opaque token without any meaning.
 interface BlobURLToken {
-  Clone(pending_receiver<BlobURLToken> token);
+  Clone(BlobURLToken& token);
   GetToken() => (mojo_base.mojom.UnguessableToken token);
 };
diff --git a/third_party/blink/public/mojom/blob/data_element.mojom b/third_party/blink/public/mojom/blob/data_element.mojom
index 580559c225d6..a45b6dc59452 100644
--- a/third_party/blink/public/mojom/blob/data_element.mojom
+++ b/third_party/blink/public/mojom/blob/data_element.mojom
@@ -37,7 +37,7 @@ struct DataElementBytes {
   // equal to |length|.
   array<uint8>? embedded_data;
   // Interface through which the blob registry can request the data.
-  pending_remote<BytesProvider> data;
+  BytesProvider data;
 };
 
 // Interface through which the blob registry can request data when it is ready
@@ -102,7 +102,7 @@ struct DataElementFilesystemURL {
 // A reference to a slice of another blob.
 struct DataElementBlob {
   // The blob being referenced.
-  pending_remote<blink.mojom.Blob> blob;
+  blink.mojom.Blob blob;
   // Offset to the beginning of the slice.
   uint64 offset;
   // Length of the slice.
diff --git a/third_party/blink/public/mojom/blob/serialized_blob.mojom b/third_party/blink/public/mojom/blob/serialized_blob.mojom
index f99f2b10c884..f346205fecc3 100644
--- a/third_party/blink/public/mojom/blob/serialized_blob.mojom
+++ b/third_party/blink/public/mojom/blob/serialized_blob.mojom
@@ -14,5 +14,5 @@ struct SerializedBlob {
   string uuid;
   string content_type;
   uint64 size;
-  pending_remote<Blob> blob;
+  Blob blob;
 };
diff --git a/third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom b/third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom
index c798d5e3d498..33508628f250 100644
--- a/third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom
+++ b/third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom
@@ -191,7 +191,7 @@ interface WebBluetoothService {
   // Returns the result of the connection request.
   RemoteServerConnect(
     WebBluetoothDeviceId device_id,
-    pending_associated_remote<WebBluetoothServerClient> client) => (
+    associated WebBluetoothServerClient client) => (
     WebBluetoothResult result);
 
   // If a GATT connection exists for Device identified by |device_id| then
@@ -246,7 +246,7 @@ interface WebBluetoothService {
   // Returns the result of the connection request.
   RemoteCharacteristicStartNotifications(
     string characteristic_instance_id,
-    pending_associated_remote<WebBluetoothCharacteristicClient> client) => (
+    associated WebBluetoothCharacteristicClient client) => (
       WebBluetoothResult result);
 
   // Stops notifications for the characteristic identified by
@@ -287,7 +287,7 @@ interface WebBluetoothService {
 
   // Starts scanning for low energy devices.
   RequestScanningStart(
-    pending_associated_remote<WebBluetoothScanClient> client,
+    associated WebBluetoothScanClient client,
     WebBluetoothRequestLEScanOptions options) => (
     RequestScanningStartResult result);
 };
diff --git a/third_party/blink/public/mojom/broadcastchannel/broadcast_channel.mojom b/third_party/blink/public/mojom/broadcastchannel/broadcast_channel.mojom
index f986930fec82..740aa5000c1a 100644
--- a/third_party/blink/public/mojom/broadcastchannel/broadcast_channel.mojom
+++ b/third_party/blink/public/mojom/broadcastchannel/broadcast_channel.mojom
@@ -31,6 +31,6 @@ interface BroadcastChannelProvider {
   // be sent to the channel using |sender|, and messages to the channel will be
   // received by |receiver|.
   ConnectToChannel(url.mojom.Origin origin, string name,
-                   pending_associated_remote<BroadcastChannelClient> receiver,
-                   pending_associated_receiver<BroadcastChannelClient> sender);
+                   associated BroadcastChannelClient receiver,
+                   associated BroadcastChannelClient& sender);
 };
diff --git a/third_party/blink/public/mojom/cache_storage/cache_storage.mojom b/third_party/blink/public/mojom/cache_storage/cache_storage.mojom
index d5d3717873bc..f5960aca50c0 100644
--- a/third_party/blink/public/mojom/cache_storage/cache_storage.mojom
+++ b/third_party/blink/public/mojom/cache_storage/cache_storage.mojom
@@ -75,7 +75,7 @@ struct BatchOperation {
 // Result of Open method. |status| is only set if there is a failure.
 union OpenResult {
   CacheStorageError status;
-  pending_associated_remote<CacheStorageCache> cache;
+  associated CacheStorageCache cache;
 };
 
 // EagerResponse: A blob response where the source has eagerly started reading
@@ -83,7 +83,7 @@ union OpenResult {
 struct EagerResponse {
   blink.mojom.FetchAPIResponse response;
   handle<data_pipe_consumer> pipe;
-  pending_receiver<BlobReaderClient> client_receiver;
+  BlobReaderClient& client_receiver;
 };
 
 // Result of Match for both interfaces CacheStorage and CacheStorageCache
diff --git a/third_party/blink/public/mojom/choosers/color_chooser.mojom b/third_party/blink/public/mojom/choosers/color_chooser.mojom
index e9c3d3b204d1..c2525a25250d 100644
--- a/third_party/blink/public/mojom/choosers/color_chooser.mojom
+++ b/third_party/blink/public/mojom/choosers/color_chooser.mojom
@@ -12,8 +12,8 @@ struct ColorSuggestion {
 // A ColorChooser window is shown for <input type="color">.
 interface ColorChooserFactory {
   OpenColorChooser(
-      pending_receiver<ColorChooser> chooser,
-      pending_remote<ColorChooserClient> client,
+      ColorChooser& chooser,
+      ColorChooserClient client,
       uint32 color,
       array<ColorSuggestion> suggestions);
 };
diff --git a/third_party/blink/public/mojom/devtools/devtools_agent.mojom b/third_party/blink/public/mojom/devtools/devtools_agent.mojom
index 89a1dbc50759..dcec768b021a 100644
--- a/third_party/blink/public/mojom/devtools/devtools_agent.mojom
+++ b/third_party/blink/public/mojom/devtools/devtools_agent.mojom
@@ -72,9 +72,9 @@ interface DevToolsAgent {
   // |client_expects_binary_response| indicates that responses (and
   // notifications) sent from this session should use binary (CBOR)
   // encoding as opposed to JSON encoding.
-  AttachDevToolsSession(pending_associated_remote<DevToolsSessionHost> host,
-                        pending_associated_receiver<DevToolsSession> session,
-                        pending_receiver<DevToolsSession> io_session,
+  AttachDevToolsSession(associated DevToolsSessionHost host,
+                        associated DevToolsSession& session,
+                        DevToolsSession& io_session,
                         DevToolsSessionState? reattach_session_state,
                         bool client_expects_binary_responses);
 
@@ -102,8 +102,8 @@ interface DevToolsAgentHost {
   // |waiting_for_debugger| is true if worker was paused on startup and
   // should be resumed by debugger to actually start.
   ChildWorkerCreated(
-      pending_remote<DevToolsAgent> worker_devtools_agent,
-      pending_receiver<DevToolsAgentHost> worker_devtools_agent_host,
+      DevToolsAgent worker_devtools_agent,
+      DevToolsAgentHost& worker_devtools_agent_host,
       url.mojom.Url url,
       string name,
       mojo_base.mojom.UnguessableToken devtools_worker_token,
diff --git a/third_party/blink/public/mojom/devtools/devtools_frontend.mojom b/third_party/blink/public/mojom/devtools/devtools_frontend.mojom
index 93b682b36de9..46f48271967e 100644
--- a/third_party/blink/public/mojom/devtools/devtools_frontend.mojom
+++ b/third_party/blink/public/mojom/devtools/devtools_frontend.mojom
@@ -18,7 +18,7 @@ interface DevToolsFrontend {
   // loading. It makes use of DevToolsHost to expose embedder capabilities to
   // DevTools (e.g. connection to the inspected target).
   SetupDevToolsFrontend(string api_script,
-                        pending_associated_remote<DevToolsFrontendHost> host);
+                        associated DevToolsFrontendHost host);
 
   // Sets up a child frame to expose DevTools extension API by executing script
   // |extension_api| on each navigation in the frame. This script provides
diff --git a/third_party/blink/public/mojom/dom_storage/session_storage_namespace.mojom b/third_party/blink/public/mojom/dom_storage/session_storage_namespace.mojom
index a0a2d04aeca9..8af5239ae657 100644
--- a/third_party/blink/public/mojom/dom_storage/session_storage_namespace.mojom
+++ b/third_party/blink/public/mojom/dom_storage/session_storage_namespace.mojom
@@ -11,7 +11,7 @@ import "url/mojom/origin.mojom";
 // cloning. This is implemented by the browser process.
 interface SessionStorageNamespace {
   OpenArea(url.mojom.Origin origin,
-           pending_associated_receiver<StorageArea> area);
+           associated StorageArea& area);
   // Clones this namespace the new given namespace. Used before navigating to
   // a new frame which would be given this session storage namespace.
   Clone(string clone_to_namespace);
diff --git a/third_party/blink/public/mojom/dom_storage/storage_area.mojom b/third_party/blink/public/mojom/dom_storage/storage_area.mojom
index 1f1b2c6fa109..2eeaab307a14 100644
--- a/third_party/blink/public/mojom/dom_storage/storage_area.mojom
+++ b/third_party/blink/public/mojom/dom_storage/storage_area.mojom
@@ -49,7 +49,7 @@ interface StorageArea {
   const uint32 kPerStorageAreaOverQuotaAllowance = 102400; // 100 KiB
 
   // Adds an observer to monitor changes to the StorageArea.
-  AddObserver(pending_associated_remote<StorageAreaObserver> observer);
+  AddObserver(associated StorageAreaObserver observer);
 
   // Set the database entry for |key| to |value|.
   // Takes an optional |client_old_value| (see ShouldSendOldValueOnMutations()):
@@ -88,6 +88,6 @@ interface StorageArea {
 
   // Returns all key/value pairs.
   [Sync]
-  GetAll(pending_associated_remote<StorageAreaGetAllCallback> complete_callback)
+  GetAll(associated StorageAreaGetAllCallback complete_callback)
     => (bool success, array<KeyValue> data);
 };
diff --git a/third_party/blink/public/mojom/dom_storage/storage_partition_service.mojom b/third_party/blink/public/mojom/dom_storage/storage_partition_service.mojom
index 56c04f19eb05..287386037f33 100644
--- a/third_party/blink/public/mojom/dom_storage/storage_partition_service.mojom
+++ b/third_party/blink/public/mojom/dom_storage/storage_partition_service.mojom
@@ -14,7 +14,7 @@ import "url/mojom/origin.mojom";
 // should probably move to some other directory.
 interface StoragePartitionService {
   OpenLocalStorage(url.mojom.Origin origin,
-                   pending_receiver<StorageArea> area);
+                   StorageArea& area);
   OpenSessionStorage(string namespace_id,
-                     pending_receiver<SessionStorageNamespace> session_namespace);
+                     SessionStorageNamespace& session_namespace);
 };
diff --git a/third_party/blink/public/mojom/fetch/fetch_api_request.mojom b/third_party/blink/public/mojom/fetch/fetch_api_request.mojom
index 313369b9171b..3d5de613143d 100644
--- a/third_party/blink/public/mojom/fetch/fetch_api_request.mojom
+++ b/third_party/blink/public/mojom/fetch/fetch_api_request.mojom
@@ -128,9 +128,9 @@ struct FetchAPIDataElement {
   // For kBlob
   string? blob_uuid;
   // For kDataPipe
-  pending_remote<network.mojom.DataPipeGetter>? data_pipe_getter;
+  network.mojom.DataPipeGetter? data_pipe_getter;
   // For kChunkedDataPipe
-  pending_remote<network.mojom.ChunkedDataPipeGetter>? chunked_data_pipe_getter;
+  network.mojom.ChunkedDataPipeGetter? chunked_data_pipe_getter;
 
   uint64 offset;
   uint64 length;
diff --git a/third_party/blink/public/mojom/filesystem/file_system.mojom b/third_party/blink/public/mojom/filesystem/file_system.mojom
index cba19ba44a8d..680e2df22d55 100644
--- a/third_party/blink/public/mojom/filesystem/file_system.mojom
+++ b/third_party/blink/public/mojom/filesystem/file_system.mojom
@@ -27,7 +27,7 @@ struct FileSystemInfo {
 };
 
 // Interface for renderers to cancel running file system operations. A
-// pending_receiver<FileSystemCancellableOperation> is passed as a parameter for
+// FileSystemCancellableOperation& is passed as a parameter for
 // any operation that can be cancelled.
 interface FileSystemCancellableOperation {
   // Cancels the associated operation. It may not always be possible to cancel
@@ -38,7 +38,7 @@ interface FileSystemCancellableOperation {
 
 // Operations that need to repeatedly call a particular callback use this
 // interface. For example, the Write operation needs to call DidWrite
-// repeatedly, and uses a pending_remote<FileSystemOperationListener> passed
+// repeatedly, and uses a FileSystemOperationListener passed
 // from the renderer to call it.
 // Note: For operations that only need a callback called once, we can directly
 // use mojo return value callbacks.
@@ -143,7 +143,7 @@ interface FileSystemManager {
   // ResultsRetrieved on |listener| when results are ready, or ErrorOccurred
   // if the operation fails.
   ReadDirectory(url.mojom.Url path,
-                pending_remote<FileSystemOperationListener> listener);
+                FileSystemOperationListener listener);
   [Sync]
   ReadDirectorySync(url.mojom.Url path) =>
     (array<filesystem.mojom.DirectoryEntry> entries,
@@ -156,8 +156,8 @@ interface FileSystemManager {
   Write(url.mojom.Url file_path,
         string blob_uuid,
         int64 position,
-        pending_receiver<FileSystemCancellableOperation> op_receiver,
-        pending_remote<FileSystemOperationListener> listener);
+        FileSystemCancellableOperation& op_receiver,
+        FileSystemOperationListener listener);
   [Sync]
   WriteSync(url.mojom.Url file_path, string blob_uuid, int64 position) =>
       (int64 byte_count, mojo_base.mojom.FileError error_code);
@@ -168,7 +168,7 @@ interface FileSystemManager {
   // the remote associated with |op_receiver|.
   Truncate(url.mojom.Url file_path,
            int64 length,
-           pending_receiver<FileSystemCancellableOperation> op_receiver) =>
+           FileSystemCancellableOperation& op_receiver) =>
       (mojo_base.mojom.FileError error_code);
   [Sync]
   TruncateSync(url.mojom.Url file_path, int64 length) =>
@@ -196,7 +196,7 @@ interface FileSystemManager {
       (mojo_base.mojom.FileInfo file_info,
        mojo_base.mojom.FilePath platform_path,
        mojo_base.mojom.FileError error_code,
-       pending_remote<ReceivedSnapshotListener>? snapshot_listener);
+       ReceivedSnapshotListener? snapshot_listener);
 
   // Synchronously gets the platform path for the given |file_path|.
   [Sync]
diff --git a/third_party/blink/public/mojom/frame/find_in_page.mojom b/third_party/blink/public/mojom/frame/find_in_page.mojom
index 553126cd2fde..c243b87361ba 100644
--- a/third_party/blink/public/mojom/frame/find_in_page.mojom
+++ b/third_party/blink/public/mojom/frame/find_in_page.mojom
@@ -40,7 +40,7 @@ interface FindInPage {
   // Sets the client for this FindInPage instance. Should be called before
   // calling ActivateNearestFindResult.
   // TODO(rakina): Remove the need for this?
-  SetClient(pending_remote<FindInPageClient> client);
+  SetClient(FindInPageClient client);
 
   // Returns the bounding boxes of the find-in-page match markers from the
   // frame. The bounding boxes are returned in find-in-page coordinates.
diff --git a/third_party/blink/public/mojom/frame_sinks/embedded_frame_sink.mojom b/third_party/blink/public/mojom/frame_sinks/embedded_frame_sink.mojom
index a0ccec07af7f..586d1fea254c 100644
--- a/third_party/blink/public/mojom/frame_sinks/embedded_frame_sink.mojom
+++ b/third_party/blink/public/mojom/frame_sinks/embedded_frame_sink.mojom
@@ -20,7 +20,7 @@ interface SurfaceEmbedder {
 interface EmbeddedFrameSinkClient {
   // Called when a CompositorFrameSink is created for this frame sink.
   // Establishes a direct connection from the embedee to the embedder.
-  BindSurfaceEmbedder(pending_receiver<SurfaceEmbedder> embedder);
+  BindSurfaceEmbedder(SurfaceEmbedder& embedder);
 };
 
 // Provides embedded CompositorFrameSinks for the renderer. The renderer should
@@ -33,25 +33,25 @@ interface EmbeddedFrameSinkProvider {
   // the parent must be specified at this time.
   RegisterEmbeddedFrameSink(viz.mojom.FrameSinkId parent_frame_sink_id,
                             viz.mojom.FrameSinkId frame_sink_id,
-                            pending_remote<EmbeddedFrameSinkClient> client);
+                            EmbeddedFrameSinkClient client);
 
   // Create a CompositorFrameSink for |frame_sink_id|. This must happen after
   // calling RegisterEmbeddedFrameSink() for |frame_sink_id|.
   CreateCompositorFrameSink(viz.mojom.FrameSinkId frame_sink_id,
-                            pending_remote<viz.mojom.CompositorFrameSinkClient> client,
-                            pending_receiver<viz.mojom.CompositorFrameSink> sink);
+                            viz.mojom.CompositorFrameSinkClient client,
+                            viz.mojom.CompositorFrameSink& sink);
 
   // Create CompositorFrameSink directly in a single call (instead of going
   // through both function above).
   CreateSimpleCompositorFrameSink(viz.mojom.FrameSinkId parent_frame_sink_id,
                                   viz.mojom.FrameSinkId frame_sink_id,
-                                  pending_remote<EmbeddedFrameSinkClient> surface_client,
-                                  pending_remote<viz.mojom.CompositorFrameSinkClient> client,
-                                  pending_receiver<viz.mojom.CompositorFrameSink> sink);
+                                  EmbeddedFrameSinkClient surface_client,
+                                  viz.mojom.CompositorFrameSinkClient client,
+                                  viz.mojom.CompositorFrameSink& sink);
 
   // Establishes a direct connection to the embedder of |frame_sink_id|. This
   // will allow the client to let the embedder know what LocalSurfaceId it is
   // using.
   ConnectToEmbedder(viz.mojom.FrameSinkId frame_sink_id,
-                    pending_receiver<SurfaceEmbedder> embedder);
+                    SurfaceEmbedder& embedder);
 };
diff --git a/third_party/blink/public/mojom/geolocation/geolocation_service.mojom b/third_party/blink/public/mojom/geolocation/geolocation_service.mojom
index fc3a4d17deea..400ded604409 100644
--- a/third_party/blink/public/mojom/geolocation/geolocation_service.mojom
+++ b/third_party/blink/public/mojom/geolocation/geolocation_service.mojom
@@ -16,6 +16,6 @@ interface GeolocationService {
   // request (GRANTED or DENIED).
   // This may not be called a second time until the Geolocation instance has
   // been created.
-  CreateGeolocation(pending_receiver<device.mojom.Geolocation> receiver, bool user_gesture)
+  CreateGeolocation(device.mojom.Geolocation& receiver, bool user_gesture)
       => (PermissionStatus status);
 };
diff --git a/third_party/blink/public/mojom/hid/hid.mojom b/third_party/blink/public/mojom/hid/hid.mojom
index 7c3f49b83652..23b66cab84e5 100644
--- a/third_party/blink/public/mojom/hid/hid.mojom
+++ b/third_party/blink/public/mojom/hid/hid.mojom
@@ -85,6 +85,6 @@ interface HidService {
   // will be notified when an input report is received from the device.
   // |connection| contains the opened connection, or a null remote if the
   // device could not be opened.
-  Connect(string device_guid, pending_remote<device.mojom.HidConnectionClient> client)
-      => (pending_remote<device.mojom.HidConnection>? connection);
+  Connect(string device_guid, device.mojom.HidConnectionClient client)
+      => (device.mojom.HidConnection? connection);
 };
diff --git a/third_party/blink/public/mojom/idle/idle_manager.mojom b/third_party/blink/public/mojom/idle/idle_manager.mojom
index 8c5e496acaeb..7bae1431cb3e 100644
--- a/third_party/blink/public/mojom/idle/idle_manager.mojom
+++ b/third_party/blink/public/mojom/idle/idle_manager.mojom
@@ -35,6 +35,6 @@ interface IdleManager {
   // registered for this instance. It can be unregistered by simply closing
   // the pipe.
   AddMonitor(mojo_base.mojom.TimeDelta threshold,
-             pending_remote<IdleMonitor> monitor)
+             IdleMonitor monitor)
       => (IdleState state);
 };
diff --git a/third_party/blink/public/mojom/indexeddb/indexeddb.mojom b/third_party/blink/public/mojom/indexeddb/indexeddb.mojom
index 32095d785933..13163d169692 100644
--- a/third_party/blink/public/mojom/indexeddb/indexeddb.mojom
+++ b/third_party/blink/public/mojom/indexeddb/indexeddb.mojom
@@ -202,7 +202,7 @@ struct IDBFileInfo {
 };
 
 struct IDBBlobInfo {
-  pending_remote<blink.mojom.Blob> blob;
+  blink.mojom.Blob blob;
   string uuid;
   mojo_base.mojom.String16 mime_type;
   int64 size;
@@ -257,12 +257,12 @@ interface IDBCallbacks {
   Blocked(int64 existing_version);
 
   // Factory::Open
-  UpgradeNeeded(pending_associated_remote<IDBDatabase> pending_database,
+  UpgradeNeeded(associated IDBDatabase pending_database,
                 int64 old_version, IDBDataLoss data_loss,
                 string data_loss_message, IDBDatabaseMetadata db_metadata);
 
   // Factory::Open
-  SuccessDatabase(pending_associated_remote<IDBDatabase>? pending_database,
+  SuccessDatabase(associated IDBDatabase? pending_database,
                   IDBDatabaseMetadata metadata);
 
   // Database::Count / DeleteRange
@@ -349,7 +349,7 @@ union IDBDatabaseGetAllResult {
 };
 
 struct IDBDatabaseOpenCursorValue {
-  pending_associated_remote<IDBCursor> cursor;
+  associated IDBCursor cursor;
   IDBKey key;
   IDBKey primary_key;
   IDBValue? value;
@@ -365,7 +365,7 @@ interface IDBDatabase {
   RenameObjectStore(int64 transaction_id,
                     int64 object_store_id,
                     mojo_base.mojom.String16 new_name);
-  CreateTransaction(pending_associated_receiver<IDBTransaction> transaction_receiver,
+  CreateTransaction(associated IDBTransaction& transaction_receiver,
                     int64 transaction_id,
                     array<int64> object_store_ids,
                     IDBTransactionMode mode,
@@ -411,20 +411,20 @@ interface IDBDatabase {
         int64 object_store_id,
         int64 index_id,
         IDBKeyRange key_range,
-        pending_associated_remote<IDBCallbacks> pending_callbacks);
+        associated IDBCallbacks pending_callbacks);
   DeleteRange(int64 transaction_id,
               int64 object_store_id,
               IDBKeyRange key_range,
-              pending_associated_remote<IDBCallbacks> pending_callbacks);
+              associated IDBCallbacks pending_callbacks);
   // Gets the current number of an IndexedDB ObjectStore's key generator. It
   // is implemented in the browser (more priviledged) and handles requests in
   // the renderer process: WebIDBDatabaseImpl::GetKeyGeneratorCurrentNumber()
   GetKeyGeneratorCurrentNumber(int64 transaction_id,
                                int64 object_store_id,
-                               pending_associated_remote<IDBCallbacks> pending_callbacks);
+                               associated IDBCallbacks pending_callbacks);
   Clear(int64 transaction_id,
         int64 object_store_id,
-        pending_associated_remote<IDBCallbacks> pending_callbacks);
+        associated IDBCallbacks pending_callbacks);
   CreateIndex(int64 transaction_id,
               int64 object_store_id,
               int64 index_id,
@@ -445,11 +445,11 @@ interface IDBDatabase {
 interface IDBFactory {
   // Gets high level info about databases that exist in the frame's
   // origin. Posts results to |pending_callbacks|.
-  GetDatabaseInfo(pending_associated_remote<IDBCallbacks> pending_callbacks);
+  GetDatabaseInfo(associated IDBCallbacks pending_callbacks);
 
   // Gets a list of database names that exist in the frame's
   // origin. Posts results to |pending_callbacks|.
-  GetDatabaseNames(pending_associated_remote<IDBCallbacks> pending_callbacks);
+  GetDatabaseNames(associated IDBCallbacks pending_callbacks);
 
   // Opens a database |name| in the frame's origin at version |version|.
   // |version_change_transaction_receiver| will have version change
@@ -457,17 +457,17 @@ interface IDBFactory {
   // to the transaction number for this connection's context.
   // Posts request events and results to |pending_callbacks| and database-level
   // events and results to |database_callbacks|.
-  Open(pending_associated_remote<IDBCallbacks> pending_callbacks,
-       pending_associated_remote<IDBDatabaseCallbacks> database_callbacks,
+  Open(associated IDBCallbacks pending_callbacks,
+       associated IDBDatabaseCallbacks database_callbacks,
        mojo_base.mojom.String16 name,
        int64 version,
-       pending_associated_receiver<IDBTransaction> version_change_transaction_receiver,
+       associated IDBTransaction& version_change_transaction_receiver,
        int64 transaction_id);
 
   // Deletes a database |name| in the frame's origin. If |force_close|
   // is true, any existing connections to that database will be closed
   // immediately.
-  DeleteDatabase(pending_associated_remote<IDBCallbacks> pending_callbacks,
+  DeleteDatabase(associated IDBCallbacks pending_callbacks,
                  mojo_base.mojom.String16 name, bool force_close);
 
   AbortTransactionsAndCompactDatabase() => (IDBStatus status);
diff --git a/third_party/blink/public/mojom/locks/lock_manager.mojom b/third_party/blink/public/mojom/locks/lock_manager.mojom
index 034d3c1e9fe3..800009a9aa3a 100644
--- a/third_party/blink/public/mojom/locks/lock_manager.mojom
+++ b/third_party/blink/public/mojom/locks/lock_manager.mojom
@@ -15,7 +15,7 @@ interface LockHandle {};
 interface LockRequest {
   // Request was granted. Associated to maintain ordering within
   // a LockManager, to match task queue behavior required by spec.
-  Granted(pending_associated_remote<LockHandle> lock_handle);
+  Granted(associated LockHandle lock_handle);
 
   // Request failed; e.g. request was only "if available" and it was not.
   Failed();
@@ -69,7 +69,7 @@ interface LockManager {
   RequestLock(string name,
               LockMode mode,
               WaitMode wait,
-              pending_associated_remote<LockRequest> request);
+              associated LockRequest request);
 
   // Produces a snapshot of the lock manager's state. Web applications
   // can use this for diagnostic purposes.
diff --git a/third_party/blink/public/mojom/mediasession/media_session.mojom b/third_party/blink/public/mojom/mediasession/media_session.mojom
index a5e407e1cb9c..2089ad82c116 100644
--- a/third_party/blink/public/mojom/mediasession/media_session.mojom
+++ b/third_party/blink/public/mojom/mediasession/media_session.mojom
@@ -47,7 +47,7 @@ struct SpecMediaMetadata {
 interface MediaSessionService {
   // MediaSessionClient interface is used to notify Blink MediaSession of
   // media control actions.
-  SetClient(pending_remote<MediaSessionClient> client);
+  SetClient(MediaSessionClient client);
 
   // Notifies the browser that the page specified its current playback state.
   SetPlaybackState(MediaSessionPlaybackState state);
diff --git a/third_party/blink/public/mojom/mediastream/aec_dump.mojom b/third_party/blink/public/mojom/mediastream/aec_dump.mojom
index bc922efea378..c6d99798b9ba 100644
--- a/third_party/blink/public/mojom/mediastream/aec_dump.mojom
+++ b/third_party/blink/public/mojom/mediastream/aec_dump.mojom
@@ -15,5 +15,5 @@ interface AecDumpAgent {
 // Interface used to register child processes that can generate AEC dump files.
 interface AecDumpManager {
   // Register the provided |agent| until disconnected.
-  Add(pending_remote<AecDumpAgent> agent);
+  Add(AecDumpAgent agent);
 };
diff --git a/third_party/blink/public/mojom/mediastream/media_devices.mojom b/third_party/blink/public/mojom/mediastream/media_devices.mojom
index 7a0af7798697..446a433401c3 100644
--- a/third_party/blink/public/mojom/mediastream/media_devices.mojom
+++ b/third_party/blink/public/mojom/mediastream/media_devices.mojom
@@ -110,7 +110,7 @@ interface MediaDevicesDispatcherHost {
   AddMediaDevicesListener(bool subscribe_audio_input,
                           bool subscribe_video_input,
                           bool subscribe_audio_output,
-                          pending_remote<MediaDevicesListener> listener);
+                          MediaDevicesListener listener);
 };
 
 // This object lives in the renderer process and is used by the browser process
diff --git a/third_party/blink/public/mojom/messaging/cloneable_message.mojom b/third_party/blink/public/mojom/messaging/cloneable_message.mojom
index 649af0bce940..236ad09bc5a7 100644
--- a/third_party/blink/public/mojom/messaging/cloneable_message.mojom
+++ b/third_party/blink/public/mojom/messaging/cloneable_message.mojom
@@ -41,5 +41,5 @@ struct CloneableMessage {
   mojo_base.mojom.UnguessableToken? locked_agent_cluster_id;
   // Tokens required to clone FileSystemFileHandles and/or
   // FileSystemDirectoryHandles.
-  array<pending_remote<NativeFileSystemTransferToken>> native_file_system_tokens;
+  array<NativeFileSystemTransferToken> native_file_system_tokens;
 };
diff --git a/third_party/blink/public/mojom/native_file_system/native_file_system_directory_handle.mojom b/third_party/blink/public/mojom/native_file_system/native_file_system_directory_handle.mojom
index 438d6704602f..bf417c28380d 100644
--- a/third_party/blink/public/mojom/native_file_system/native_file_system_directory_handle.mojom
+++ b/third_party/blink/public/mojom/native_file_system/native_file_system_directory_handle.mojom
@@ -12,8 +12,8 @@ import "third_party/blink/public/mojom/permissions/permission_status.mojom";
 // Union representing either a file or a directory handle. Used in APIs that
 // can return arbitrary handles.
 union NativeFileSystemHandle {
-  pending_remote<NativeFileSystemFileHandle> file;
-  pending_remote<NativeFileSystemDirectoryHandle> directory;
+  NativeFileSystemFileHandle file;
+  NativeFileSystemDirectoryHandle directory;
 };
 
 struct NativeFileSystemEntry {
@@ -52,7 +52,7 @@ interface NativeFileSystemDirectoryHandle {
   // created. Returns an error if the operation fails, or a handle to the newly
   // created file if the operation succeeds.
   GetFile(string basename, bool create) =>
-      (NativeFileSystemError result, pending_remote<NativeFileSystemFileHandle>? file);
+      (NativeFileSystemError result, NativeFileSystemFileHandle? file);
 
   // Returns a directory with the given |basename| that is a child of this
   // directory. If no such directory exists, and |create| is true, the directory
@@ -61,10 +61,10 @@ interface NativeFileSystemDirectoryHandle {
   // directory if the operation succeeds.
   GetDirectory(string basename, bool create) =>
       (NativeFileSystemError result,
-       pending_remote<NativeFileSystemDirectoryHandle>? directory);
+       NativeFileSystemDirectoryHandle? directory);
 
   // Returns all the direct children of this directory.
-  GetEntries(pending_remote<NativeFileSystemDirectoryEntriesListener> listener);
+  GetEntries(NativeFileSystemDirectoryEntriesListener listener);
 
   // Deletes an entry which is a child of this directory.
   // To delete recursively, set |recurse| to true.
@@ -73,5 +73,5 @@ interface NativeFileSystemDirectoryHandle {
   // Create a TransferToken for this directory. This token can be used to pass
   // a reference to this directory to other methods, for example to copy or move
   // the directory, or when transferring the handle over postMessage.
-  Transfer(pending_receiver<NativeFileSystemTransferToken> token);
+  Transfer(NativeFileSystemTransferToken& token);
 };
diff --git a/third_party/blink/public/mojom/native_file_system/native_file_system_file_handle.mojom b/third_party/blink/public/mojom/native_file_system/native_file_system_file_handle.mojom
index 48c561d739cc..46015bb68253 100644
--- a/third_party/blink/public/mojom/native_file_system/native_file_system_file_handle.mojom
+++ b/third_party/blink/public/mojom/native_file_system/native_file_system_file_handle.mojom
@@ -27,10 +27,10 @@ interface NativeFileSystemFileHandle {
 
   // Returns a FileWriter object. The FileWriter provides write operations on a file.
   CreateFileWriter(bool keep_existing_data) => (
-      NativeFileSystemError result, pending_remote<NativeFileSystemFileWriter>? writer);
+      NativeFileSystemError result, NativeFileSystemFileWriter? writer);
 
   // Create a TransferToken for this directory. This token can be used to pass
   // a reference to this directory to other methods, for example to copy or move
   // the file, or when transferring the handle over postMessage.
-  Transfer(pending_receiver<NativeFileSystemTransferToken> token);
+  Transfer(NativeFileSystemTransferToken& token);
 };
diff --git a/third_party/blink/public/mojom/native_file_system/native_file_system_file_writer.mojom b/third_party/blink/public/mojom/native_file_system/native_file_system_file_writer.mojom
index 64d1623c4754..4b2d4a0327d7 100644
--- a/third_party/blink/public/mojom/native_file_system/native_file_system_file_writer.mojom
+++ b/third_party/blink/public/mojom/native_file_system/native_file_system_file_writer.mojom
@@ -14,7 +14,7 @@ interface NativeFileSystemFileWriter {
   // written.
   // TODO(mek): This might need some way of reporting progress events back to
   // the renderer.
-  Write(uint64 offset, pending_remote<Blob> data) => (NativeFileSystemError result,
+  Write(uint64 offset, Blob data) => (NativeFileSystemError result,
                                       uint64 bytes_written);
 
   // Write data from |stream| to the given |position| in the file being written
diff --git a/third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom b/third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom
index 7dc9ee4052ae..13cb669949d6 100644
--- a/third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom
+++ b/third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom
@@ -35,7 +35,7 @@ interface NativeFileSystemManager {
   // Opens the sandboxed filesystem for the origin of the current document or worker.
   GetSandboxedFileSystem() =>
       (NativeFileSystemError result,
-       pending_remote<NativeFileSystemDirectoryHandle>? directory);
+       NativeFileSystemDirectoryHandle? directory);
 
   // Prompts the user to select a file from the native filesystem. Returns an
   // error code if something failed, or a list of the selected entries on
@@ -57,12 +57,12 @@ interface NativeFileSystemManager {
   // validate the redeemed token, including the token's origin, before binding the
   // FileSystemHandle.
   GetFileHandleFromToken(
-    pending_remote<NativeFileSystemTransferToken> token,
-    pending_receiver<NativeFileSystemFileHandle> file_handle);
+    NativeFileSystemTransferToken token,
+    NativeFileSystemFileHandle& file_handle);
 
   // Same as GetFileHandleFromToken(), but for FileSystemDirectoryHandles.
   // See GetFileHandleFromToken() comment above for details.
   GetDirectoryHandleFromToken(
-    pending_remote<NativeFileSystemTransferToken> token,
-    pending_receiver<NativeFileSystemDirectoryHandle> directory_handle);
+    NativeFileSystemTransferToken token,
+    NativeFileSystemDirectoryHandle& directory_handle);
 };
diff --git a/third_party/blink/public/mojom/native_file_system/native_file_system_transfer_token.mojom b/third_party/blink/public/mojom/native_file_system/native_file_system_transfer_token.mojom
index 59c41732d70c..22091e158fb5 100644
--- a/third_party/blink/public/mojom/native_file_system/native_file_system_transfer_token.mojom
+++ b/third_party/blink/public/mojom/native_file_system/native_file_system_transfer_token.mojom
@@ -14,5 +14,5 @@ interface NativeFileSystemTransferToken {
 
   // Used by BroadcastChannels to clone multiple FileSystemHandles from a
   // single serialized FileSystemHandle.
-  Clone(pending_receiver<NativeFileSystemTransferToken> token_clone);
+  Clone(NativeFileSystemTransferToken& token_clone);
 };
diff --git a/third_party/blink/public/mojom/notifications/notification_service.mojom b/third_party/blink/public/mojom/notifications/notification_service.mojom
index fac9b0cd01c4..c4714791a7aa 100644
--- a/third_party/blink/public/mojom/notifications/notification_service.mojom
+++ b/third_party/blink/public/mojom/notifications/notification_service.mojom
@@ -47,7 +47,7 @@ interface NotificationService {
         string token,
         NotificationData notification_data,
         NotificationResources notification_resources,
-        pending_remote<NonPersistentNotificationListener> event_listener);
+        NonPersistentNotificationListener event_listener);
 
   // Closes a notification that is not associated with a service worker.
   // |token| identifies which notification should be closed (must be non-empty).
diff --git a/third_party/blink/public/mojom/oom_intervention/oom_intervention.mojom b/third_party/blink/public/mojom/oom_intervention/oom_intervention.mojom
index c1908f25aa76..fd5282b3a526 100644
--- a/third_party/blink/public/mojom/oom_intervention/oom_intervention.mojom
+++ b/third_party/blink/public/mojom/oom_intervention/oom_intervention.mojom
@@ -48,7 +48,7 @@ interface OomIntervention {
   // host->OnHighMemoryUsage(). The renderer also triggers OOM intervention when
   // |renderer_pause_enabled|, |navigate_ads_enabled| or
   // |purge_v8_memory_enabled| is true.
-  StartDetection(pending_remote<OomInterventionHost> host,
+  StartDetection(OomInterventionHost host,
                  DetectionArgs detection_args,
                  bool renderer_pause_enabled,
                  bool navigate_ads_enabled,
diff --git a/third_party/blink/public/mojom/payments/payment_app.mojom b/third_party/blink/public/mojom/payments/payment_app.mojom
index 93c6fcc46290..f3c4707cae35 100644
--- a/third_party/blink/public/mojom/payments/payment_app.mojom
+++ b/third_party/blink/public/mojom/payments/payment_app.mojom
@@ -115,7 +115,7 @@ struct PaymentRequestEventData {
 
   // Handles events raised by the payment handler, such as "payment method
   // changed" event. NullRemote in content_browsertests.
-  pending_remote<PaymentHandlerHost>? payment_handler_host;
+  PaymentHandlerHost? payment_handler_host;
 };
 
 // This struct is provided to receive payment app response from render
diff --git a/third_party/blink/public/mojom/payments/payment_request.mojom b/third_party/blink/public/mojom/payments/payment_request.mojom
index 03a89ca83e03..1214eca90090 100644
--- a/third_party/blink/public/mojom/payments/payment_request.mojom
+++ b/third_party/blink/public/mojom/payments/payment_request.mojom
@@ -218,7 +218,7 @@ interface PaymentRequest {
   // |google_pay_bridge_eligible| is true when the renderer process deems the
   // current request eligible for the skip-to-GPay experimental flow. It is
   // ultimately up to the browser process to determine whether to trigger it.
-  Init(pending_remote<PaymentRequestClient> client,
+  Init(PaymentRequestClient client,
        array<PaymentMethodData> method_data,
        PaymentDetails details,
        PaymentOptions options,
diff --git a/third_party/blink/public/mojom/permissions/permission.mojom b/third_party/blink/public/mojom/permissions/permission.mojom
index be5e3edcdfbd..61461733b806 100644
--- a/third_party/blink/public/mojom/permissions/permission.mojom
+++ b/third_party/blink/public/mojom/permissions/permission.mojom
@@ -82,5 +82,5 @@ interface PermissionService {
   // access to |permission|. Closing the pipe will cancel the subscription.
   AddPermissionObserver(PermissionDescriptor permission,
                         PermissionStatus last_known_status,
-                        pending_remote<PermissionObserver> observer);
+                        PermissionObserver observer);
 };
diff --git a/third_party/blink/public/mojom/picture_in_picture/picture_in_picture.mojom b/third_party/blink/public/mojom/picture_in_picture/picture_in_picture.mojom
index f8880f49492a..a77c16a0a016 100644
--- a/third_party/blink/public/mojom/picture_in_picture/picture_in_picture.mojom
+++ b/third_party/blink/public/mojom/picture_in_picture/picture_in_picture.mojom
@@ -56,6 +56,6 @@ interface PictureInPictureService {
       viz.mojom.SurfaceId? surface_id,
       gfx.mojom.Size natural_size,
       bool show_play_pause_button,
-      pending_remote<PictureInPictureSessionObserver> observer)
-          => (pending_remote<PictureInPictureSession>? session, gfx.mojom.Size size);
+      PictureInPictureSessionObserver observer)
+          => (PictureInPictureSession? session, gfx.mojom.Size size);
 };
diff --git a/third_party/blink/public/mojom/presentation/presentation.mojom b/third_party/blink/public/mojom/presentation/presentation.mojom
index 8d0e80931554..d482a6b5cbba 100644
--- a/third_party/blink/public/mojom/presentation/presentation.mojom
+++ b/third_party/blink/public/mojom/presentation/presentation.mojom
@@ -87,8 +87,8 @@ interface PresentationConnection {
 // frame with a new connection to return to the presentation.
 struct PresentationConnectionResult {
   PresentationInfo presentation_info;
-  pending_remote<PresentationConnection> connection_remote;
-  pending_receiver<PresentationConnection> connection_receiver;
+  PresentationConnection connection_remote;
+  PresentationConnection& connection_receiver;
 };
 
 // Service provided by the browser process to implement parts of the
@@ -106,14 +106,14 @@ interface PresentationService {
   // Sets the PresentationController of the frame. This is called by the
   // controller page of a presentation to listen for screen availability and
   // initiate presentations.
-  SetController(pending_remote<PresentationController> controller);
+  SetController(PresentationController controller);
 
   // Sets the PresentationReceiver of the page. This is called by the
   // presentation page of a 1-UA presentation in order to receive updates on new
   // connections (initiated by a controller) becoming available.
   // TODO(crbug.com/749327): Move this method out of PresentationService and
   // define a new interface that implements only Presentation Receiver APIs.
-  SetReceiver(pending_remote<PresentationReceiver> receiver);
+  SetReceiver(PresentationReceiver receiver);
 
   ///////////// Functions here are for the controller part of the API. /////////
 
@@ -200,6 +200,6 @@ interface PresentationReceiver {
   // TODO(btolsch): Convert this to take a PresentationConnectionResult.
   OnReceiverConnectionAvailable(
       PresentationInfo info,
-      pending_remote<PresentationConnection> controller_connection,
-      pending_receiver<PresentationConnection> receiver_connection_receiver);
+      PresentationConnection controller_connection,
+      PresentationConnection& receiver_connection_receiver);
 };
diff --git a/third_party/blink/public/mojom/remote_objects/remote_objects.mojom b/third_party/blink/public/mojom/remote_objects/remote_objects.mojom
index 9bbb22d2e880..27b580e0e644 100644
--- a/third_party/blink/public/mojom/remote_objects/remote_objects.mojom
+++ b/third_party/blink/public/mojom/remote_objects/remote_objects.mojom
@@ -19,7 +19,7 @@ import "mojo/public/mojom/base/string16.mojom";
 interface RemoteObjectHost {
   // Binds |receiver| to an implementation of RemoteObject corresponding to
   // |object_id|.
-  GetObject(int32 object_id, pending_receiver<RemoteObject> receiver);
+  GetObject(int32 object_id, RemoteObject& receiver);
 
   // Ideally lifetime would be scoped to an associated RemoteObject pipe. This
   // is complicated by the fact that the missing support for associated
@@ -40,8 +40,8 @@ interface RemoteObject {
 interface RemoteObjectGatewayFactory {
   // Creates an implementation of RemoteObjectGateway associated with |host|
   // and binds it to |gateway|.
-  CreateRemoteObjectGateway(pending_remote<RemoteObjectHost> host,
-                            pending_receiver<RemoteObjectGateway> gateway);
+  CreateRemoteObjectGateway(RemoteObjectHost host,
+                            RemoteObjectGateway& gateway);
 };
 
 // Implemented in the renderer.
diff --git a/third_party/blink/public/mojom/serial/serial.mojom b/third_party/blink/public/mojom/serial/serial.mojom
index ea610c26002b..2d82e366d96f 100644
--- a/third_party/blink/public/mojom/serial/serial.mojom
+++ b/third_party/blink/public/mojom/serial/serial.mojom
@@ -36,5 +36,5 @@ interface SerialService {
   // Connects an instance of the SerialPort interface attached to the serial
   // port identified by |token|.
   GetPort(mojo_base.mojom.UnguessableToken token,
-          pending_receiver<device.mojom.SerialPort> port_receiver);
+          device.mojom.SerialPort& port_receiver);
 };
diff --git a/third_party/blink/public/mojom/service_worker/controller_service_worker.mojom b/third_party/blink/public/mojom/service_worker/controller_service_worker.mojom
index a0d424627f56..79881ef0b3b0 100644
--- a/third_party/blink/public/mojom/service_worker/controller_service_worker.mojom
+++ b/third_party/blink/public/mojom/service_worker/controller_service_worker.mojom
@@ -40,7 +40,7 @@ interface ControllerServiceWorker {
   // settles, or when the event handler ran without calling respondWith().
   DispatchFetchEventForSubresource(
       blink.mojom.DispatchFetchEventParams params,
-      pending_remote<blink.mojom.ServiceWorkerFetchResponseCallback> response_callback)
+      blink.mojom.ServiceWorkerFetchResponseCallback response_callback)
       => (blink.mojom.ServiceWorkerEventStatus status);
 
   // TODO(kinuko): Add DispatchExtendableMessageEvent() as well.
@@ -48,7 +48,7 @@ interface ControllerServiceWorker {
   // Connects a new pipe to this controller instance.
   // |cross_origin_embedder_policy| is the policy for the client which uses the
   // counterpart of |receiver|.
-  Clone(pending_receiver<ControllerServiceWorker> receiver,
+  Clone(ControllerServiceWorker& receiver,
         network.mojom.CrossOriginEmbedderPolicy cross_origin_embedder_policy);
 };
 
@@ -62,7 +62,7 @@ struct ControllerServiceWorkerInfo {
       blink.mojom.ControllerServiceWorkerMode.kNoController;
 
   // Non-null iff there is a controller and it has a fetch event handler.
-  pending_remote<ControllerServiceWorker>? remote_controller;
+  ControllerServiceWorker? remote_controller;
 
   // The client being controlled, used for FetchEvent#clientId. The ID is
   // issued by the browser process for this receiving client, and would
@@ -93,5 +93,5 @@ interface ControllerServiceWorkerConnector {
   // Resets the controller connection with the given |controller|, this
   // can be called when a new controller is given, e.g. due to claim().
   // |controller| can be null if it gets no controller.
-  UpdateController(pending_remote<ControllerServiceWorker>? controller);
+  UpdateController(ControllerServiceWorker? controller);
 };
diff --git a/third_party/blink/public/mojom/service_worker/dispatch_fetch_event_params.mojom b/third_party/blink/public/mojom/service_worker/dispatch_fetch_event_params.mojom
index 382be0b3dd04..9bd9b2a08270 100644
--- a/third_party/blink/public/mojom/service_worker/dispatch_fetch_event_params.mojom
+++ b/third_party/blink/public/mojom/service_worker/dispatch_fetch_event_params.mojom
@@ -12,8 +12,8 @@ import "third_party/blink/public/mojom/timing/worker_timing_container.mojom";
 // Used for service worker navigation preload, to create
 // FetchEvent#preloadResponse.
 struct FetchEventPreloadHandle {
-  pending_remote<network.mojom.URLLoader> url_loader;
-  pending_receiver<network.mojom.URLLoaderClient> url_loader_client_receiver;
+  network.mojom.URLLoader url_loader;
+  network.mojom.URLLoaderClient& url_loader_client_receiver;
 };
 
 // Parameters used for dispatching a FetchEvent.
@@ -29,7 +29,7 @@ struct DispatchFetchEventParams {
   // This is currently null for navigation because it's still being implemented.
   // TODO(https://crbug.com/900700): Make this non-nullable when implementation
   // is complete (including support for navigation requests).
-  pending_remote<blink.mojom.WorkerTimingContainer>? worker_timing_remote;
+  blink.mojom.WorkerTimingContainer? worker_timing_remote;
 
   // Whether this is a "fake" fetch event used to detect the offline capability
   // of the service worker. See more details at https://crbug.com/965802.
diff --git a/third_party/blink/public/mojom/service_worker/embedded_worker.mojom b/third_party/blink/public/mojom/service_worker/embedded_worker.mojom
index 0e31a39042cd..19bb0de8dae1 100644
--- a/third_party/blink/public/mojom/service_worker/embedded_worker.mojom
+++ b/third_party/blink/public/mojom/service_worker/embedded_worker.mojom
@@ -86,27 +86,27 @@ struct EmbeddedWorkerStartParams {
   RendererPreferences renderer_preferences;
 
   // Used to talk to the service worker from the browser process.
-  pending_receiver<ServiceWorker> service_worker_receiver;
+  ServiceWorker& service_worker_receiver;
 
   // Cloned and passed to each controllee to directly dispatch events from the
   // controllees.
-  pending_receiver<ControllerServiceWorker> controller_receiver;
+  ControllerServiceWorker& controller_receiver;
 
   // Information to transfer installed scripts from the browser to the renderer.
   ServiceWorkerInstalledScriptsInfo? installed_scripts_info;
 
   // Interface for the renderer to send the status updates to the browser.
-  pending_associated_remote<EmbeddedWorkerInstanceHost> instance_host;
+  associated EmbeddedWorkerInstanceHost instance_host;
 
   // Information for talking to the ServiceWorkerContainerHost, and other
   // params.
   ServiceWorkerProviderInfoForStartWorker provider_info;
 
   // Interface for the renderer to query the content settings in the browser.
-  pending_remote<WorkerContentSettingsProxy> content_settings_proxy;
+  WorkerContentSettingsProxy content_settings_proxy;
 
   // Interface for keeping track of the renderer preferences.
-  pending_receiver<RendererPreferenceWatcher> preference_watcher_receiver;
+  RendererPreferenceWatcher& preference_watcher_receiver;
 
   // Used to load subresources in the service worker.  This allows the service
   // worker to load chrome-extension:// URLs which the renderer's default
@@ -114,7 +114,7 @@ struct EmbeddedWorkerStartParams {
   URLLoaderFactoryBundle subresource_loader_factories;
 
   // Used for updating subresource loaders after NetworkService crash etc.
-  pending_receiver<SubresourceLoaderUpdater> subresource_loader_updater;
+  SubresourceLoaderUpdater& subresource_loader_updater;
 };
 
 // Holds timing information about the start worker sequence for UMA.
@@ -181,8 +181,8 @@ interface EmbeddedWorkerInstanceHost {
   // Indicates that the worker is ready for inspection, passes a DevToolsAgent
   // interface for this embedded worker and requests a corresponding host.
   // See DevToolsAgent for details.
-  OnReadyForInspection(pending_remote<blink.mojom.DevToolsAgent> agent,
-                       pending_receiver<blink.mojom.DevToolsAgentHost> agent_host);
+  OnReadyForInspection(blink.mojom.DevToolsAgent agent,
+                       blink.mojom.DevToolsAgentHost& agent_host);
   // Indicates that the worker has finished loading the main script.
   //
   // This is only called for new (non-installed) workers. It's used so the
diff --git a/third_party/blink/public/mojom/service_worker/service_worker.mojom b/third_party/blink/public/mojom/service_worker/service_worker.mojom
index 2dd155a959d7..290183cf7b68 100644
--- a/third_party/blink/public/mojom/service_worker/service_worker.mojom
+++ b/third_party/blink/public/mojom/service_worker/service_worker.mojom
@@ -171,7 +171,7 @@ interface ServiceWorker {
   // ServiceWorkerGlobalScope#serviceWorker object. JavaScript execution of the
   // service worker does not start until this message is received.
   InitializeGlobalScope(
-      pending_associated_remote<ServiceWorkerHost> service_worker_host,
+      associated ServiceWorkerHost service_worker_host,
       ServiceWorkerRegistrationObjectInfo registration_info,
       ServiceWorkerObjectInfo service_worker_info,
       FetchHandlerExistence fetch_handler_existence);
@@ -213,7 +213,7 @@ interface ServiceWorker {
   // calling respondWith().
   DispatchFetchEventForMainResource(
       DispatchFetchEventParams params,
-      pending_remote<ServiceWorkerFetchResponseCallback> response_callback)
+      ServiceWorkerFetchResponseCallback response_callback)
       => (ServiceWorkerEventStatus status);
 
   DispatchNotificationClickEvent(
@@ -249,17 +249,17 @@ interface ServiceWorker {
                             mojo_base.mojom.TimeDelta timeout)
       => (ServiceWorkerEventStatus status);
   DispatchAbortPaymentEvent(
-      pending_remote<payments.mojom.PaymentHandlerResponseCallback>
+      payments.mojom.PaymentHandlerResponseCallback
           result_of_abort_payment)
       => (ServiceWorkerEventStatus status);
   DispatchCanMakePaymentEvent(
       payments.mojom.CanMakePaymentEventData event_data,
-      pending_remote<payments.mojom.PaymentHandlerResponseCallback>
+      payments.mojom.PaymentHandlerResponseCallback
           result_of_can_make_payment)
       => (ServiceWorkerEventStatus status);
   DispatchPaymentRequestEvent(
       payments.mojom.PaymentRequestEventData request_data,
-      pending_remote<payments.mojom.PaymentHandlerResponseCallback>
+      payments.mojom.PaymentHandlerResponseCallback
           response_callback)
       => (ServiceWorkerEventStatus status);
   DispatchExtendableMessageEvent(ExtendableMessageEvent event)
diff --git a/third_party/blink/public/mojom/service_worker/service_worker_container.mojom b/third_party/blink/public/mojom/service_worker/service_worker_container.mojom
index 9c0b98505919..b9397ff6278d 100644
--- a/third_party/blink/public/mojom/service_worker/service_worker_container.mojom
+++ b/third_party/blink/public/mojom/service_worker/service_worker_container.mojom
@@ -88,11 +88,11 @@ interface ServiceWorkerContainerHost {
   // properly handling the failure and recording the reasons.
   // |purpose| is used for UMA.
   EnsureControllerServiceWorker(
-      pending_receiver<ControllerServiceWorker> receiver,
+      ControllerServiceWorker& receiver,
       ControllerServiceWorkerPurpose purpose);
 
   // Makes a new endpoint to this ServiceWorkerContainerHost.
-  CloneContainerHost(pending_receiver<ServiceWorkerContainerHost> container_host);
+  CloneContainerHost(ServiceWorkerContainerHost& container_host);
 
   // Gives a hint to the browser process to update the service worker after a
   // controlled page load. This message is meant to be sent at a time when page
diff --git a/third_party/blink/public/mojom/service_worker/service_worker_installed_scripts_manager.mojom b/third_party/blink/public/mojom/service_worker/service_worker_installed_scripts_manager.mojom
index 118ee7f92de6..26bd2db2351f 100644
--- a/third_party/blink/public/mojom/service_worker/service_worker_installed_scripts_manager.mojom
+++ b/third_party/blink/public/mojom/service_worker/service_worker_installed_scripts_manager.mojom
@@ -9,8 +9,8 @@ import "url/mojom/url.mojom";
 // This is sent from the browser to the renderer on starting worker.
 // Contains information about the scripts of an installed service worker.
 struct ServiceWorkerInstalledScriptsInfo {
-  pending_receiver<ServiceWorkerInstalledScriptsManager> manager_receiver;
-  pending_remote<ServiceWorkerInstalledScriptsManagerHost> manager_host_remote;
+  ServiceWorkerInstalledScriptsManager& manager_receiver;
+  ServiceWorkerInstalledScriptsManagerHost manager_host_remote;
   array<url.mojom.Url> installed_urls;
 };
 
diff --git a/third_party/blink/public/mojom/service_worker/service_worker_object.mojom b/third_party/blink/public/mojom/service_worker/service_worker_object.mojom
index 31c2fd9a7b66..6fe6fff09e91 100644
--- a/third_party/blink/public/mojom/service_worker/service_worker_object.mojom
+++ b/third_party/blink/public/mojom/service_worker/service_worker_object.mojom
@@ -23,10 +23,10 @@ struct ServiceWorkerObjectInfo {
   url.mojom.Url url;
 
   // This object's host in the browser process.
-  pending_associated_remote<ServiceWorkerObjectHost> host_remote;
+  associated ServiceWorkerObjectHost host_remote;
 
   // This object in the renderer process.
-  pending_associated_receiver<ServiceWorkerObject> receiver;
+  associated ServiceWorkerObject& receiver;
 };
 
 // The browser-side host of one ServiceWorker JavaScript object. The renderer
diff --git a/third_party/blink/public/mojom/service_worker/service_worker_provider.mojom b/third_party/blink/public/mojom/service_worker/service_worker_provider.mojom
index bb2b9105190b..c468f46254d4 100644
--- a/third_party/blink/public/mojom/service_worker/service_worker_provider.mojom
+++ b/third_party/blink/public/mojom/service_worker/service_worker_provider.mojom
@@ -21,8 +21,8 @@ const string kNavigation_ServiceWorkerSpec = "navigation:service_worker";
 // for a service worker client (window or web worker) to talk with the
 // ServiceWorkerContainerHost in the browser process.
 struct ServiceWorkerProviderInfoForClient {
-  pending_associated_remote<ServiceWorkerContainerHost> host_remote;
-  pending_associated_receiver<ServiceWorkerContainer> client_receiver;
+  associated ServiceWorkerContainerHost host_remote;
+  associated ServiceWorkerContainer& client_receiver;
 };
 
 // Sent from the browser process to the renderer. Contains parameters used for
@@ -34,21 +34,21 @@ struct ServiceWorkerProviderInfoForStartWorker {
   // No methods on |host_remote| are called, but it's needed to keep the host
   // implementation in the browser process alive.
   // TODO(https://crbug.com/931087): Use a separate interface.
-  pending_associated_remote<ServiceWorkerContainerHost> host_remote;
+  associated ServiceWorkerContainerHost host_remote;
 
   // The loader to use for loading the worker's main script and
   // importScripts().
-  pending_remote<network.mojom.URLLoaderFactory>? script_loader_factory_remote;
+  network.mojom.URLLoaderFactory? script_loader_factory_remote;
 
   // |cache_storage| is an optional optimization so the service worker can use
   // the Cache Storage API immediately without using InterfaceProvider. May be
   // NullRemote for service workers created for update checks, as the
   // optimization would be wasteful because these workers usually are aborted
   // after the byte-to-byte update check before running.
-  pending_remote<CacheStorage>? cache_storage;
+  CacheStorage? cache_storage;
 
   // Used for accessing services from the worker.
-  pending_remote<blink.mojom.BrowserInterfaceBroker> browser_interface_broker;
+  blink.mojom.BrowserInterfaceBroker browser_interface_broker;
 };
 
 // ServiceWorkerWorkerClient represents a service worker client that is a worker
@@ -71,9 +71,9 @@ interface ServiceWorkerWorkerClient {
 // nested workers.
 interface ServiceWorkerWorkerClientRegistry {
   // Adds a new ServiceWorkerWorkerClient.
-  RegisterWorkerClient(pending_remote<ServiceWorkerWorkerClient> client);
+  RegisterWorkerClient(ServiceWorkerWorkerClient client);
 
   // Clones this host.
   CloneWorkerClientRegistry(
-      pending_receiver<ServiceWorkerWorkerClientRegistry> host);
+      ServiceWorkerWorkerClientRegistry& host);
 };
diff --git a/third_party/blink/public/mojom/service_worker/service_worker_registration.mojom b/third_party/blink/public/mojom/service_worker/service_worker_registration.mojom
index abff2eec9b70..477ed73f5434 100644
--- a/third_party/blink/public/mojom/service_worker/service_worker_registration.mojom
+++ b/third_party/blink/public/mojom/service_worker/service_worker_registration.mojom
@@ -31,11 +31,11 @@ struct ServiceWorkerRegistrationObjectInfo {
 
   // Holds one mojo connection to browser process, acts as a reference count to
   // control lifetime of ServiceWorkerRegistration in the browser process.
-  pending_associated_remote<ServiceWorkerRegistrationObjectHost> host_remote;
+  associated ServiceWorkerRegistrationObjectHost host_remote;
 
   // |receiver| is expected to be bound in the renderer process. The other end
   // point of this Mojo connection is held by the browser process.
-  pending_associated_receiver<ServiceWorkerRegistrationObject> receiver;
+  associated ServiceWorkerRegistrationObject& receiver;
 
   // Corresponds to ServiceWorkerRegistration#{installing,waiting,active}.
   // Null value means the corresponding object does not exist.
diff --git a/third_party/blink/public/mojom/service_worker/service_worker_stream_handle.mojom b/third_party/blink/public/mojom/service_worker/service_worker_stream_handle.mojom
index 28402b630d51..71310656b2ab 100644
--- a/third_party/blink/public/mojom/service_worker/service_worker_stream_handle.mojom
+++ b/third_party/blink/public/mojom/service_worker/service_worker_stream_handle.mojom
@@ -13,5 +13,5 @@ interface ServiceWorkerStreamCallback {
 
 struct ServiceWorkerStreamHandle {
   handle<data_pipe_consumer> stream;
-  pending_receiver<ServiceWorkerStreamCallback> callback_receiver;
+  ServiceWorkerStreamCallback& callback_receiver;
 };
diff --git a/third_party/blink/public/mojom/speech/speech_recognizer.mojom b/third_party/blink/public/mojom/speech/speech_recognizer.mojom
index 18392faeb7a1..01d5fa144653 100644
--- a/third_party/blink/public/mojom/speech/speech_recognizer.mojom
+++ b/third_party/blink/public/mojom/speech/speech_recognizer.mojom
@@ -13,11 +13,11 @@ import "third_party/blink/public/mojom/speech/speech_recognition_error.mojom";
 struct StartSpeechRecognitionRequestParams {
   // Used to create a connection with a SpeechRecognitionSession implementation
   // that will be created when the session is created.
-  pending_receiver<SpeechRecognitionSession> session_receiver;
+  SpeechRecognitionSession& session_receiver;
 
   // Used by the browser to communicate with a SpeechRecognitionSessionClient
   // implementation created for the new session.
-  pending_remote<SpeechRecognitionSessionClient> client;
+  SpeechRecognitionSessionClient client;
 
   // Language to use for speech recognition.
   string language;
diff --git a/third_party/blink/public/mojom/speech/speech_synthesis.mojom b/third_party/blink/public/mojom/speech/speech_synthesis.mojom
index d809847fd855..63a9f66f163b 100644
--- a/third_party/blink/public/mojom/speech/speech_synthesis.mojom
+++ b/third_party/blink/public/mojom/speech/speech_synthesis.mojom
@@ -64,11 +64,11 @@ interface SpeechSynthesisClient {
 interface SpeechSynthesis {
   // Observers are notified once upon being added, to receive the current voice
   // list. They are notified again whenever the voice list changes.
-  AddVoiceListObserver(pending_remote<SpeechSynthesisVoiceListObserver> observer);
+  AddVoiceListObserver(SpeechSynthesisVoiceListObserver observer);
 
   // Begin speaking the given utterance. Events will be delivered to the client.
   Speak(SpeechSynthesisUtterance utterance,
-        pending_remote<SpeechSynthesisClient> client);
+        SpeechSynthesisClient client);
 
   // Pause speaking all utterances.
   Pause();
diff --git a/third_party/blink/public/mojom/usb/web_usb_service.mojom b/third_party/blink/public/mojom/usb/web_usb_service.mojom
index d10d99e3ef3c..3f9afad65e04 100644
--- a/third_party/blink/public/mojom/usb/web_usb_service.mojom
+++ b/third_party/blink/public/mojom/usb/web_usb_service.mojom
@@ -18,7 +18,7 @@ interface WebUsbService {
 
   // Requests a device by guid.
   GetDevice(string guid,
-            pending_receiver<device.mojom.UsbDevice> device_receiver);
+            device.mojom.UsbDevice& device_receiver);
 
   // Get permission from user to use a device.
   //
@@ -31,5 +31,5 @@ interface WebUsbService {
 
   // Sets the client for this WebUsbService.
   SetClient(
-      pending_associated_remote<device.mojom.UsbDeviceManagerClient> client);
+      associated device.mojom.UsbDeviceManagerClient client);
 };
diff --git a/third_party/blink/public/mojom/wake_lock/wake_lock.mojom b/third_party/blink/public/mojom/wake_lock/wake_lock.mojom
index 3063bdf22420..f12ad674bd5b 100644
--- a/third_party/blink/public/mojom/wake_lock/wake_lock.mojom
+++ b/third_party/blink/public/mojom/wake_lock/wake_lock.mojom
@@ -14,5 +14,5 @@ interface WakeLockService {
   GetWakeLock(device.mojom.WakeLockType type,
               device.mojom.WakeLockReason reason,
               string description,
-              pending_receiver<device.mojom.WakeLock> wake_lock);
+              device.mojom.WakeLock& wake_lock);
 };
diff --git a/third_party/blink/public/mojom/webauthn/virtual_authenticator.mojom b/third_party/blink/public/mojom/webauthn/virtual_authenticator.mojom
index 8d2efe8825e9..e70cc0fa2d59 100644
--- a/third_party/blink/public/mojom/webauthn/virtual_authenticator.mojom
+++ b/third_party/blink/public/mojom/webauthn/virtual_authenticator.mojom
@@ -51,8 +51,8 @@ interface VirtualAuthenticator {
 // Manages a virtual environment where the Web Authentication API talks to a
 // set of virtual authenticators instead of real physical devices.
 interface VirtualAuthenticatorManager {
-  CreateAuthenticator(VirtualAuthenticatorOptions options) => (pending_remote<VirtualAuthenticator> authenticator);
-  GetAuthenticators() => (array<pending_remote<VirtualAuthenticator>> authenticators);
+  CreateAuthenticator(VirtualAuthenticatorOptions options) => (VirtualAuthenticator authenticator);
+  GetAuthenticators() => (array<VirtualAuthenticator> authenticators);
   RemoveAuthenticator(string id) => (bool removed);
   ClearAuthenticators() => ();
 };
diff --git a/third_party/blink/public/mojom/websockets/websocket_connector.mojom b/third_party/blink/public/mojom/websockets/websocket_connector.mojom
index ec5af020991d..2a3c2fdc171e 100644
--- a/third_party/blink/public/mojom/websockets/websocket_connector.mojom
+++ b/third_party/blink/public/mojom/websockets/websocket_connector.mojom
@@ -19,5 +19,5 @@ interface WebSocketConnector {
           array<string> requested_protocols,
           url.mojom.Url site_for_cookies,
           string? user_agent,
-          pending_remote<network.mojom.WebSocketHandshakeClient> handshake_client);
+          network.mojom.WebSocketHandshakeClient handshake_client);
 };
diff --git a/third_party/blink/public/mojom/webtransport/quic_transport_connector.mojom b/third_party/blink/public/mojom/webtransport/quic_transport_connector.mojom
index 1475cad7db8f..1b5c9da69038 100644
--- a/third_party/blink/public/mojom/webtransport/quic_transport_connector.mojom
+++ b/third_party/blink/public/mojom/webtransport/quic_transport_connector.mojom
@@ -13,5 +13,5 @@ interface QuicTransportConnector {
   // Starts an opening handshake.
   // It is recommended to detect mojo connection errors on |client|.
   Connect(url.mojom.Url url,
-          pending_remote<network.mojom.QuicTransportHandshakeClient> client);
+          network.mojom.QuicTransportHandshakeClient client);
 };
diff --git a/third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom b/third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom
index 7c6ca2eff2ee..65d1b203ba95 100644
--- a/third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom
+++ b/third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom
@@ -29,7 +29,7 @@ interface DedicatedWorkerHostFactoryClient {
   // Called when the worker host is created.
   OnWorkerHostCreated(
       // Used for accessing services from the worker.
-      pending_remote<blink.mojom.BrowserInterfaceBroker>
+      blink.mojom.BrowserInterfaceBroker
           browser_interface_broker);
 
   // Called when the worker host started loading the main worker script. This
@@ -53,7 +53,7 @@ interface DedicatedWorkerHostFactoryClient {
       URLLoaderFactoryBundle subresource_loader_factories,
 
       // Used for updating subresource loaders after NetworkService crash.
-      pending_receiver<SubresourceLoaderUpdater> subresource_loader_updater,
+      SubresourceLoaderUpdater& subresource_loader_updater,
 
       // Used to make fetches from the worker go through the controller service
       // worker. This is null when there're no controller service worker.
@@ -79,9 +79,9 @@ interface DedicatedWorkerHostFactory {
   // DedicatedWorkerGlobalScope).
   CreateWorkerHost(
       url.mojom.Origin origin,
-      pending_receiver<blink.mojom.BrowserInterfaceBroker>
+      blink.mojom.BrowserInterfaceBroker&
           browser_interface_broker,
-      pending_receiver<DedicatedWorkerHost> host);
+      DedicatedWorkerHost& host);
 
   // PlzDedicatedWorker:
   // The factory client should call this instead of CreateWorkerHost() when
@@ -101,7 +101,7 @@ interface DedicatedWorkerHostFactory {
       network.mojom.CredentialsMode credentials_mode,
       blink.mojom.FetchClientSettingsObject
           outside_fetch_client_settings_object,
-      pending_remote<blink.mojom.BlobURLToken>? blob_url_token,
-      pending_remote<DedicatedWorkerHostFactoryClient> client,
-      pending_receiver<DedicatedWorkerHost> host);
+      blink.mojom.BlobURLToken? blob_url_token,
+      DedicatedWorkerHostFactoryClient client,
+      DedicatedWorkerHost& host);
 };
diff --git a/third_party/blink/public/mojom/worker/shared_worker_connector.mojom b/third_party/blink/public/mojom/worker/shared_worker_connector.mojom
index 95530b95905f..d78248f25192 100644
--- a/third_party/blink/public/mojom/worker/shared_worker_connector.mojom
+++ b/third_party/blink/public/mojom/worker/shared_worker_connector.mojom
@@ -22,8 +22,8 @@ interface SharedWorkerConnector {
   Connect(SharedWorkerInfo info,
           blink.mojom.FetchClientSettingsObject
               outside_fetch_client_settings_object,
-          pending_remote<SharedWorkerClient> client,
+          SharedWorkerClient client,
           SharedWorkerCreationContextType creation_context_type,
           handle<message_pipe> message_port,
-          pending_remote<BlobURLToken>? blob_url_token);
+          BlobURLToken? blob_url_token);
 };
diff --git a/third_party/blink/public/mojom/worker/shared_worker_factory.mojom b/third_party/blink/public/mojom/worker/shared_worker_factory.mojom
index 9aaade11f92a..9ffad560422d 100644
--- a/third_party/blink/public/mojom/worker/shared_worker_factory.mojom
+++ b/third_party/blink/public/mojom/worker/shared_worker_factory.mojom
@@ -36,8 +36,8 @@ interface SharedWorkerFactory {
       bool pause_on_start,
       mojo_base.mojom.UnguessableToken devtools_worker_token,
       RendererPreferences renderer_preferences,
-      pending_receiver<RendererPreferenceWatcher> preference_watcher_receiver,
-      pending_remote<WorkerContentSettingsProxy> content_settings,
+      RendererPreferenceWatcher& preference_watcher_receiver,
+      WorkerContentSettingsProxy content_settings,
 
       // The info about the service worker provider in the browser process that
       // provides support for this worker to be a service worker client.
@@ -64,10 +64,10 @@ interface SharedWorkerFactory {
       // worker. This is null when there're no controller service worker.
       ControllerServiceWorkerInfo? controller_info,
 
-      pending_remote<SharedWorkerHost> host,
-      pending_receiver<SharedWorker> shared_worker,
+      SharedWorkerHost host,
+      SharedWorker& shared_worker,
 
       // BrowserInterfaceBroker for providing browser interfaces.
-      pending_remote<blink.mojom.BrowserInterfaceBroker>
+      blink.mojom.BrowserInterfaceBroker
           browser_interface_broker);
 };
diff --git a/third_party/blink/public/mojom/worker/shared_worker_host.mojom b/third_party/blink/public/mojom/worker/shared_worker_host.mojom
index d18f1f280941..5e8ec45a41c4 100644
--- a/third_party/blink/public/mojom/worker/shared_worker_host.mojom
+++ b/third_party/blink/public/mojom/worker/shared_worker_host.mojom
@@ -22,8 +22,8 @@ interface SharedWorkerHost {
   // Indicates that the shared worker is ready for inspection,
   // passes a DevToolsAgent interface for this worker and requests
   // a corresponding host. See DevToolsAgent for details.
-  OnReadyForInspection(pending_remote<blink.mojom.DevToolsAgent> agent,
-                       pending_receiver<blink.mojom.DevToolsAgentHost> agent_host);
+  OnReadyForInspection(blink.mojom.DevToolsAgent agent,
+                       blink.mojom.DevToolsAgentHost& agent_host);
 
   // Indicates that the script failed to load.
   OnScriptLoadFailed();
