Bug 1673424 - Fix includes around StructuredCloneData.h.

Differential Revision: https://phabricator.services.mozilla.com/D94763

Depends on D94762
This commit is contained in:
Simon Giesecke 2020-11-23 16:07:01 +00:00
Родитель 9093e5e1bf
Коммит 6f7b6986d5
19 изменённых файлов: 231 добавлений и 123 удалений

Просмотреть файл

@ -9,8 +9,8 @@
#include "mozilla/Attributes.h"
#include "mozilla/dom/MessageManagerGlobal.h"
#include "mozilla/dom/MessageManagerCallback.h"
#include "nsCOMPtr.h"
#include "nsFrameMessageManager.h"
#include "nsIScriptContext.h"
#include "nsIScriptContext.h"
#include "nsServiceManagerUtils.h"
@ -18,6 +18,8 @@
#include "nsWrapperCache.h"
#include "xpcpublic.h"
class nsFrameMessageManager;
namespace mozilla {
namespace dom {

Просмотреть файл

@ -11,8 +11,8 @@
#include "mozilla/DOMEventTargetHelper.h"
#include "mozilla/RefPtr.h"
#include "mozilla/dom/ContentFrameMessageManager.h"
#include "mozilla/dom/MessageManagerCallback.h"
#include "nsCOMPtr.h"
#include "nsFrameMessageManager.h"
#include "nsIScriptContext.h"
#include "nsIScriptObjectPrincipal.h"
#include "nsIScriptContext.h"
@ -20,6 +20,8 @@
#include "nsCOMArray.h"
#include "nsWeakReference.h"
class nsFrameMessageManager;
namespace mozilla {
class EventChainPreVisitor;

Просмотреть файл

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 dom_base_MessageManagerCallback_h__
#define dom_base_MessageManagerCallback_h__
#include "nsStringFwd.h"
#include "nsTArrayForwardDeclare.h"
namespace mozilla {
namespace dom {
class ProcessMessageManager;
namespace ipc {
class StructuredCloneData;
class MessageManagerCallback {
public:
virtual ~MessageManagerCallback() = default;
virtual bool DoLoadMessageManagerScript(const nsAString& aURL,
bool aRunInGlobalScope) {
return true;
}
virtual bool DoSendBlockingMessage(const nsAString& aMessage,
StructuredCloneData& aData,
nsTArray<StructuredCloneData>* aRetVal) {
return true;
}
virtual nsresult DoSendAsyncMessage(const nsAString& aMessage,
StructuredCloneData& aData) {
return NS_OK;
}
virtual mozilla::dom::ProcessMessageManager* GetProcessMessageManager()
const {
return nullptr;
}
virtual void DoGetRemoteType(nsACString& aRemoteType,
ErrorResult& aError) const;
protected:
bool BuildClonedMessageDataForParent(ContentParent* aParent,
StructuredCloneData& aData,
ClonedMessageData& aClonedData);
bool BuildClonedMessageDataForChild(ContentChild* aChild,
StructuredCloneData& aData,
ClonedMessageData& aClonedData);
};
void UnpackClonedMessageDataForParent(const ClonedMessageData& aClonedData,
StructuredCloneData& aData);
void UnpackClonedMessageDataForChild(const ClonedMessageData& aClonedData,
StructuredCloneData& aData);
} // namespace ipc
} // namespace dom
} // namespace mozilla
#endif

Просмотреть файл

@ -7,29 +7,22 @@
#include "PostMessageEvent.h"
#include "MessageEvent.h"
#include "mozilla/dom/BlobBinding.h"
#include "mozilla/dom/BrowsingContext.h"
#include "mozilla/dom/BrowsingContextGroup.h"
#include "mozilla/dom/DocGroup.h"
#include "mozilla/dom/DocumentInlines.h"
#include "mozilla/dom/File.h"
#include "mozilla/dom/FileList.h"
#include "mozilla/dom/FileListBinding.h"
#include "mozilla/dom/MessageEventBinding.h"
#include "mozilla/dom/MessagePort.h"
#include "mozilla/dom/MessagePortBinding.h"
#include "mozilla/dom/PMessagePort.h"
#include "mozilla/dom/StructuredCloneTags.h"
#include "mozilla/dom/UnionConversions.h"
#include "mozilla/dom/RootedDictionary.h"
#include "mozilla/BasePrincipal.h"
#include "mozilla/EventDispatcher.h"
#include "mozilla/StaticPrefs_dom.h"
#include "nsDocShell.h"
#include "nsGlobalWindow.h"
#include "nsGlobalWindowInner.h"
#include "nsGlobalWindowOuter.h"
#include "nsIConsoleService.h"
#include "nsIPrincipal.h"
#include "nsIScriptError.h"
#include "nsNetUtil.h"
#include "nsPresContext.h"
#include "nsQueryObject.h"
#include "nsServiceManagerUtils.h"

Просмотреть файл

@ -7,25 +7,30 @@
#ifndef mozilla_dom_PostMessageEvent_h
#define mozilla_dom_PostMessageEvent_h
#include "js/StructuredClone.h"
#include "js/TypeDecls.h"
#include "mozilla/dom/DOMTypes.h"
#include "mozilla/dom/Event.h"
#include "mozilla/dom/ipc/StructuredCloneData.h"
#include "mozilla/dom/StructuredCloneHolder.h"
#include "nsCOMPtr.h"
#include "mozilla/Maybe.h"
#include "mozilla/MaybeOneOf.h"
#include "mozilla/RefPtr.h"
#include "nsContentUtils.h"
#include "nsTArray.h"
#include "nsThreadUtils.h"
class nsGlobalWindowOuter;
class nsGlobalWindowInner;
class nsIPrincipal;
class nsIURI;
namespace mozilla {
class ErrorResult;
namespace dom {
class BrowsingContext;
class Event;
class EventTarget;
/**
* Class used to represent events generated by calls to Window.postMessage,

Просмотреть файл

@ -202,6 +202,7 @@ EXPORTS.mozilla.dom += [
"MaybeCrossOriginObject.h",
"MessageBroadcaster.h",
"MessageListenerManager.h",
"MessageManagerCallback.h",
"MessageManagerGlobal.h",
"MessageSender.h",
"MimeType.h",

Просмотреть файл

@ -30,7 +30,7 @@
#include "nsCOMPtr.h"
#include "nsCycleCollectionParticipant.h"
#include "nsDocShell.h"
#include "nsFrameMessageManager.h"
#include "mozilla/dom/MessageManagerCallback.h"
#include "nsID.h"
#include "nsIFrame.h"
#include "nsIMutationObserver.h"

Просмотреть файл

@ -4,59 +4,109 @@
* 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/. */
#include "base/basictypes.h"
#include "nsFrameMessageManager.h"
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <new>
#include <utility>
#include "ContentChild.h"
#include "ErrorList.h"
#include "GeckoProfiler.h"
#include "nsASCIIMask.h"
#include "nsContentUtils.h"
#include "nsError.h"
#include "nsIXPConnect.h"
#include "jsapi.h"
#include "jsfriendapi.h"
#include "nsJSUtils.h"
#include "nsJSPrincipals.h"
#include "nsNetUtil.h"
#include "mozilla/dom/ScriptLoader.h"
#include "nsFrameLoader.h"
#include "nsIInputStream.h"
#include "nsIScriptError.h"
#include "nsIConsoleService.h"
#include "nsIMemoryReporter.h"
#include "nsIProtocolHandler.h"
#include "xpcpublic.h"
#include "base/process_util.h"
#include "chrome/common/ipc_channel.h"
#include "js/CompilationAndEvaluation.h"
#include "js/JSON.h"
#include "js/SourceText.h"
#include "js/StructuredClone.h"
#include "js/Wrapper.h"
#include "jsapi.h"
#include "jsfriendapi.h"
#include "mozilla/AlreadyAddRefed.h"
#include "mozilla/Assertions.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/CycleCollectedJSContext.h"
#include "mozilla/Preferences.h"
#include "mozilla/ErrorResult.h"
#include "mozilla/MacroForEach.h"
#include "mozilla/NotNull.h"
#include "mozilla/OwningNonNull.h"
#include "mozilla/RefPtr.h"
#include "mozilla/ScriptPreloader.h"
#include "mozilla/Services.h"
#include "mozilla/StaticPtr.h"
#include "mozilla/Telemetry.h"
#include "mozilla/TelemetryHistogramEnums.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/TypedEnumBits.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/dom/BindingDeclarations.h"
#include "mozilla/dom/CallbackObject.h"
#include "mozilla/dom/ChildProcessMessageManager.h"
#include "mozilla/dom/ChromeMessageBroadcaster.h"
#include "mozilla/dom/File.h"
#include "mozilla/dom/ContentProcessMessageManager.h"
#include "mozilla/dom/DOMTypes.h"
#include "mozilla/dom/MessageBroadcaster.h"
#include "mozilla/dom/MessageListenerManager.h"
#include "mozilla/dom/MessageManagerBinding.h"
#include "mozilla/dom/MessagePort.h"
#include "mozilla/dom/ContentParent.h"
#include "mozilla/dom/ContentProcessMessageManager.h"
#include "mozilla/dom/ParentProcessMessageManager.h"
#include "mozilla/dom/PermissionMessageUtils.h"
#include "mozilla/dom/ProcessMessageManager.h"
#include "mozilla/dom/RootedDictionary.h"
#include "mozilla/dom/SameProcessMessageQueue.h"
#include "mozilla/dom/ScriptLoader.h"
#include "mozilla/dom/ScriptSettings.h"
#include "mozilla/dom/ToJSValue.h"
#include "mozilla/dom/MessageManagerCallback.h"
#include "mozilla/dom/ipc/SharedMap.h"
#include "mozilla/dom/ipc/StructuredCloneData.h"
#include "mozilla/dom/DOMStringList.h"
#include "nsASCIIMask.h"
#include "nsBaseHashtable.h"
#include "nsCOMPtr.h"
#include "nsClassHashtable.h"
#include "nsComponentManagerUtils.h"
#include "nsContentUtils.h"
#include "nsCycleCollectionNoteChild.h"
#include "nsCycleCollectionParticipant.h"
#include "nsDataHashtable.h"
#include "nsDebug.h"
#include "nsError.h"
#include "nsFrameMessageManager.h"
#include "nsHashKeys.h"
#include "nsIChannel.h"
#include "nsIConsoleService.h"
#include "nsIContentPolicy.h"
#include "nsIInputStream.h"
#include "nsILoadInfo.h"
#include "nsIMemoryReporter.h"
#include "nsIMessageManager.h"
#include "nsIObserver.h"
#include "nsIObserverService.h"
#include "nsIProtocolHandler.h"
#include "nsIScriptError.h"
#include "nsISupports.h"
#include "nsISupportsUtils.h"
#include "nsIURI.h"
#include "nsIWeakReferenceUtils.h"
#include "nsIXPConnect.h"
#include "nsJSUtils.h"
#include "nsLiteralString.h"
#include "nsNetUtil.h"
#include "nsPrintfCString.h"
#include "nsXULAppAPI.h"
#include "nsQueryObject.h"
#include "xpcprivate.h"
#include <algorithm>
#include "chrome/common/ipc_channel.h" // for IPC::Channel::kMaximumMessageSize
#include "nsServiceManagerUtils.h"
#include "nsString.h"
#include "nsStringFlags.h"
#include "nsStringFwd.h"
#include "nsTArray.h"
#include "nsTLiteralString.h"
#include "nsTObserverArray.h"
#include "nsTPromiseFlatString.h"
#include "nsTStringRepr.h"
#include "nsThreadUtils.h"
#include "nsXULAppAPI.h"
#include "nscore.h"
#include "xpcpublic.h"
#ifdef XP_WIN
# if defined(SendMessage)

Просмотреть файл

@ -7,43 +7,45 @@
#ifndef nsFrameMessageManager_h__
#define nsFrameMessageManager_h__
#include "nsIMessageManager.h"
#include "nsIObserver.h"
#include "nsCOMPtr.h"
#include "nsCOMArray.h"
#include "nsTArray.h"
#include "nsAtom.h"
#include "nsCycleCollectionParticipant.h"
#include "nsTArray.h"
#include "nsIPrincipal.h"
#include "nsDataHashtable.h"
#include "nsClassHashtable.h"
#include <cstdint>
#include <string.h>
#include <utility>
#include "ErrorList.h"
#include "js/RootingAPI.h"
#include "js/TypeDecls.h"
#include "js/Value.h"
#include "mozilla/AlreadyAddRefed.h"
#include "mozilla/Assertions.h"
#include "mozilla/RefPtr.h"
#include "mozilla/Services.h"
#include "mozilla/StaticPtr.h"
#include "nsIObserverService.h"
#include "nsThreadUtils.h"
#include "nsIWeakReferenceUtils.h"
#include "mozilla/Attributes.h"
#include "js/RootingAPI.h"
#include "nsTObserverArray.h"
#include "mozilla/TypedEnumBits.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/dom/CallbackObject.h"
#include "mozilla/dom/SameProcessMessageQueue.h"
#include "mozilla/dom/ipc/StructuredCloneData.h"
#include "nsCOMPtr.h"
#include "nsClassHashtable.h"
#include "nsCycleCollectionParticipant.h"
#include "nsDataHashtable.h"
#include "nsHashKeys.h"
#include "nsIMessageManager.h"
#include "nsIObserver.h"
#include "nsIObserverService.h"
#include "nsISupports.h"
#include "nsIWeakReferenceUtils.h"
#include "nsStringFwd.h"
#include "nsTArray.h"
#include "nsTObserverArray.h"
#include "nscore.h"
class nsFrameLoader;
class nsIRunnable;
namespace mozilla {
namespace ipc {
class FileDescriptor;
}
class ErrorResult;
namespace dom {
class ContentParent;
class ContentChild;
class ChildProcessMessageManager;
class ChromeMessageBroadcaster;
class ClonedMessageData;
@ -51,13 +53,12 @@ class MessageBroadcaster;
class MessageListener;
class MessageListenerManager;
class MessageManagerReporter;
template <typename T>
class Optional;
class ParentProcessMessageManager;
class ProcessMessageManager;
namespace ipc {
class MessageManagerCallback;
class WritableSharedMap;
// Note: we round the time we spend to the nearest millisecond. So a min value
@ -74,43 +75,6 @@ enum class MessageManagerFlags {
};
MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(MessageManagerFlags);
class MessageManagerCallback {
public:
virtual ~MessageManagerCallback() = default;
virtual bool DoLoadMessageManagerScript(const nsAString& aURL,
bool aRunInGlobalScope) {
return true;
}
virtual bool DoSendBlockingMessage(const nsAString& aMessage,
StructuredCloneData& aData,
nsTArray<StructuredCloneData>* aRetVal) {
return true;
}
virtual nsresult DoSendAsyncMessage(const nsAString& aMessage,
StructuredCloneData& aData) {
return NS_OK;
}
virtual mozilla::dom::ProcessMessageManager* GetProcessMessageManager()
const {
return nullptr;
}
virtual void DoGetRemoteType(nsACString& aRemoteType,
ErrorResult& aError) const;
protected:
bool BuildClonedMessageDataForParent(ContentParent* aParent,
StructuredCloneData& aData,
ClonedMessageData& aClonedData);
bool BuildClonedMessageDataForChild(ContentChild* aChild,
StructuredCloneData& aData,
ClonedMessageData& aClonedData);
};
void UnpackClonedMessageDataForParent(const ClonedMessageData& aClonedData,
StructuredCloneData& aData);

Просмотреть файл

@ -6,17 +6,24 @@
#include "nsStructuredCloneContainer.h"
#include <cstddef>
#include <utility>
#include "ErrorList.h"
#include "js/RootingAPI.h"
#include "js/StructuredClone.h"
#include "js/Value.h"
#include "mozilla/Assertions.h"
#include "mozilla/Base64.h"
#include "mozilla/DebugOnly.h"
#include "mozilla/ErrorResult.h"
#include "mozilla/fallible.h"
#include "nsCOMPtr.h"
#include "nsIGlobalObject.h"
#include "nsDebug.h"
#include "nsError.h"
#include "nsIVariant.h"
#include "nsIXPConnect.h"
#include "nsServiceManagerUtils.h"
#include "nsContentUtils.h"
#include "jsapi.h"
#include "xpcpublic.h"
#include "mozilla/Base64.h"
#include "mozilla/dom/ScriptSettings.h"
#include "nsString.h"
#include "nscore.h"
using namespace mozilla;
using namespace mozilla::dom;

Просмотреть файл

@ -7,9 +7,12 @@
#ifndef nsStructuredCloneContainer_h__
#define nsStructuredCloneContainer_h__
#include "nsIStructuredCloneContainer.h"
#include "mozilla/Attributes.h"
#include <cstdint>
#include "mozilla/dom/ipc/StructuredCloneData.h"
#include "nsIStructuredCloneContainer.h"
#include "nsISupports.h"
class nsIVariant;
#define NS_STRUCTUREDCLONECONTAINER_CONTRACTID \
"@mozilla.org/docshell/structured-clone-container;1"

Просмотреть файл

@ -19,7 +19,6 @@
#include "nsIWindowProvider.h"
#include "nsIDocShell.h"
#include "nsIInterfaceRequestorUtils.h"
#include "nsFrameMessageManager.h"
#include "nsWeakReference.h"
#include "nsIBrowserChild.h"
#include "nsITooltipListener.h"
@ -29,6 +28,7 @@
#include "mozilla/dom/TabContext.h"
#include "mozilla/dom/CoalescedMouseData.h"
#include "mozilla/dom/CoalescedWheelData.h"
#include "mozilla/dom/MessageManagerCallback.h"
#include "mozilla/DOMEventTargetHelper.h"
#include "mozilla/EventDispatcher.h"
#include "mozilla/EventForwards.h"

Просмотреть файл

@ -9,6 +9,7 @@
#include "mozilla/dom/PContentParent.h"
#include "mozilla/dom/ipc/IdType.h"
#include "mozilla/dom/MessageManagerCallback.h"
#include "mozilla/dom/MediaSessionBinding.h"
#include "mozilla/dom/RemoteBrowser.h"
#include "mozilla/dom/RemoteType.h"
@ -34,7 +35,6 @@
#include "nsClassHashtable.h"
#include "nsDataHashtable.h"
#include "nsPluginTags.h"
#include "nsFrameMessageManager.h"
#include "nsHashKeys.h"
#include "nsIAsyncShutdown.h"
#include "nsIDOMProcessParent.h"

Просмотреть файл

@ -134,6 +134,8 @@ RefMessageBody::RefMessageBody(const nsID& aPortID,
mMaxCount(Nothing()),
mCount(0) {}
RefMessageBody::~RefMessageBody() = default;
void RefMessageBody::Read(JSContext* aCx, JS::MutableHandle<JS::Value> aValue,
const JS::CloneDataPolicy& aCloneDataPolicy,
ErrorResult& aRv) {

Просмотреть файл

@ -68,7 +68,7 @@ class RefMessageBody final {
Sequence<OwningNonNull<mozilla::dom::MessagePort>>& aPorts);
private:
~RefMessageBody() = default;
~RefMessageBody();
const nsID mPortID;

Просмотреть файл

@ -22,6 +22,7 @@
#include "mozilla/dom/ipc/StructuredCloneData.h"
#include "js/Promise.h"
#include "xpcprivate.h"
#include "nsFrameMessageManager.h"
#include "nsICrashReporter.h"
namespace mozilla::dom {

Просмотреть файл

@ -6,8 +6,13 @@
#include "ServiceWorkerCloneData.h"
#include <utility>
#include "mozilla/RefPtr.h"
#include "mozilla/dom/DOMTypes.h"
#include "mozilla/dom/StructuredCloneHolder.h"
#include "nsISerialEventTarget.h"
#include "nsProxyRelease.h"
#include "nsThreadUtils.h"
namespace mozilla {
namespace dom {

Просмотреть файл

@ -7,7 +7,11 @@
#ifndef mozilla_dom_ServiceWorkerCloneData_h__
#define mozilla_dom_ServiceWorkerCloneData_h__
#include "mozilla/Assertions.h"
#include "mozilla/dom/DOMTypes.h"
#include "mozilla/dom/ipc/StructuredCloneData.h"
#include "nsCOMPtr.h"
#include "nsISupports.h"
class nsISerialEventTarget;

Просмотреть файл

@ -35,7 +35,7 @@
# include <sys/prctl.h>
#endif
static LazyLogModule sEventDispatchAndRunLog("events");
static mozilla::LazyLogModule sEventDispatchAndRunLog("events");
#ifdef LOG1
# undef LOG1
#endif