mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-09 21:00:42 +02:00
In JS StructuredClone BufferList<SystemAllocPolicy> is typedef'd to JSStructuredCloneData and use everywhere in gecko that stores structured clone data. This patch changed some raw pointers to UniquePtr<JSStructuredCloneData> and some to stack allocated JSStructuredCloneData for better life time management. Some parameters or methods are deleted because of changing to the new data structure. MessagePortMessage now has the exactly same structure with ClonedMessageData. Maybe in the future they can be consolidated. MozReview-Commit-ID: 1IY9p5eKLgv
57 lines
1.8 KiB
C++
57 lines
1.8 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef mozilla_dom_SharedMessagePortMessage_h
|
|
#define mozilla_dom_SharedMessagePortMessage_h
|
|
|
|
#include "mozilla/dom/StructuredCloneHolder.h"
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
class MessagePortChild;
|
|
class MessagePortMessage;
|
|
class MessagePortParent;
|
|
|
|
class SharedMessagePortMessage final : public StructuredCloneHolder
|
|
{
|
|
public:
|
|
NS_INLINE_DECL_REFCOUNTING(SharedMessagePortMessage)
|
|
|
|
SharedMessagePortMessage()
|
|
: StructuredCloneHolder(CloningSupported, TransferringSupported,
|
|
StructuredCloneScope::DifferentProcess)
|
|
{}
|
|
|
|
static void
|
|
FromSharedToMessagesChild(
|
|
MessagePortChild* aActor,
|
|
const nsTArray<RefPtr<SharedMessagePortMessage>>& aData,
|
|
nsTArray<MessagePortMessage>& aArray);
|
|
|
|
static bool
|
|
FromMessagesToSharedChild(
|
|
nsTArray<MessagePortMessage>& aArray,
|
|
FallibleTArray<RefPtr<SharedMessagePortMessage>>& aData);
|
|
|
|
static bool
|
|
FromSharedToMessagesParent(
|
|
MessagePortParent* aActor,
|
|
const nsTArray<RefPtr<SharedMessagePortMessage>>& aData,
|
|
FallibleTArray<MessagePortMessage>& aArray);
|
|
|
|
static bool
|
|
FromMessagesToSharedParent(
|
|
nsTArray<MessagePortMessage>& aArray,
|
|
FallibleTArray<RefPtr<SharedMessagePortMessage>>& aData);
|
|
|
|
private:
|
|
~SharedMessagePortMessage() {}
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_dom_SharedMessagePortMessage_h
|