bool TCPSocketParent::RecvData(const SendableData& aData, const uint32_t& aTrackingNumber) { NS_ENSURE_TRUE(mIntermediary, true); nsresult rv; switch (aData.type()) { case SendableData::TArrayOfuint8_t: { AutoSafeJSContext cx; JSAutoRequest ar(cx); JS::Rooted<JS::Value> val(cx); JS::Rooted<JSObject*> obj(cx, mIntermediaryObj); IPC::DeserializeArrayBuffer(obj, aData.get_ArrayOfuint8_t(), &val); rv = mIntermediary->OnRecvSendArrayBuffer(val, aTrackingNumber); NS_ENSURE_SUCCESS(rv, true); break; } case SendableData::TnsString: rv = mIntermediary->OnRecvSendString(aData.get_nsString(), aTrackingNumber); NS_ENSURE_SUCCESS(rv, true); break; default: MOZ_CRASH("unexpected SendableData type"); } return true; }
bool TCPSocketParent::RecvData(const SendableData& aData) { NS_ENSURE_TRUE(mIntermediary, true); nsresult rv; switch (aData.type()) { case SendableData::TArrayOfuint8_t: { jsval val; IPC::DeserializeUint8Array(mIntermediaryObj, aData.get_ArrayOfuint8_t(), &val); rv = mIntermediary->SendArrayBuffer(val); NS_ENSURE_SUCCESS(rv, true); break; } case SendableData::TnsString: rv = mIntermediary->SendString(aData.get_nsString()); NS_ENSURE_SUCCESS(rv, true); break; default: MOZ_NOT_REACHED(); return false; } return true; }