diff --git a/dom/base/nsFrameMessageManager.cpp b/dom/base/nsFrameMessageManager.cpp index 8f913f31840adb426af3ab2500aa2a0d969c6c3a..91e034c18f50dd4e5a0b953a4aaebd2774bce3aa 100644 --- a/dom/base/nsFrameMessageManager.cpp +++ b/dom/base/nsFrameMessageManager.cpp @@ -469,15 +469,6 @@ bool nsFrameMessageManager::GetParamsForMessage(JSContext* aCx, static bool sSendingSyncMessage = false; -static bool AllowMessage(size_t aDataLength, const nsAString& aMessageName) { - // A message includes more than structured clone data, so subtract - // 20KB to make it more likely that a message within this bound won't - // result in an overly large IPC message. - static const size_t kMaxMessageSize = - IPC::Channel::kMaximumMessageSize - 20 * 1024; - return aDataLength < kMaxMessageSize; -} - void nsFrameMessageManager::SendSyncMessage(JSContext* aCx, const nsAString& aMessageName, JS::Handle<JS::Value> aObj, @@ -511,11 +502,6 @@ void nsFrameMessageManager::SendSyncMessage(JSContext* aCx, } #endif - if (!AllowMessage(data.DataLength(), aMessageName)) { - aError.Throw(NS_ERROR_FAILURE); - return; - } - if (!mCallback) { aError.Throw(NS_ERROR_NOT_INITIALIZED); return; @@ -593,11 +579,6 @@ void nsFrameMessageManager::DispatchAsyncMessage( } #endif - if (!AllowMessage(data.DataLength(), aMessageName)) { - aError.Throw(NS_ERROR_FAILURE); - return; - } - aError = DispatchAsyncMessageInternal(aCx, aMessageName, data); } diff --git a/dom/ipc/jsactor/JSActor.cpp b/dom/ipc/jsactor/JSActor.cpp index c409d6a1bb2f7e91ce9694d02a8c16adf6ca3b4b..4e4a2b7bacf4d068b93251331000ed32e3a1dc97 100644 --- a/dom/ipc/jsactor/JSActor.cpp +++ b/dom/ipc/jsactor/JSActor.cpp @@ -129,21 +129,6 @@ nsresult JSActor::QueryInterfaceActor(const nsIID& aIID, void** aPtr) { return mWrappedJS->QueryInterface(aIID, aPtr); } -/* static */ -bool JSActor::AllowMessage(const JSActorMessageMeta& aMetadata, - size_t aDataLength) { - // A message includes more than structured clone data, so subtract - // 20KB to make it more likely that a message within this bound won't - // result in an overly large IPC message. - static const size_t kMaxMessageSize = - IPC::Channel::kMaximumMessageSize - 20 * 1024; - if (aDataLength < kMaxMessageSize) { - return true; - } - - return false; -} - void JSActor::SetName(const nsACString& aName) { MOZ_ASSERT(mName.IsEmpty(), "Cannot set name twice!"); mName = aName; diff --git a/dom/ipc/jsactor/JSActor.h b/dom/ipc/jsactor/JSActor.h index b4bd1e421daa4e8d1d4e180f5441472896df4478..54af93d1cee4432c469ff7a087438aa07b3b0446 100644 --- a/dom/ipc/jsactor/JSActor.h +++ b/dom/ipc/jsactor/JSActor.h @@ -69,11 +69,6 @@ class JSActor : public nsISupports, public nsWrapperCache { Maybe<ipc::StructuredCloneData>&& aStack, ErrorResult& aRv) = 0; - // Check if a message is so large that IPC will probably crash if we try to - // send it. If it is too large, record telemetry about the message. - static bool AllowMessage(const JSActorMessageMeta& aMetadata, - size_t aDataLength); - // Helper method to send an in-process raw message. using OtherSideCallback = std::function<already_AddRefed<JSActorManager>()>; static void SendRawMessageInProcess(const JSActorMessageMeta& aMeta, diff --git a/dom/ipc/jsactor/JSProcessActorChild.cpp b/dom/ipc/jsactor/JSProcessActorChild.cpp index 6c23af656e34ef225b845e40dc23e241788ef024..a9379838cfa41ac0c641c0b44ddd3436dc481221 100644 --- a/dom/ipc/jsactor/JSProcessActorChild.cpp +++ b/dom/ipc/jsactor/JSProcessActorChild.cpp @@ -33,21 +33,6 @@ void JSProcessActorChild::SendRawMessage( return; } - size_t length = 0; - if (aData) { - length += aData->DataLength(); - } - if (aStack) { - length += aStack->DataLength(); - } - if (NS_WARN_IF(!AllowMessage(aMeta, length))) { - aRv.ThrowDataCloneError( - nsPrintfCString("JSProcessActorChild serialization error: data too " - "large, in actor '%s'", - PromiseFlatCString(aMeta.actorName()).get())); - return; - } - // If the parent side is in the same process, we have a PInProcess manager, // and can dispatch the message directly to the event loop. ContentChild* contentChild = mManager->AsContentChild(); diff --git a/dom/ipc/jsactor/JSProcessActorParent.cpp b/dom/ipc/jsactor/JSProcessActorParent.cpp index 52490f167583b8d773b2d6e5c4ff55453c7208be..eec8ad17c73b1123e7d390e268603bc7b7b81802 100644 --- a/dom/ipc/jsactor/JSProcessActorParent.cpp +++ b/dom/ipc/jsactor/JSProcessActorParent.cpp @@ -46,21 +46,6 @@ void JSProcessActorParent::SendRawMessage( return; } - size_t length = 0; - if (aData) { - length += aData->DataLength(); - } - if (aStack) { - length += aStack->DataLength(); - } - if (NS_WARN_IF(!AllowMessage(aMeta, length))) { - aRv.ThrowDataError(nsPrintfCString( - "Actor '%s' cannot send message '%s': message too long.", - PromiseFlatCString(aMeta.actorName()).get(), - NS_ConvertUTF16toUTF8(aMeta.messageName()).get())); - return; - } - // If the parent side is in the same process, we have a PInProcess manager, // and can dispatch the message directly to the event loop. ContentParent* contentParent = mManager->AsContentParent(); diff --git a/dom/ipc/jsactor/JSWindowActorChild.cpp b/dom/ipc/jsactor/JSWindowActorChild.cpp index db3c60963c53239b6ebd37b51d92709ecf4a2873..a36c065028269b5052a1d54864c258c5707535c8 100644 --- a/dom/ipc/jsactor/JSWindowActorChild.cpp +++ b/dom/ipc/jsactor/JSWindowActorChild.cpp @@ -53,22 +53,6 @@ void JSWindowActorChild::SendRawMessage( return; } - size_t length = 0; - if (aData) { - length += aData->DataLength(); - } - if (aStack) { - length += aStack->DataLength(); - } - - if (NS_WARN_IF(!AllowMessage(aMeta, length))) { - aRv.ThrowDataCloneError( - nsPrintfCString("JSWindowActorChild serialization error: data too " - "large, in actor '%s'", - PromiseFlatCString(aMeta.actorName()).get())); - return; - } - // Cross-process case - send data over WindowGlobalChild to other side. Maybe<ClonedMessageData> msgData; if (aData) { diff --git a/dom/ipc/jsactor/JSWindowActorParent.cpp b/dom/ipc/jsactor/JSWindowActorParent.cpp index 73455dc9fdd71c462950fa27182321633d9a58ea..0bb82a9b8ec68f29b08cded32ec7c65d49c0c06f 100644 --- a/dom/ipc/jsactor/JSWindowActorParent.cpp +++ b/dom/ipc/jsactor/JSWindowActorParent.cpp @@ -51,22 +51,6 @@ void JSWindowActorParent::SendRawMessage( return; } - size_t length = 0; - if (aData) { - length += aData->DataLength(); - } - if (aStack) { - length += aStack->DataLength(); - } - - if (NS_WARN_IF(!AllowMessage(aMeta, length))) { - aRv.ThrowDataCloneError( - nsPrintfCString("JSWindowActorParent serialization error: data too " - "large, in actor '%s'", - PromiseFlatCString(aMeta.actorName()).get())); - return; - } - Maybe<ClonedMessageData> msgData; if (aData) { msgData.emplace();