void RemoteServiceWorkerImpl::PostMessage(
    RefPtr<ServiceWorkerCloneData>&& aData, const ClientInfo& aClientInfo,
    const ClientState& aClientState) {
  NS_ASSERT_OWNINGTHREAD(RemoteServiceWorkerImpl);
  if (!mActor) {
    return;
  }

  ClonedMessageData data;
  if (!aData->BuildClonedMessageDataForBackgroundChild(mActor->Manager(),
                                                       data)) {
    return;
  }

  mActor->SendPostMessage(
      data, ClientInfoAndState(aClientInfo.ToIPC(), aClientState.ToIPC()));
}