From d64f9c87d8297dc22da1521e8c8f3cb7b25ed7f9 Mon Sep 17 00:00:00 2001 From: Sebastian Hengst Date: Tue, 23 May 2017 19:12:20 +0200 Subject: [PATCH] Backed out changeset b21dc429b5bd (bug 1359718) --- dom/file/Blob.cpp | 4 ++++ dom/file/ipc/moz.build | 1 + dom/file/ipc/nsIRemoteBlob.h | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 dom/file/ipc/nsIRemoteBlob.h diff --git a/dom/file/Blob.cpp b/dom/file/Blob.cpp index 4689283addf5..a734dfceb644 100644 --- a/dom/file/Blob.cpp +++ b/dom/file/Blob.cpp @@ -9,6 +9,7 @@ #include "MemoryBlobImpl.h" #include "mozilla/dom/BlobBinding.h" #include "MultipartBlobImpl.h" +#include "ipc/nsIRemoteBlob.h" #include "nsIInputStream.h" #include "nsPIDOMWindow.h" #include "TemporaryBlobImpl.h" @@ -34,6 +35,9 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(Blob) NS_IMPL_CYCLE_COLLECTION_TRACE_END NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Blob) + // This class should not receive any nsIRemoteBlob QI! + MOZ_ASSERT(!aIID.Equals(NS_GET_IID(nsIRemoteBlob))); + NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMBlob) NS_INTERFACE_MAP_ENTRY(nsIDOMBlob) diff --git a/dom/file/ipc/moz.build b/dom/file/ipc/moz.build index f6a2d0643bc9..eb13026073e8 100644 --- a/dom/file/ipc/moz.build +++ b/dom/file/ipc/moz.build @@ -9,6 +9,7 @@ EXPORTS.mozilla.dom.ipc += [ 'IPCBlobInputStreamChild.h', 'IPCBlobInputStreamParent.h', 'IPCBlobInputStreamStorage.h', + 'nsIRemoteBlob.h', 'PendingIPCBlobChild.h', 'PendingIPCBlobParent.h', ] diff --git a/dom/file/ipc/nsIRemoteBlob.h b/dom/file/ipc/nsIRemoteBlob.h new file mode 100644 index 000000000000..e2656d693175 --- /dev/null +++ b/dom/file/ipc/nsIRemoteBlob.h @@ -0,0 +1,32 @@ +/* -*- 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 mozilla_dom_ipc_nsIRemoteBlob_h +#define mozilla_dom_ipc_nsIRemoteBlob_h + +#include "nsISupports.h" + +#ifndef NS_NO_VTABLE +#define NS_NO_VTABLE +#endif + +#define NS_IREMOTEBLOB_IID \ + {0x0b8b0091, 0xb315, 0x48a2, {0x90, 0xf1, 0x60, 0x0e, 0x78, 0x35, 0xf7, 0x2d}} + +namespace mozilla { +namespace dom { +} // namespace dom +} // namespace mozilla + +class NS_NO_VTABLE nsIRemoteBlob : public nsISupports +{ +public: + NS_DECLARE_STATIC_IID_ACCESSOR(NS_IREMOTEBLOB_IID) +}; + +NS_DEFINE_STATIC_IID_ACCESSOR(nsIRemoteBlob, NS_IREMOTEBLOB_IID) + +#endif // mozilla_dom_ipc_nsIRemoteBlob_h